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_info [2018/02/19 21:51]
beandog
dvd_info [2023/04/09 20:08]
beandog
Line 2: Line 2:
  
   * [[http://​github.com/​beandog/​dvd_info|GitHub dvd_info repo]]   * [[http://​github.com/​beandog/​dvd_info|GitHub dvd_info repo]]
-  * [[https://sourceforge.net/projects/dvdinfo/files/|SourceForge downloads]] +  * [[https://github.com/beandog/dvd_info/releases|Downloads]] 
-  * Portability:​ [[OpenBSD]],​ [[NetBSD]]+  * [[https://​github.com/​beandog/​dvd_info/wiki|Documentation]] on wiki, also see man pages 
 +  * Portability: ​Linux, Cygwin, ​[[OpenBSD]],​ [[NetBSD]], FreeBSD 
 +  * [[dvd_copy]] 
 +  * [[dvd_drive_status]] 
 +  * [[dvd_eject]] 
 +  * [[dvd_player]] 
 +  * [[dvd_trip]]
  
 My own set of C programs that are small utilities for reading DVD info, and managing DVD drives. My own set of C programs that are small utilities for reading DVD info, and managing DVD drives.
Line 9: Line 15:
 Included: Included:
  
-  * ''​dvd_info''​ - a successor in spirit to [[http://​sourceforge.net/​projects/​lsdvd|lsdvd]], can output information about a DVD in human-readable or JSON output+  * ''​dvd_info''​ - a successor in spirit to [[lsdvd]], can output information about a DVD in human-readable or JSON output
   * ''​dvd_drive_status''​ - poll the DVD drive to see the status of a drive: open, polling, closed with no disc, closed with disc   * ''​dvd_drive_status''​ - poll the DVD drive to see the status of a drive: open, polling, closed with no disc, closed with disc
-  * ''​dvd_eject''​ - a small eject utility that does its best to make sure a drive is properly closed and ready to go before being able toa ccess it (very useful for shell scripts that access DVD drives)+  * ''​dvd_eject''​ - a small eject utility that does its best to make sure a drive is properly closed and ready to go before being able to access ​it (very useful for shell scripts that access DVD drives) 
 +  * ''​dvd_copy''​ - copies a title straight to harddrive or stdout 
 +  * ''​dvd_player''​ - a DVD player using [[mpv|libmpv]] 
 +  * ''​dvd_trip''​ - a DVD ripper using [[mpv|libmpv]] 
 +  * ''​dvd_debug''​ - a program to display an excessive amount of information about a DVD
  
-To downloadsee [[http://​bluray.beandog.org/​dvd_info/​]].+The code is open-sourcelicensed under GNU GPL v2.
  
-The code is open-source,​ licensed under GNU GPL v2.  ​Source code is available at [[https://​github.com/​beandog/​dvd_info]].+Source code is available at [[https://​github.com/​beandog/​dvd_info]].
  
-Build requirements:​ libdvdread, libdvdcss, ​[[http://​www.digip.org/​jansson/​|jansson]]+Build requirements:​ libdvdread, libdvdcss, ​libmpv (optional, needed for ''​dvd_player''​ and ''​dvd_trip''​)
  
-==== dvd_info ​====+=== Installation ​====
  
-** Usage: ** dvd_info [options] [-t track number] [dvd path]+Then you can do standard ''​./​configure;​ make; make install''​
  
-By default will open ''/​dev/​dvd''​. ​ Can also open directories or image files as well.+==== dvd_info ====
  
-Examples:+See ''​--help''​ for all the fancy stuff it can do. A man page (man dvd_info) is also included.
  
 <​code>​ <​code>​
-dvd_info ​/dev/sr0 +dvd_info ​- display information about a DVD 
-dvd_info EXCITING_MOVIE.iso + 
-dvd_info ​./+Usage: ​dvd_info ​[path] [options] 
 + 
 +Options: 
 +  -t, --track <​number> ​ Limit to selected track (default: all tracks) 
 +  -j, --json ​           Display output in JSON format 
 + 
 +Detailed information:​ 
 +  -v, --video ​          ​Display video streams 
 +  -a, --audio ​          ​Display audio streams 
 +  -s, --subtitles ​      ​Display VobSub subtitles 
 +  -c, --chapters ​       Display chapters 
 +  -d, --cells ​          ​Display cells 
 +  -x, --all             ​Display all 
 + 
 +Narrow results: 
 +  -l, --longest Track with the longest length 
 +  -A, --has-audio ​      Track has audio streams 
 +  -S, --has-subtitles ​  Track has VobSub subtitles 
 +  -E, --seconds <​secs> ​ Track has minimum number of seconds 
 +  -M, --minutes <​mins> ​ Track has minimum number of minutes 
 +  -T, --vts <​number> ​   Track is in video title set number 
 +  -L, --valid Track is marked as valid 
 + 
 +Other: 
 +  -i, --id Display DVD ID only 
 +  -u, --volume Display DVD UDF volume name only (for ISO or disc) 
 +  -g, --xchap ​          ​Display title'​s chapter format for mkvmerge 
 +  -h, --help ​           Display these help options 
 +      --version ​        ​Display version 
 + 
 +DVD path can be a device name, a single file, or a directory (default: ​/dev/sr0)
 </​code>​ </​code>​
  
Line 38: Line 78:
  
 <​code>​ <​code>​
-$ dvd_info ​1.005.0053.BATMAN_THE_ANIMATED_SERIES.iso ​+$ dvd_info BATMAN_THE_ANIMATED_SERIES.iso ​
 Disc Title: BATMAN_ANIMATED_SERIES_DISC1 Disc Title: BATMAN_ANIMATED_SERIES_DISC1
 Title: 01, Length: 02:​36:​21.100 Chapters: 07, Cells: 07, Audio streams: 04, Subpictures:​ 03 Title: 01, Length: 02:​36:​21.100 Chapters: 07, Cells: 07, Audio streams: 04, Subpictures:​ 03
Line 60: Line 100:
  
 <​code>​ <​code>​
-$ dvd_info -t 6 1.005.0053.BATMAN_THE_ANIMATED_SERIES.iso ​+$ dvd_info -t BATMAN_THE_ANIMATED_SERIES.iso ​
 Disc Title: BATMAN_ANIMATED_SERIES_DISC1 Disc Title: BATMAN_ANIMATED_SERIES_DISC1
 Title: 06, Length: 00:​22:​20.100 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures:​ 03 Title: 06, Length: 00:​22:​20.100 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures:​ 03
Line 67: Line 107:
 === JSON output === === JSON output ===
  
-The JSON output functionality will print *all* the information that ''​dvd_info''​ polls about the DVD.  This is far more than the human-friendly output.+The JSON output functionality will print *all* the information that ''​dvd_info''​ polls about the DVD. This is far more than the human-friendly output.
  
-<​code>​ 
-$ dvd_info -j 1.005.0053.BATMAN_THE_ANIMATED_SERIES.iso 
-{ 
- "​dvd":​ { 
-  "​title":​ "​BATMAN_ANIMATED_SERIES_DISC1",​ 
-  "​side":​ 1, 
-  "​tracks":​ 14, 
-  "​longest track":​ 1, 
-  "​provider id": "​WARNER HOME VIDEO",​ 
-  "vmg id": "​DVDVIDEO-VMG",​ 
-  "video title sets": 1, 
-  "​dvdread id": "​b4e9000903e4ec04c275dd6f9abfb944"​ 
- }, 
- "​tracks":​ [ 
-  { 
-   "​track":​ 1, 
-   "​length":​ "​02:​36:​21.100",​ 
-   "​msecs":​ 9381100, 
-   "​vts":​ 1, 
-   "​ttn":​ 1, 
-   "​video":​ { 
-    "​codec":​ "​MPEG2",​ 
-    "​format":​ "​NTSC",​ 
-    "​aspect ratio":​ "​4:​3",​ 
-    "​width":​ 720, 
-    "​height":​ 480, 
-    "​angles":​ 1, 
-    "​fps":​ "​29.97"​ 
-   }, 
-   "​audio":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x80"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x81"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x82"​ 
-    }, 
-    { 
-     "​track":​ 4, 
-     "​active":​ 0, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x83"​ 
-    } 
-   ], 
-   "​subtitles":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​stream id": "​0x20"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​stream id": "​0x21"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​stream id": "​0x22"​ 
-    } 
-   ], 
-   "​chapters":​ [ 
-    { 
-     "​chapter":​ 1, 
-     "​length":​ "​00:​22:​20.100",​ 
-     "​msecs":​ 1340100, 
-     "​startcell":​ 1 
-    }, 
-    { 
-     "​chapter":​ 2, 
-     "​length":​ "​00:​22:​20.834",​ 
-     "​msecs":​ 1340834, 
-     "​startcell":​ 2 
-    }, 
-    { 
-     "​chapter":​ 3, 
-     "​length":​ "​00:​22:​24.433",​ 
-     "​msecs":​ 1344433, 
-     "​startcell":​ 3 
-    }, 
-    { 
-     "​chapter":​ 4, 
-     "​length":​ "​00:​22:​17.000",​ 
-     "​msecs":​ 1337000, 
-     "​startcell":​ 4 
-    }, 
-    { 
-     "​chapter":​ 5, 
-     "​length":​ "​00:​22:​18.734",​ 
-     "​msecs":​ 1338734, 
-     "​startcell":​ 5 
-    }, 
-    { 
-     "​chapter":​ 6, 
-     "​length":​ "​00:​22:​24.000",​ 
-     "​msecs":​ 1344000, 
-     "​startcell":​ 6 
-    }, 
-    { 
-     "​chapter":​ 7, 
-     "​length":​ "​00:​22:​16.000",​ 
-     "​msecs":​ 1336000, 
-     "​startcell":​ 7 
-    } 
-   ], 
-   "​cells":​ [ 
-    { 
-     "​cell":​ 1, 
-     "​length":​ "​00:​22:​20.100",​ 
-     "​msecs":​ 1340100 
-    }, 
-    { 
-     "​cell":​ 2, 
-     "​length":​ "​00:​22:​20.834",​ 
-     "​msecs":​ 1340834 
-    }, 
-    { 
-     "​cell":​ 3, 
-     "​length":​ "​00:​22:​24.433",​ 
-     "​msecs":​ 1344433 
-    }, 
-    { 
-     "​cell":​ 4, 
-     "​length":​ "​00:​22:​17.000",​ 
-     "​msecs":​ 1337000 
-    }, 
-    { 
-     "​cell":​ 5, 
-     "​length":​ "​00:​22:​18.734",​ 
-     "​msecs":​ 1338734 
-    }, 
-    { 
-     "​cell":​ 6, 
-     "​length":​ "​00:​22:​24.000",​ 
-     "​msecs":​ 1344000 
-    }, 
-    { 
-     "​cell":​ 7, 
-     "​length":​ "​00:​22:​16.000",​ 
-     "​msecs":​ 1336000 
-    } 
-   ] 
-  }, 
-  { 
-   "​track":​ 2, 
-   "​length":​ "​00:​00:​12.000",​ 
-   "​msecs":​ 12000, 
-   "​vts":​ 1, 
-   "​ttn":​ 2, 
-   "​video":​ { 
-    "​codec":​ "​MPEG2",​ 
-    "​format":​ "​NTSC",​ 
-    "​aspect ratio":​ "​4:​3",​ 
-    "​width":​ 720, 
-    "​height":​ 480, 
-    "​angles":​ 1, 
-    "​fps":​ "​29.97"​ 
-   }, 
-   "​audio":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x80"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x81"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x82"​ 
-    }, 
-    { 
-     "​track":​ 4, 
-     "​active":​ 0, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x83"​ 
-    } 
-   ], 
-   "​subtitles":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​stream id": "​0x20"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​stream id": "​0x21"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​stream id": "​0x22"​ 
-    } 
-   ], 
-   "​chapters":​ [ 
-    { 
-     "​chapter":​ 1, 
-     "​length":​ "​00:​00:​12.000",​ 
-     "​msecs":​ 12000, 
-     "​startcell":​ 1 
-    } 
-   ], 
-   "​cells":​ [ 
-    { 
-     "​cell":​ 1, 
-     "​length":​ "​00:​00:​12.000",​ 
-     "​msecs":​ 12000 
-    } 
-   ] 
-  }, 
-  { 
-   "​track":​ 3, 
-   "​length":​ "​00:​00:​32.033",​ 
-   "​msecs":​ 32033, 
-   "​vts":​ 1, 
-   "​ttn":​ 3, 
-   "​video":​ { 
-    "​codec":​ "​MPEG2",​ 
-    "​format":​ "​NTSC",​ 
-    "​aspect ratio":​ "​4:​3",​ 
-    "​width":​ 720, 
-    "​height":​ 480, 
-    "​angles":​ 1, 
-    "​fps":​ "​29.97"​ 
-   }, 
-   "​audio":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x80"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x81"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x82"​ 
-    }, 
-    { 
-     "​track":​ 4, 
-     "​active":​ 0, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x83"​ 
-    } 
-   ], 
-   "​subtitles":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​stream id": "​0x20"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​stream id": "​0x21"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​stream id": "​0x22"​ 
-    } 
-   ], 
-   "​chapters":​ [ 
-    { 
-     "​chapter":​ 1, 
-     "​length":​ "​00:​00:​32.033",​ 
-     "​msecs":​ 32033, 
-     "​startcell":​ 1 
-    } 
-   ], 
-   "​cells":​ [ 
-    { 
-     "​cell":​ 1, 
-     "​length":​ "​00:​00:​32.033",​ 
-     "​msecs":​ 32033 
-    } 
-   ] 
-  }, 
-  { 
-   "​track":​ 4, 
-   "​length":​ "​00:​01:​06.800",​ 
-   "​msecs":​ 66800, 
-   "​vts":​ 1, 
-   "​ttn":​ 4, 
-   "​video":​ { 
-    "​codec":​ "​MPEG2",​ 
-    "​format":​ "​NTSC",​ 
-    "​aspect ratio":​ "​4:​3",​ 
-    "​width":​ 720, 
-    "​height":​ 480, 
-    "​angles":​ 1, 
-    "​fps":​ "​29.97"​ 
-   }, 
-   "​audio":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x80"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x81"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x82"​ 
-    }, 
-    { 
-     "​track":​ 4, 
-     "​active":​ 0, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x83"​ 
-    } 
-   ], 
-   "​subtitles":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​stream id": "​0x20"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​stream id": "​0x21"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​stream id": "​0x22"​ 
-    } 
-   ], 
-   "​chapters":​ [ 
-    { 
-     "​chapter":​ 1, 
-     "​length":​ "​00:​01:​06.800",​ 
-     "​msecs":​ 66800, 
-     "​startcell":​ 1 
-    } 
-   ], 
-   "​cells":​ [ 
-    { 
-     "​cell":​ 1, 
-     "​length":​ "​00:​01:​06.800",​ 
-     "​msecs":​ 66800 
-    } 
-   ] 
-  }, 
-  { 
-   "​track":​ 5, 
-   "​length":​ "​00:​00:​29.967",​ 
-   "​msecs":​ 29967, 
-   "​vts":​ 1, 
-   "​ttn":​ 5, 
-   "​video":​ { 
-    "​codec":​ "​MPEG2",​ 
-    "​format":​ "​NTSC",​ 
-    "​aspect ratio":​ "​4:​3",​ 
-    "​width":​ 720, 
-    "​height":​ 480, 
-    "​angles":​ 1, 
-    "​fps":​ "​29.97"​ 
-   }, 
-   "​audio":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x80"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x81"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x82"​ 
-    }, 
-    { 
-     "​track":​ 4, 
-     "​active":​ 0, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x83"​ 
-    } 
-   ], 
-   "​subtitles":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​stream id": "​0x20"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​stream id": "​0x21"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​stream id": "​0x22"​ 
-    } 
-   ], 
-   "​chapters":​ [ 
-    { 
-     "​chapter":​ 1, 
-     "​length":​ "​00:​00:​29.967",​ 
-     "​msecs":​ 29967, 
-     "​startcell":​ 1 
-    } 
-   ], 
-   "​cells":​ [ 
-    { 
-     "​cell":​ 1, 
-     "​length":​ "​00:​00:​29.967",​ 
-     "​msecs":​ 29967 
-    } 
-   ] 
-  }, 
-  { 
-   "​track":​ 6, 
-   "​length":​ "​00:​22:​20.100",​ 
-   "​msecs":​ 1340100, 
-   "​vts":​ 1, 
-   "​ttn":​ 6, 
-   "​video":​ { 
-    "​codec":​ "​MPEG2",​ 
-    "​format":​ "​NTSC",​ 
-    "​aspect ratio":​ "​4:​3",​ 
-    "​width":​ 720, 
-    "​height":​ 480, 
-    "​angles":​ 1, 
-    "​fps":​ "​29.97"​ 
-   }, 
-   "​audio":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x80"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x81"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x82"​ 
-    }, 
-    { 
-     "​track":​ 4, 
-     "​active":​ 0, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x83"​ 
-    } 
-   ], 
-   "​subtitles":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​stream id": "​0x20"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​stream id": "​0x21"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​stream id": "​0x22"​ 
-    } 
-   ], 
-   "​chapters":​ [ 
-    { 
-     "​chapter":​ 1, 
-     "​length":​ "​00:​22:​20.100",​ 
-     "​msecs":​ 1340100, 
-     "​startcell":​ 1 
-    } 
-   ], 
-   "​cells":​ [ 
-    { 
-     "​cell":​ 1, 
-     "​length":​ "​00:​22:​20.100",​ 
-     "​msecs":​ 1340100 
-    } 
-   ] 
-  }, 
-  { 
-   "​track":​ 7, 
-   "​length":​ "​00:​22:​20.834",​ 
-   "​msecs":​ 1340834, 
-   "​vts":​ 1, 
-   "​ttn":​ 7, 
-   "​video":​ { 
-    "​codec":​ "​MPEG2",​ 
-    "​format":​ "​NTSC",​ 
-    "​aspect ratio":​ "​4:​3",​ 
-    "​width":​ 720, 
-    "​height":​ 480, 
-    "​angles":​ 1, 
-    "​fps":​ "​29.97"​ 
-   }, 
-   "​audio":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x80"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x81"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x82"​ 
-    }, 
-    { 
-     "​track":​ 4, 
-     "​active":​ 0, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x83"​ 
-    } 
-   ], 
-   "​subtitles":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​stream id": "​0x20"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​stream id": "​0x21"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​stream id": "​0x22"​ 
-    } 
-   ], 
-   "​chapters":​ [ 
-    { 
-     "​chapter":​ 1, 
-     "​length":​ "​00:​22:​20.834",​ 
-     "​msecs":​ 1340834, 
-     "​startcell":​ 1 
-    } 
-   ], 
-   "​cells":​ [ 
-    { 
-     "​cell":​ 1, 
-     "​length":​ "​00:​22:​20.834",​ 
-     "​msecs":​ 1340834 
-    } 
-   ] 
-  }, 
-  { 
-   "​track":​ 8, 
-   "​length":​ "​00:​22:​24.433",​ 
-   "​msecs":​ 1344433, 
-   "​vts":​ 1, 
-   "​ttn":​ 8, 
-   "​video":​ { 
-    "​codec":​ "​MPEG2",​ 
-    "​format":​ "​NTSC",​ 
-    "​aspect ratio":​ "​4:​3",​ 
-    "​width":​ 720, 
-    "​height":​ 480, 
-    "​angles":​ 1, 
-    "​fps":​ "​29.97"​ 
-   }, 
-   "​audio":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x80"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x81"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x82"​ 
-    }, 
-    { 
-     "​track":​ 4, 
-     "​active":​ 0, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x83"​ 
-    } 
-   ], 
-   "​subtitles":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​stream id": "​0x20"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​stream id": "​0x21"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​stream id": "​0x22"​ 
-    } 
-   ], 
-   "​chapters":​ [ 
-    { 
-     "​chapter":​ 1, 
-     "​length":​ "​00:​22:​24.433",​ 
-     "​msecs":​ 1344433, 
-     "​startcell":​ 1 
-    } 
-   ], 
-   "​cells":​ [ 
-    { 
-     "​cell":​ 1, 
-     "​length":​ "​00:​22:​24.433",​ 
-     "​msecs":​ 1344433 
-    } 
-   ] 
-  }, 
-  { 
-   "​track":​ 9, 
-   "​length":​ "​00:​22:​17.000",​ 
-   "​msecs":​ 1337000, 
-   "​vts":​ 1, 
-   "​ttn":​ 9, 
-   "​video":​ { 
-    "​codec":​ "​MPEG2",​ 
-    "​format":​ "​NTSC",​ 
-    "​aspect ratio":​ "​4:​3",​ 
-    "​width":​ 720, 
-    "​height":​ 480, 
-    "​angles":​ 1, 
-    "​fps":​ "​29.97"​ 
-   }, 
-   "​audio":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x80"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x81"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x82"​ 
-    }, 
-    { 
-     "​track":​ 4, 
-     "​active":​ 0, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x83"​ 
-    } 
-   ], 
-   "​subtitles":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​stream id": "​0x20"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​stream id": "​0x21"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​stream id": "​0x22"​ 
-    } 
-   ], 
-   "​chapters":​ [ 
-    { 
-     "​chapter":​ 1, 
-     "​length":​ "​00:​22:​17.000",​ 
-     "​msecs":​ 1337000, 
-     "​startcell":​ 1 
-    } 
-   ], 
-   "​cells":​ [ 
-    { 
-     "​cell":​ 1, 
-     "​length":​ "​00:​22:​17.000",​ 
-     "​msecs":​ 1337000 
-    } 
-   ] 
-  }, 
-  { 
-   "​track":​ 10, 
-   "​length":​ "​00:​22:​18.734",​ 
-   "​msecs":​ 1338734, 
-   "​vts":​ 1, 
-   "​ttn":​ 10, 
-   "​video":​ { 
-    "​codec":​ "​MPEG2",​ 
-    "​format":​ "​NTSC",​ 
-    "​aspect ratio":​ "​4:​3",​ 
-    "​width":​ 720, 
-    "​height":​ 480, 
-    "​angles":​ 1, 
-    "​fps":​ "​29.97"​ 
-   }, 
-   "​audio":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x80"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x81"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x82"​ 
-    }, 
-    { 
-     "​track":​ 4, 
-     "​active":​ 0, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x83"​ 
-    } 
-   ], 
-   "​subtitles":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​stream id": "​0x20"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​stream id": "​0x21"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​stream id": "​0x22"​ 
-    } 
-   ], 
-   "​chapters":​ [ 
-    { 
-     "​chapter":​ 1, 
-     "​length":​ "​00:​22:​18.734",​ 
-     "​msecs":​ 1338734, 
-     "​startcell":​ 1 
-    } 
-   ], 
-   "​cells":​ [ 
-    { 
-     "​cell":​ 1, 
-     "​length":​ "​00:​22:​18.734",​ 
-     "​msecs":​ 1338734 
-    } 
-   ] 
-  }, 
-  { 
-   "​track":​ 11, 
-   "​length":​ "​00:​22:​24.000",​ 
-   "​msecs":​ 1344000, 
-   "​vts":​ 1, 
-   "​ttn":​ 11, 
-   "​video":​ { 
-    "​codec":​ "​MPEG2",​ 
-    "​format":​ "​NTSC",​ 
-    "​aspect ratio":​ "​4:​3",​ 
-    "​width":​ 720, 
-    "​height":​ 480, 
-    "​angles":​ 1, 
-    "​fps":​ "​29.97"​ 
-   }, 
-   "​audio":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x80"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x81"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x82"​ 
-    }, 
-    { 
-     "​track":​ 4, 
-     "​active":​ 0, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x83"​ 
-    } 
-   ], 
-   "​subtitles":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​stream id": "​0x20"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​stream id": "​0x21"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​stream id": "​0x22"​ 
-    } 
-   ], 
-   "​chapters":​ [ 
-    { 
-     "​chapter":​ 1, 
-     "​length":​ "​00:​22:​24.000",​ 
-     "​msecs":​ 1344000, 
-     "​startcell":​ 1 
-    } 
-   ], 
-   "​cells":​ [ 
-    { 
-     "​cell":​ 1, 
-     "​length":​ "​00:​22:​24.000",​ 
-     "​msecs":​ 1344000 
-    } 
-   ] 
-  }, 
-  { 
-   "​track":​ 12, 
-   "​length":​ "​00:​22:​16.000",​ 
-   "​msecs":​ 1336000, 
-   "​vts":​ 1, 
-   "​ttn":​ 12, 
-   "​video":​ { 
-    "​codec":​ "​MPEG2",​ 
-    "​format":​ "​NTSC",​ 
-    "​aspect ratio":​ "​4:​3",​ 
-    "​width":​ 720, 
-    "​height":​ 480, 
-    "​angles":​ 1, 
-    "​fps":​ "​29.97"​ 
-   }, 
-   "​audio":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x80"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x81"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x82"​ 
-    }, 
-    { 
-     "​track":​ 4, 
-     "​active":​ 0, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x83"​ 
-    } 
-   ], 
-   "​subtitles":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​stream id": "​0x20"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​stream id": "​0x21"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​stream id": "​0x22"​ 
-    } 
-   ], 
-   "​chapters":​ [ 
-    { 
-     "​chapter":​ 1, 
-     "​length":​ "​00:​22:​16.000",​ 
-     "​msecs":​ 1336000, 
-     "​startcell":​ 1 
-    } 
-   ], 
-   "​cells":​ [ 
-    { 
-     "​cell":​ 1, 
-     "​length":​ "​00:​22:​16.000",​ 
-     "​msecs":​ 1336000 
-    } 
-   ] 
-  }, 
-  { 
-   "​track":​ 13, 
-   "​length":​ "​00:​05:​02.000",​ 
-   "​msecs":​ 302000, 
-   "​vts":​ 1, 
-   "​ttn":​ 13, 
-   "​video":​ { 
-    "​codec":​ "​MPEG2",​ 
-    "​format":​ "​NTSC",​ 
-    "​aspect ratio":​ "​4:​3",​ 
-    "​width":​ 720, 
-    "​height":​ 480, 
-    "​angles":​ 1, 
-    "​fps":​ "​29.97"​ 
-   }, 
-   "​audio":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x80"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x81"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x82"​ 
-    }, 
-    { 
-     "​track":​ 4, 
-     "​active":​ 0, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x83"​ 
-    } 
-   ], 
-   "​subtitles":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​stream id": "​0x20"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​stream id": "​0x21"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​stream id": "​0x22"​ 
-    } 
-   ], 
-   "​chapters":​ [ 
-    { 
-     "​chapter":​ 1, 
-     "​length":​ "​00:​05:​02.000",​ 
-     "​msecs":​ 302000, 
-     "​startcell":​ 1 
-    } 
-   ], 
-   "​cells":​ [ 
-    { 
-     "​cell":​ 1, 
-     "​length":​ "​00:​05:​02.000",​ 
-     "​msecs":​ 302000 
-    } 
-   ] 
-  }, 
-  { 
-   "​track":​ 14, 
-   "​length":​ "​00:​22:​20.100",​ 
-   "​msecs":​ 1340100, 
-   "​vts":​ 1, 
-   "​ttn":​ 14, 
-   "​video":​ { 
-    "​codec":​ "​MPEG2",​ 
-    "​format":​ "​NTSC",​ 
-    "​aspect ratio":​ "​4:​3",​ 
-    "​width":​ 720, 
-    "​height":​ 480, 
-    "​angles":​ 1, 
-    "​fps":​ "​29.97"​ 
-   }, 
-   "​audio":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x80"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x81"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x82"​ 
-    }, 
-    { 
-     "​track":​ 4, 
-     "​active":​ 0, 
-     "​lang code": "​en",​ 
-     "​codec":​ "​ac3",​ 
-     "​channels":​ 2, 
-     "​stream id": "​0x83"​ 
-    } 
-   ], 
-   "​subtitles":​ [ 
-    { 
-     "​track":​ 1, 
-     "​active":​ 1, 
-     "​lang code": "​en",​ 
-     "​stream id": "​0x20"​ 
-    }, 
-    { 
-     "​track":​ 2, 
-     "​active":​ 1, 
-     "​lang code": "​fr",​ 
-     "​stream id": "​0x21"​ 
-    }, 
-    { 
-     "​track":​ 3, 
-     "​active":​ 1, 
-     "​lang code": "​es",​ 
-     "​stream id": "​0x22"​ 
-    } 
-   ], 
-   "​chapters":​ [ 
-    { 
-     "​chapter":​ 1, 
-     "​length":​ "​00:​22:​20.100",​ 
-     "​msecs":​ 1340100, 
-     "​startcell":​ 1 
-    } 
-   ], 
-   "​cells":​ [ 
-    { 
-     "​cell":​ 1, 
-     "​length":​ "​00:​22:​20.100",​ 
-     "​msecs":​ 1340100 
-    } 
-   ] 
-  } 
- ] 
-} 
-</​code>​ 

Navigation