| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| dvd_info [2018/02/20 04:10] – beandog | dvd_info [2025/04/21 06:09] (current) – external edit 127.0.0.1 |
|---|
| ====== dvd_info ====== | ====== dvd_info ====== |
| |
| * [[http://github.com/beandog/dvd_info|GitHub dvd_info repo]] | * [[http://github.com/beandog/dvd_info|Homepage]] |
| * [[https://sourceforge.net/projects/dvdinfo/files/|SourceForge downloads]] | * [[https://github.com/beandog/dvd_info/releases|Downloads]] |
| | * [[https://github.com/beandog/dvd_info/wiki|Documentation]] |
| | * [[dvd_copy]] |
| | * [[dvd_drive_status]] |
| | * [[dvd_player]] |
| | * [[dvd_rip]] |
| | * [[dvd_backup]] |
| |
| 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. |
| |
| Included: | Includes: |
| |
| * ''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_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_backup'' - back up a DVD completely, similar to [[dvdbackup]] (note the different names) |
| | * ''dvd_debug'' - a program to display an excessive amount of information about a DVD |
| |
| To download, see [[http://bluray.beandog.org/dvd_info/]]. | The code is open-source, licensed under GNU GPL v2. |
| |
| The code is open-source, licensed under GNU GPL v2. Source code is available at [[https://github.com/beandog/dvd_info]]. | Source code is available at [[https://github.com/beandog/dvd_info]]. |
| |
| Build requirements: libdvdread, libdvdcss, [[http://www.digip.org/jansson/|jansson]] | Build requirements: libdvdread, libdvdcss, libmpv (optional, needed for ''dvd_player'' and ''dvd_rip'') |
| |
| ==== dvd_info ==== | === Installation ==== |
| |
| ** Usage: ** dvd_info [options] [-t track number] [dvd path] | Then you can do standard ''./configure; make; make install'' |
| |
| By default will open ''/dev/dvd''. Can also open directories or image files as well. | ==== Documentation ==== |
| |
| Examples: | Run ''--help'' to see what it can do. |
| |
| <code> | There is more documentation available on the [[https://github.com/beandog/dvd_info/wiki|project wiki]]. Also, there are ''man'' pages for each program. |
| dvd_info /dev/sr0 | |
| dvd_info EXCITING_MOVIE.iso | |
| dvd_info ./ | |
| </code> | |
| |
| === Human-friendly output === | ==== Operating Systems ==== |
| |
| Here's what polling a Batman: The Animated Series DVD looks like: | I've written it so it will build and run on [[FreeBSD]], [[OpenBSD]], and [[NetBSD]]. You will just need to install the library dependencies and you'll be good to go. |
| |
| <code> | I don't have a Mac otherwise I'd make sure it works on OS X. I'm sure it's fine though. |
| $ dvd_info 1.005.0053.BATMAN_THE_ANIMATED_SERIES.iso | |
| Disc Title: BATMAN_ANIMATED_SERIES_DISC1 | |
| Title: 01, Length: 02:36:21.100 Chapters: 07, Cells: 07, Audio streams: 04, Subpictures: 03 | |
| Title: 02, Length: 00:00:12.000 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 | |
| Title: 03, Length: 00:00:32.033 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 | |
| Title: 04, Length: 00:01:06.800 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 | |
| Title: 05, Length: 00:00:29.967 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 | |
| Title: 07, Length: 00:22:20.834 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 | |
| Title: 08, Length: 00:22:24.433 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 | |
| Title: 09, Length: 00:22:17.000 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 | |
| Title: 10, Length: 00:22:18.734 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 | |
| Title: 11, Length: 00:22:24.000 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 | |
| Title: 12, Length: 00:22:16.000 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 | |
| Title: 13, Length: 00:05:02.000 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 | |
| </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> | |