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_info [2021/10/17 17:42]
beandog
dvd_info [2023/12/26 01:50] (current)
beandog
Line 3: Line 3:
   * [[http://​github.com/​beandog/​dvd_info|GitHub dvd_info repo]]   * [[http://​github.com/​beandog/​dvd_info|GitHub dvd_info repo]]
   * [[https://​github.com/​beandog/​dvd_info/​releases|Downloads]]   * [[https://​github.com/​beandog/​dvd_info/​releases|Downloads]]
 +  * [[https://​github.com/​beandog/​dvd_info/​wiki|Documentation]] on wiki, also see man pages
   * Portability:​ Linux, Cygwin, [[OpenBSD]],​ [[NetBSD]], FreeBSD   * Portability:​ Linux, Cygwin, [[OpenBSD]],​ [[NetBSD]], FreeBSD
   * [[dvd_copy]]   * [[dvd_copy]]
   * [[dvd_drive_status]]   * [[dvd_drive_status]]
-  * [[dvd_eject]]+  * [[dvd_player]] 
 +  * [[dvd_rip]]
  
 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 12: Line 14:
 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 VOB straight to harddrive or stdout +  * ''​dvd_copy''​ - copies a title straight to harddrive or stdout 
-  * ''​dvd_player''​ - a DVD player using libmpv +  * ''​dvd_player''​ - a DVD player using [[mpv|libmpv]] 
-  * ''​dvd_trip''​ - a DVD ripper using libmpv+  * ''​dvd_trip''​ - a DVD ripper using [[mpv|libmpv]] 
 +  * ''​dvd_debug''​ - a program to display an excessive amount of information about a DVD
  
-The code is open-source,​ licensed under GNU GPL v2. Source code is available at [[https://​github.com/​beandog/​dvd_info]].+The code is open-source,​ licensed under GNU GPL v2.
  
-Build requirements:​ libdvdread, libdvdcss, libmpv (optional)+Source code is available at [[https://​github.com/​beandog/​dvd_info]]. 
 + 
 +Build requirements:​ libdvdread, libdvdcss, libmpv (optional, needed for ''​dvd_player''​ and ''​dvd_trip''​)
  
 === Installation ==== === Installation ====
Line 72: Line 77:
  
 <​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 94: Line 99:
  
 <​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 101: Line 106:
 === 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