Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
dvd_info [2021/10/17 23:40] beandogdvd_info [2025/02/07 10:29] (current) 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]]
-  * [[http://bluray.beandog.org/dvd_info/|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 [[mpv|libmpv]] 
 +  * ''dvd_rip'' - 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+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 ====
- 
-Based on what release version you get, github or a compiled package, you may need to build your own ''configure'' files. 
- 
-<code> 
-autoreconf -fi 
-</code> 
  
 Then you can do standard ''./configure; make; make install'' Then you can do standard ''./configure; make; make install''
Line 33: Line 34:
 ==== dvd_info ==== ==== dvd_info ====
  
-See ''--help'' for all the fancy stuff it can do+See ''--help'' for all the fancy stuff it can do. A man page (man dvd_info) is also included.
- +
-<code> +
-dvd_info 1.2 - display information about a DVD +
- +
-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>+
  
 === Human-friendly output === === Human-friendly output ===
Line 76: Line 41:
  
 <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 98: Line 63:
  
 <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 105: Line 70:
 === 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