Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
dvd_info [2021/10/17 17:40] 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 [[mpv|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 | + | 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> | <code> | ||
- | dvd_info 1.2 - display information about a DVD | + | dvd_info - display information about a DVD |
- | Usage: dvd_info [options] [-t track number] [dvd path] | + | Usage: dvd_info [path] [options] |
Options: | Options: | ||
- | -t, --track # Limit to one track number (default: longest) | + | -t, --track <number> Limit to selected track (default: all tracks) |
+ | -j, --json Display output in JSON format | ||
Detailed information: | Detailed information: | ||
- | -a, --audio audio streams | + | -v, --video Display video streams |
- | -v, --video video | + | -a, --audio Display audio streams |
- | -c, --chapters chapters | + | -s, --subtitles Display VobSub subtitles |
- | -s, --subtitles subtitles | + | -c, --chapters Display chapters |
- | -d, --cells cells | + | -d, --cells Display cells |
- | -x, --all display all | + | -x, --all Display all |
- | Formatting: | + | Narrow results: |
- | -j, --json Display output in JSON format | + | -l, --longest Track with the longest length |
- | -o, --ogm Display OGM chapter format for track (default: longest) | + | -A, --has-audio Track has audio streams |
- | -i, --id Display DVD id only (from libdvdread) | + | -S, --has-subtitles Track has VobSub subtitles |
- | -T, --title Display DVD title only (path must be device or file) | + | -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: | Other: | ||
- | -q, --quiet Don't display DVD title, longest track | + | -i, --id Display DVD ID only |
- | -h, --help Display these help options | + | -u, --volume Display DVD UDF volume name only (for ISO or disc) |
- | -V, --version Version information | + | -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 directory. | + | DVD path can be a device name, a single file, or a directory (default: /dev/sr0) |
- | + | ||
- | 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> | ||
Line 76: | 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 98: | 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 105: | 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> |