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
Next revision Both sides next revision
dvd_structure [2014/02/16 14:36]
beandog
dvd_structure [2018/02/28 21:31]
beandog
Line 1: Line 1:
 ====== DVD Structure / Metadata ====== ====== DVD Structure / Metadata ======
  
-  * [[DVD Audio]] +  * [[libdvdread]] 
-  * [[DVD Tracks]] + 
-  * [[DVD Title]] +  * [[http://​stnsoft.com/​DVD/|DVD Video Information]] 
-  * [[DVD Video]]+ 
 +  * [[http://​www.mpucoder.com/​DVD/​vobov.html|VOB files]] 
 +  * [[http://​www.mpucoder.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 10: Line 37:
   * [[http://​en.wikipedia.org/​wiki/​DVD-Video|Wikipedia:​ DVD-Video]]   * [[http://​en.wikipedia.org/​wiki/​DVD-Video|Wikipedia:​ DVD-Video]]
   * [[http://​www.doom9.org/​index.html?/​dvd-structure.htm|doom9:​ DVD Structure]]   * [[http://​www.doom9.org/​index.html?/​dvd-structure.htm|doom9:​ DVD Structure]]
 +
 +{{::​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