Encode VCD audio to 48000Hz
$ mpgsplit movie.mpg [0-50M] -o vcd.mpg
$ du -hs vcd.mpg
489M vcd.mpg
$ mpginfo vcd.mpg48k
vcd.mpg Mpeg 1 System File [Video/Audio] Muxrate : 1.41 Mbps Estimated Duration: 48:57.47s Size [352 x 240] 29.97 fps 1.15 Mbps Audio : Mpeg 1 layer 2 224 kbps 44100 Hz Stereo, No emphasis
(A) Approach 1: Reencode -> demux -> mplex
$ mencoder \
-ovc copy \
-oac lavc lavcopts acodec=mp2:abitrate=224 -srate 48000 -idx -noskip -sws 2 \
-of mpeg vcd.mpg -o outfile.mpg48k > /dev/null
real 4m25.739s user 2m34.639s sys 0m18.953s
$ mpginfo outfile.mpg48k
outfile.mpg48k Mpeg 1 System File [Video/Audio] Muxrate : 2.11 Mbps Estimated Duration: 48:57.08s Size [352 x 240] 29.97 fps 1.15 Mbps Audio : Mpeg 1 layer 2 224 kbps 48000 Hz Stereo, No emphasis
$ mpgdemux outfile.mpg48k
real 1m23.077s user 0m2.966s sys 0m4.411s
$ mplex -f 8 -o outfile.vobmpg chunk-0.m1v chunk-0.mp2
real 2m2.510s user 0m43.697s sys 0m7.602s
(B) Approach 2: Demux -> toolame Audio -> mplex
Verify the vobmpg
$ dvdauthor -o dvd_test outfile.vobmpg $ rm -rf dvd_test
DVD Authoring
$ dvdauthor -x dvdvcd.xml
DVDAuthor::dvdauthor, version 0.6.9. Build options: gnugetopt magick iconv freetype Send bugs toINFO: Locale=LC_CTYPE=zh_TW.Big5;LC_NUMERIC=C;LC_TIME=C;LC_COLLATE=C;LC_MONETARY INFO: Converting filenames to BIG5 INFO: dvdauthor creating VTS STAT: Picking VTS 01 STAT: Processing Part1.vobmpg... STAT: VOBU 4848 at 499MB, 1 PGCS INFO: Video pts = 0.178 .. 2937.579 INFO: Audio[8] pts = 0.178 .. 2937.658 STAT: Processing Part2.vobmpg... STAT: VOBU 9866 at 1011MB, 1 PGCS INFO: Video pts = 0.178 .. 3011.452 INFO: Audio[8] pts = 0.178 .. 3011.530 STAT: VOBU 9876 at 1013MB, 1 PGCS INFO: Generating VTS with the following video attributes: INFO: MPEG version: mpeg1 INFO: TV standard: ntsc INFO: Aspect ratio: 4:3 INFO: Resolution: 352x240 INFO: Audio ch 0 format: mp2/2ch, 20bps WARN: Audio channel 1 gap is negative (-7098) on VOB Silver1.vobmpg cell 1 STAT: fixed 9876 VOBUS INFO: dvdauthor creating VTS STAT: Picking VTS 02 STAT: Processing Part3.vobmpg... STAT: VOBU 6496 at 656MB, 1 PGCS INFO: Video pts = 0.178 .. 3866.073 INFO: Audio[8] pts = 0.178 .. 3866.146 STAT: Processing Part4.vobmpg... STAT: VOBU 12254 at 1238MB, 1 PGCS INFO: Video pts = 0.178 .. 3419.193 INFO: Audio[8] pts = 0.178 .. 3419.290 STAT: VOBU 12264 at 1240MB, 1 PGCS INFO: Generating VTS with the following video attributes: INFO: MPEG version: mpeg1 INFO: TV standard: ntsc INFO: Aspect ratio: 4:3 INFO: Resolution: 352x240 INFO: Audio ch 0 format: mp2/2ch, 20bps WARN: Audio channel 1 gap is negative (-6537) on VOB KooYin1.vobmpg cell 1 WARN: Audio channel 1 gap is negative (-6537) on VOB KooYin2.vobmpg cell 1 STAT: fixed 12264 VOBUS INFO: dvdauthor creating VTS STAT: Picking VTS 03 STAT: Processing Part5.vobmpg... STAT: VOBU 6880 at 629MB, 1 PGCS INFO: Video pts = 0.178 .. 3685.526 INFO: Audio[8] pts = 0.178 .. 3685.594 STAT: Processing Part6.vobmpg... STAT: VOBU 12765 at 1168MB, 1 PGCS INFO: Video pts = 0.178 .. 3145.586 INFO: Audio[8] pts = 0.178 .. 3145.618 STAT: VOBU 12778 at 1169MB, 1 PGCS INFO: Generating VTS with the following video attributes: INFO: MPEG version: mpeg1 INFO: TV standard: ntsc INFO: Aspect ratio: 4:3 INFO: Resolution: 352x240 INFO: Audio ch 0 format: mp2/2ch, 20bps WARN: Audio channel 1 gap is negative (-6090) on VOB paycheck1.vobmpg cell 1 WARN: Audio channel 1 gap is negative (-6090) on VOB paycheck2.vobmpg cell 1 STAT: fixed 12778 VOBUS INFO: dvdauthor creating VTS STAT: Picking VTS 04 STAT: Processing Part7.vobmpg... STAT: VOBU 7456 at 572MB, 1 PGCS INFO: Video pts = 0.184 .. 3354.864 INFO: Audio[8] pts = 0.264 .. 3355.032 STAT: Processing Part8.vobmpg... STAT: VOBU 12109 at 928MB, 1 PGCS INFO: Video pts = 0.184 .. 2076.504 INFO: Audio[8] pts = 0.264 .. 2076.672 STAT: VOBU 12110 at 928MB, 1 PGCS WARN: GOP is not closed on cell 1 of source Itchy1.vobmpg of pgc 1 WARN: GOP is not closed on cell 1 of source Itchy2.vobmpg of pgc 1 INFO: Generating VTS with the following video attributes: INFO: MPEG version: mpeg1 INFO: TV standard: pal INFO: Aspect ratio: 4:3 INFO: Resolution: 352x288 INFO: Audio ch 0 format: mp2/2ch, 20bps WARN: Audio channel 1 gap is negative (-7920) on VOB Itchy1.vobmpg cell 1 WARN: Audio channel 1 gap is negative (-7920) on VOB Itchy2.vobmpg cell 1 STAT: fixed 12110 VOBUS INFO: dvdauthor creating table of contents INFO: Scanning DVD123/VIDEO_TS/VTS_01_0.IFO INFO: Scanning DVD123/VIDEO_TS/VTS_02_0.IFO INFO: Scanning DVD123/VIDEO_TS/VTS_03_0.IFO INFO: Scanning DVD123/VIDEO_TS/VTS_04_0.IFO INFO: Creating menu for TOC STAT: Processing menu.mpg... INFO: Video pts = 0.184 .. 2.184 INFO: Audio[8] pts = 0.184 .. 60.160 INFO: Audio[32] pts = 0.184 .. 0.184 STAT: VOBU 2 at 2MB, 1 PGCS INFO: Generating VMGM with the following video attributes: INFO: MPEG version: mpeg2 INFO: TV standard: pal INFO: Aspect ratio: 4:3 INFO: Resolution: 720x576 INFO: Audio ch 0 format: mp2/2ch, 20bps STAT: fixed 2 VOBUS
Play the DVD
$ xine dvd:/path/to/VIDEO_TS/
This is xine (X11 gui) - a free video player v0.9.23. (c) 2000-2003 The xine Team. libdvdnav: Using dvdnav version 1-rc4 from http://xine.sf.net libdvdread: Using libdvdcss version 1.2.8 for DVD access libdvdread: Couldn't find device name. libdvdnav: Can't read name block. Probably not a DVD-ROM device. libdvdnav: Unable to find map file '/home/brother/.dvdnav/.map' libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1 2 3 4 5 6 7 8
Burn the DVD
$ growisofs -dvd-compat -speed=4 -Z /dev/hdc -dvd-video -VR /path/above/VIDEO_TS
Executing 'mkisofs -vRJ . | builtin_dd of=/dev/hdc obs=32k seek=0' mkisofs 2.01a27 (i686-pc-linux-gnu) Scanning . Scanning ./VIDEO_TS Scanning ./AUDIO_TS Writing: Initial Padbock Start Block 0 Done with: Initial Padbock Block(s) 16 Writing: Primary Volume Descriptor Start Block 16 Done with: Primary Volume Descriptor Block(s) 1 Writing: Joliet Volume Descriptor Start Block 17 Done with: Joliet Volume Descriptor Block(s) 1 Writing: End Volume Descriptor Start Block 18 Done with: End Volume Descriptor Block(s) 1 Writing: Version block Start Block 19 Done with: Version block Block(s) 1 Writing: Path table Start Block 20 Done with: Path table Block(s) 4 Writing: Joliet path table Start Block 24 Done with: Joliet path table Block(s) 4 Writing: Directory tree Start Block 28 Done with: Directory tree Block(s) 4 Writing: Joliet directory tree Start Block 32 Done with: Joliet directory tree Block(s) 3 Writing: Directory tree cleanup Start Block 35 Done with: Directory tree cleanup Block(s) 0 Writing: Extension record Start Block 35 Done with: Extension record Block(s) 1 Writing: The File(s) Start Block 36 /dev/hdc: "Current Write Speed" is 4.1x1385KBps. 0.22% done, estimate finish Tue May 4 14:49:50 2004 ... ... ... 99.78% done, estimate finish Tue May 4 13:29:28 2004 Total translation table size: 0 Total rockridge attributes bytes: 2025 Total directory bytes: 6144 Path table size(bytes): 42 Done with: The File(s) Block(s) 2229675 Writing: Ending Padblock Start Block 2229711 Done with: Ending Padblock Block(s) 150 Max brk space used 21000 2229861 extents written (4355 MB) builtin_dd: 2229872*2KB out /dev/hdc: flushing cache /dev/hdc: closing track /dev/hdc: closing disc