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 [2014/09/08 22:43]
beandog
dvd_info [2020/12/28 03:37] (current)
beandog [dvd_info]
Line 1: Line 1:
 ====== dvd_info ====== ====== dvd_info ======
 +
 +  * [[http://​github.com/​beandog/​dvd_info|GitHub dvd_info repo]]
 +  * [[https://​sourceforge.net/​projects/​dvdinfo/​files/​|SourceForge downloads]]
 +  * [[http://​bluray.beandog.org/​dvd_info/​|Downloads]]
 +  * Portability:​ Linux, Cygwin, [[OpenBSD]],​ [[NetBSD]], FreeBSD
 +  * [[dvd_copy]]
 +  * [[dvd_drive_status]]
 +  * [[dvd_eject]]
  
 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 5: Line 13:
 Included: Included:
  
-  * ''​dvd_info''​ - a successor in spirit to [[lsdvd]], can output information about a DVD in human-readable or JSON output+  * ''​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_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 toa ccess it (very useful for shell scripts that access DVD drives)
- +  * ''​dvd_copy''​ - copies a VOB straight to harddrive or stdout
-To download, see [[http://​bluray.beandog.org/​dvd_info/​]].+
  
 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.  Source code is available at [[https://​github.com/​beandog/​dvd_info]].
  
-==== dvd_info ====+Build requirements:​ libdvdread, libdvdcss
  
-** Usage: ** dvd_info [options] [-t track number] [dvd path]+=== Installation ====
  
-By default will open ''​/dev/dvd''​.  Can also open directories or image files as well.+Based on what release version you get, github or a compiled package, you may need to build your own ''​configure''​ files.
  
-Examples:+<​code>​ 
 +autoreconf -fi 
 +</​code>​ 
 + 
 +Then you can do standard ''​./​configure;​ make; make install''​ 
 + 
 +==== dvd_info ==== 
 + 
 +See ''​--help''​ for all the fancy stuff it can do:
  
 <​code>​ <​code>​
-dvd_info /dev/sr0 +dvd_info ​1.2 - display information about a DVD 
-dvd_info ​EXCITING_MOVIE.iso + 
-dvd_info ​./+Usage: dvd_info [options] [-t track number] [dvd path] 
 + 
 +Options: 
 +  -t, --track # Limit to one track number (default: longest) 
 + 
 +Detailed information:​ 
 +  -a, --audio audio streams 
 +  -v, --video video 
 +  -c, --chapters chapters 
 +  -s, --subtitles subtitles 
 +  -d, --cells cells 
 +  -x, --all display all 
 + 
 +Formatting:​ 
 +  -j, --json Display output in JSON format 
 +  -o, --ogm Display OGM chapter format for track (default: longest) 
 +  -i, --id Display DVD id only (from libdvdread) 
 +  -T, --title Display DVD title only (path must be device or file) 
 + 
 +Other: 
 +  -q, --quiet Don'​t display DVD title, longest track 
 +  -h, --help Display these help options 
 +  -V, --version Version information 
 + 
 +DVD path can be a device name, a single file, or directory. 
 + 
 +Examples: 
 +  dvd_info # Read default DVD device (/dev/sr0) 
 +  dvd_info ​/dev/dvd # Read a specific DVD device 
 +  dvd_info movie.iso # Read an image file 
 +  dvd_info ​~/movie/ # Read a directory that contains VIDEO_TS
 </​code>​ </​code>​
  
-** Human-friendly output ​**+=== Human-friendly output ​===
  
 Here's what polling a Batman: The Animated Series DVD looks like: Here's what polling a Batman: The Animated Series DVD looks like:
Line 49: Line 94:
 Title: 14, Length: 00:​22:​20.100 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures:​ 03 Title: 14, Length: 00:​22:​20.100 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures:​ 03
 Longest track: 01 Longest track: 01
 +</​code>​
 +
 +Specifing a track:
 +
 +<​code>​
 +$ dvd_info -t 6 1.005.0053.BATMAN_THE_ANIMATED_SERIES.iso ​
 +Disc Title: BATMAN_ANIMATED_SERIES_DISC1
 +Title: 06, Length: 00:​22:​20.100 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures:​ 03
 +</​code>​
 +
 +=== 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.
 +
 +<​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>​ </​code>​

Navigation