Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dvd_structure [2014/02/16 14:37]
beandog
dvd_structure [2023/04/09 21:45] (current)
beandog [DVD Structure / Metadata]
Line 1: Line 1:
 ====== DVD Structure / Metadata ====== ====== DVD Structure / Metadata ======
  
-  * [[DVD Audio]] +  * [[libdvdread]] 
-  * [[DVD Tracks]] + 
-  * [[DVD Title]] +  * [[https://​web.archive.org/​web/​20211127030150/​http://​stnsoft.com/​DVD/​index.html|DVD Video Information]] 
-  * [[DVD Video]]+ 
 +  * [[https://​web.archive.org/​web/​20211127030150/​http://​stnsoft.com/​DVD/​vobov.html|VOB file structure]] 
 +  * [[https://​web.archive.org/​web/​20211127030150/​http://​stnsoft.com/​DVD/​dvdmpeg.html|DVD MPEG differences]] 
 + 
 +  * [[VMG|Video Manager Group]] (VMG) 
 +    * [[VMGI|Video Manager Group IFO]] (VMGI): ''​VIDEO_TS.IFO'',​ ''​VIDEO_TS.BUP''​ 
 +    * [[VMGM|Video Manager Group Menu]] (VMGM): ''​VIDEO_TS.VOB''​ (optional) 
 +  * [[VTS|Video Title Set]] (VTS) 
 +    * [[VTSI|Video Title Set IFO]] (VTSI): ''​VTS_01_0.IFO'',​ ''​VTS_01_0.BUP''​ 
 +    * [[VTSM|Video Title Set Menu]] (VTSM): ''​VTS_01_0.VOB''​ 
 +==== Cosmic Voyage ==== 
 + 
 +  * [[VMG]] 
 +    * [[VMGI]] 
 +      * VIDEO_TS.BUP 
 +      * VIDEO_TS.IFO 
 +    * [[VMGM]] 
 +      * None 
 +  * [[VTS]] 
 +    * [[VTSI]] 
 +      * VTS_01_0.BUP 
 +      * VTS_01_0.IFO 
 +    * [[VTSM]] 
 +      * VTS_01_0.VOB 
 +    * [[VOB|VOBs]] 
 +      * VTS_01_1.VOB 
 +      * VTS_01_2.VOB 
  
 === DVD Specifications === === DVD Specifications ===
Line 12: Line 39:
  
 {{::​dvd-video_layout.jpg|}} {{::​dvd-video_layout.jpg|}}
 +
 +=== dvdnav ===
 +
 +Taken from ''​libdvdnav''​ documentation:​
 +
 +<code text>​This is some rather basic information on the organizational structures of
 +a DVD. I collected this info over time from various sources, the most
 +valuable being an article in the German c't computer magazine.
 +Some of the info might be wrong according to the DVD standard (which I do
 +not know), but they are practically proven in libdvdnav.
 +
 + Michael Roitzsch
 +
 +
 +0. storage structure
 +   - sector
 +       * smallest addressable unit on disc
 +       * data is stored on disc with a Reed-Solomon error correction
 +   - file
 +       * the storage entity in the underlying filesystem (usually UDF)
 +       * on DVD-Video, files are stored consecutively
 +1. MPEG stream structure
 +   - blocks
 +       * a file system driver (usually UDF) is needed to map the VOBS-local
 + block numbers to global disc sectors
 +   - GOP (group of pictures)
 +       * contains multiple sectors
 +       * smallest self-contained MPEG unit
 +   - VOBU (video object unit)
 +       * contains multiple GOPs + audio and SPU blocks + NAV packet
 +       * smallest unit in seek and resume operations, always starts with a
 +         NAV packet used for menu button highlight and command information
 +         and to detect PTS discontinuities
 +   - ILVU (interleaved video unit)
 +       * contains multiple VOBUs (ususally only one)
 +       * blocking multiple VOBUs of multiple interleaved MPEG streams for
 +         ​multiangle features
 +   - VOB (video object)
 +       * contains multiple ILVUs (usually quite a lot)
 +       * each NAV packet has a CellID, so VOBs are divided into stream Cells
 + which do not necessarily correspond to the navigation Cells below
 +   - VOBS (video object set)
 +       * contains multiple VOBs (addressed by VOB_ID)
 +       * a VOBS is the storage analogy to the playback domains below,
 + therefore, a VMGM_VOBS, a VTSM_VOBS and a VTS_VOBS exist
 +       * all block addressing is done within the scope of the VOBS
 +2. navigational structure - logical playback control
 +   - Cell
 +       * smallest unit which is layed out in sequence
 +       * points to a first and last VOBU (by sector)
 +       * also points to the corresponding CellID and VOB_ID
 +       * smallest unit to execute VM commands (cell_post commands)
 +       * smallest unit accesible by VM commands (apart from LinkRSM)
 +   - PG (program)
 +       * points to a Cell
 +       * usually the mapping between PG and Cells is 1:1, but not always
 + (multiple Cells inside one PG can occur when special VM commands
 + have to be executed in the middle of a PG, for example to switch
 + SPU channels or to provide a branching target for special
 + features that need access to parts of the movie)
 +       * unit for user skip operations
 +       * libdvdnav'​s default unit for seeking
 +   - PGC (program chain)
 +       * contains multiple programs and cells
 +       * logical playback chain
 +       * VM commands at start and stop (PGC_pre and PGC_post commands)
 +       * might be used for seeking (see dvdnav_set_PGC_positioning())
 +3. title structure - high level navigation
 +   - PTT (part of title track)
 +       * points to a PG in a PGC
 +       * usually what you select in a "​chapter menu" are parts
 +       * usually the mapping between PTT and PG is 1:1, but not always
 + (this is similar to the distinction between track and index marks
 + on audio CDs: PTT = track mark, PG = index mark)
 +   - TT (title track)
 +       * contains multiple PTTs
 +       * logical partitioning of the content
 +         ​(multiple episodes of a TV series on one DVD: one TT per episode)
 +       * the display of DVD players show title and part number
 +   - VTS (video title set)
 +       * contains multiple TTs with a local numbering (to emphasize the
 + local scope of the number, these are also called VTS_TT)
 +       * high level partitioning of the content (movie / bonus material)
 +       * video, audio and spu attributes are common inside a whole VTS
 +4. domain structure - bringing it all together
 +   - FP (first play)
 +       * one special PGC in the VMGM domain run on start of the disc
 +   - VMGM (video manager menu) - files video_ts.{vob,​ifo,​bup}
 +       * the menu which allows you to select between title sets
 +       * corresponds to the VMGM_VOBS (video_ts.vob) and
 + the VMGI (video_ts.ifo)
 +       * contains sets of PGCs, differentiated by language
 +       * contains a global table of TTs each pointing to a VTS and a local VTS_TT
 +       * contains parental management information
 +       * contains attribute lists for the VTS'es
 +       * contains text data (?)
 +       * contains a Cell and a VOBU lists with local sector info (for seeking)
 +   - VTSM (video title set menu) - files vts_<​vtsN>​_0.{vob,​ifo,​bup}
 +       * the menu which allows you to select between the TTs of a VTS
 +       * corresponds to the VTSM_VOBS (vts_<​vtsN>​_0.vob) and
 + the VTSI (vts_<​vtsN>​_0.ifo)
 +       * contains sets of PGCs, differentiated by language
 +       * contains a Cell and a VOBU lists with local sector info (for seeking)
 +   - VTS (video title set) - files vts_<​vtsN>​_[1-x].vob,​ vts_<​vtsN>​_0.{ifo,​bup}
 +       * regular playback domain
 +       * corresponds to the VTS_VOBS (vts_<​vtsN>​_[1-x].vob) and
 + the VTSI (vts_<​vtsN>​_0.ifo)
 +       * contains one VTS with its VTS_TTs and PGCs
 +       * contains a time map (for time-based seeking)
 +       * contains a Cell and a VOBU lists with local sector info (for seeking)
 +   - STOP
 +       * 'nuff said</​code>​
  
 === lsdvd === === lsdvd ===

Navigation