[mythtv-users] creating VCD using ffmpeg and vcdimager

Ralf Haller ralf at brap.de
Sun Sep 7 15:31:55 EDT 2003


When playing around with a 10 sec mpeg file I found out that the files 
created by the PVR 350 need to be remultiplexed in order to run on a 
stand-alone VCD-player. I used mpgcut to demultiplex the file and mplex 
to multiplex it. The result worked great on my player.

Doing the same with a "normal" recording of about 40 minutes or so 
failed during multiplexing. After multiplexing 1:40 mplex stopped 
displaying:

**ERROR: [mplex] Too many frame drops -exiting

Burning the multiplexed file produced so far by mplex on CD created a 
VCD that worked on my player.

What is the reason for that error? Here's what I did:

[wei at Baden tmp]$ ffmpeg -i 
/var/video/7_20030903012000_20030903014500.nuv -b 1151 -s 352x288 -r 25 
-ab 224 -ar 44100 -f vcd -y out.mpg
Input #0, mpeg, from '/var/video/7_20030903012000_20030903014500.nuv':
  Stream #0.0: Video: mpegvideo, 720x576, 29.97 fps, 8000 kb/s
  Stream #0.1: Audio: mp2, 48000 Hz, stereo, 384 kb/s
Output #0, vcd, to 'out.mpg':
  Stream #0.0: Video: mpeg1video, 352x288, 25.00 fps, q=2-31, 1151 kb/s
  Stream #0.1: Audio: mp2, 44100 Hz, stereo, 224 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Press [q] to stop encoding
frame=52400 q=3.0 size=  355586kB time=2096.0 bitrate=1389.8kbits/s
[wei at Baden tmp]$ ~/mpgcut-1.1-i386-libc6/mpgcut -d out.mpg

mpgcut Ver 1.1 - (c)2000 Laurent Alacoque <laureck at users.sourceforge.net>

yahaaaa this is a system mpeg file
mpeg video is 352 x 288
picture rate is 25.000000 fps
chunk.m1v exists, overwrite? [Yes/No/Always] :Y
chunk.mp2 exists, overwrite? [Yes/No/Always] :Y
[wei at Baden tmp]$ mplex -f 1 chunk.mp2 chunk.m1v -o chunk.mpg
   INFO: [mplex] mplex version 2.2.1 ($Date: 2002/02/04 19:06:14 $)
   INFO: [mplex] File chunk.mp2 looks like an MPEG Audio stream.
   INFO: [mplex] File chunk.m1v looks like an MPEG Video stream.
   INFO: [mplex] Found 1 video streams 1 MPEG audio streams and 0 AC3 
streams
   INFO: [mplex] Selecting VCD output profile
   INFO: [mplex] Scanning for header info: Video stream e0 (chunk.m1v)
   INFO: [mplex] VIDEO STREAM: e0
   INFO: [mplex] Frame width     : 352
   INFO: [mplex] Frame height    : 288
   INFO: [mplex] Aspect ratio    : 1:1 (square pixels)
   INFO: [mplex] Picture rate    : 25.000 frames/sec
   INFO: [mplex] Bit rate        : 1150800 bits/sec
   INFO: [mplex] Vbv buffer size : 40960 bytes
   INFO: [mplex] CSPF            : 1
   INFO: [mplex] Scanning for header info: Audio stream c0 (chunk.mp2)
   INFO: [mplex] AUDIO STREAM:
   INFO: [mplex] Audio version  : 1.0
   INFO: [mplex] Layer          :        3
   INFO: [mplex] CRC checksums  :       no
   INFO: [mplex] Bit rate       :    28672 bytes/sec (224 kbit/sec)
   INFO: [mplex] Frequency      :     44100 Hz
   INFO: [mplex] Mode           :        0 stereo
   INFO: [mplex] Mode extension :        0
   INFO: [mplex] Copyright bit  :        0 no copyright
   INFO: [mplex] Original/Copy  :        1 original
   INFO: [mplex] Emphasis       :        0 none
   INFO: [mplex] SYSTEMS/PROGRAM stream:
   INFO: [mplex] rough-guess multiplexed stream data rate    : 1410800
   INFO: [mplex] target data-rate specified               : 1411200
   INFO: [mplex] Setting specified specified data rate: 1411200
   INFO: [mplex] Sectors = 18 Video delay = 21600 Audio delay = 21600
   INFO: [mplex] New sequence commences...
   INFO: [mplex] Video e0: buf=  47104 frame=000000 sector=00000000
   INFO: [mplex] Audio c0: buf=   4096 frame=000000 sector=00000000
   INFO: [mplex] Padding : sector=00000000
++ WARN: [mplex] Stream e0: data will arrive too late sent(SCR)=632400 
required(DTS)=632400
++ WARN: [mplex] Video e0: buf=  38732 frame=000160 sector=00000350
++ WARN: [mplex] Audio c0: buf=   1792 frame=000246 sector=00000079
++ WARN: [mplex] Padding : sector=00000066
++ WARN: [mplex] Stream e0: data will arrive too late sent(SCR)=992400 
required(DTS)=913200
++ WARN: [mplex] Video e0: buf=  44799 frame=000237 sector=00000612
++ WARN: [mplex] Audio c0: buf=   4096 frame=000364 sector=00000117
++ WARN: [mplex] Padding : sector=00000066
++ WARN: [mplex] Stream e0: data will arrive too late sent(SCR)=1726800 
required(DTS)=1726800
++ WARN: [mplex] Video e0: buf=  37040 frame=000464 sector=00001057
++ WARN: [mplex] Audio c0: buf=   3066 frame=000710 sector=00000228
++ WARN: [mplex] Padding : sector=00000122
++ WARN: [mplex] Stream e0: data will arrive too late sent(SCR)=2875200 
required(DTS)=2875200
++ WARN: [mplex] Video e0: buf=  37844 frame=000783 sector=00001751
++ WARN: [mplex] Audio c0: buf=   2201 frame=001199 sector=00000385
++ WARN: [mplex] Padding : sector=00000228
++ WARN: [mplex] Stream e0: data will arrive too late sent(SCR)=6939600 
required(DTS)=6939600
++ WARN: [mplex] Video e0: buf=  40207 frame=001912 sector=00003685
++ WARN: [mplex] Audio c0: buf=   1996 frame=002928 sector=00000940
++ WARN: [mplex] Padding : sector=00001126
++ WARN: [mplex] Stream e0: data will arrive too late sent(SCR)=7299600 
required(DTS)=7238400
++ WARN: [mplex] Video e0: buf=  44799 frame=001994 sector=00003944
++ WARN: [mplex] Audio c0: buf=   4096 frame=003056 sector=00000981
++ WARN: [mplex] Padding : sector=00001126
++ WARN: [mplex] Stream e0: data will arrive too late sent(SCR)=7659600 
required(DTS)=7548000
++ WARN: [mplex] Video e0: buf=  44799 frame=002080 sector=00004202
++ WARN: [mplex] Audio c0: buf=   4096 frame=003187 sector=00001023
++ WARN: [mplex] Padding : sector=00001126
++ WARN: [mplex] Stream e0: data will arrive too late sent(SCR)=8019600 
required(DTS)=7882800
++ WARN: [mplex] Video e0: buf=  44799 frame=002173 sector=00004456
++ WARN: [mplex] Audio c0: buf=   4096 frame=003330 sector=00001069
++ WARN: [mplex] Padding : sector=00001126
++ WARN: [mplex] Stream e0: data will arrive too late sent(SCR)=8379600 
required(DTS)=8185200
++ WARN: [mplex] Video e0: buf=  44799 frame=002257 sector=00004715
++ WARN: [mplex] Audio c0: buf=   4096 frame=003458 sector=00001110
++ WARN: [mplex] Padding : sector=00001126
++ WARN: [mplex] Stream c0: data will arrive too late sent(SCR)=8739600 
required(DTS)=8535428
++ WARN: [mplex] Video e0: buf=  47104 frame=002355 sector=00004967
++ WARN: [mplex] Audio c0: buf=   1817 frame=003608 sector=00001158
++ WARN: [mplex] Padding : sector=00001126
++ WARN: [mplex] Stream e0: data will arrive too late sent(SCR)=9099600 
required(DTS)=8991600
++ WARN: [mplex] Video e0: buf=  44799 frame=002481 sector=00005205
++ WARN: [mplex] Audio c0: buf=   4096 frame=003801 sector=00001220
++ WARN: [mplex] Padding : sector=00001126
**ERROR: [mplex] Too many frame drops -exiting
[wei at Baden tmp]$

Any ideas how to solve this?

Ralf

Ralf Haller wrote:

> Hi,
>
> I tried to create a VCD from a PAL recording by mythtv using a PVR 350 
> mpeg card. The result had dropouts and showed artifacts when played on 
> my DVD player (Yamakawa AVPhile 715). The example vcd for PAL from 
> vcdimager plays without these problems.
>
> Here's what i did:
>
> [wei at Baden wei]$ ffmpeg -i test.mpg -b 1150 -s 352x288 -r 25 -ab 224 
> -ar 44100 -f vcd -y bla.mpg
> Input #0, mpeg, from 'test.mpg':
>  Stream #0.0: Video: mpegvideo, 720x576, 29.97 fps, 16000 kb/s
>  Stream #0.1: Audio: mp2, 48000 Hz, stereo, 384 kb/s
> Output #0, vcd, to 'bla.mpg':
>  Stream #0.0: Video: mpeg1video, 352x288, 25.00 fps, q=2-31, 1150 kb/s
>  Stream #0.1: Audio: mp2, 44100 Hz, stereo, 224 kb/s
> Stream mapping:
>  Stream #0.0 -> #0.0
>  Stream #0.1 -> #0.1
> Press [q] to stop encoding
> frame=52408 q=3.0 size=  355275kB time=2096.3 bitrate=1388.3kbits/s
> [wei at Baden wei]$ vcdimager -t vcd2 bla.mpg
> ++ WARN: initializing libvcd 0.7.14 [linux-gnu/i686]
> ++ WARN:
> ++ WARN:  this is the UNSTABLE development branch!
> ++ WARN:  use only if you know what you are doing
> ++ WARN:  see http://www.hvrlab.org/~hvr/vcdimager/ for more information
> ++ WARN:
>   INFO: scanning mpeg sequence item #0 for scanpoints...
> ++ WARN: file `videocd.bin' exist already, will get overwritten!
> ++ WARN: file `videocd.cue' exist already, will get overwritten!
>   INFO: writing track 1 (ISO9660)...
>   INFO: writing track 2, MPEG1, PAL SIF (352x288/25fps), audio[0]: 
> l2/44.1kHz/224kbps/stereo ...
> finished ok, image created with 157218 sectors [34:56.18] (369776736 
> bytes)
> [wei at Baden wei]$ su
> Password:
> [root at Baden wei]# cdrdao write --device 0,0,0 --speed 4 videocd.cue
> Cdrdao version 1.1.5 - (C) Andreas Mueller <andreas at daneb.de>
>  SCSI interface library - (C) Joerg Schilling
>  L-EC encoding library - (C) Heiko Eissfeldt
>  Paranoia DAE library - (C) Monty
>
> Check http://cdrdao.sourceforge.net/drives.html#dt for current driver 
> tables.
>
> Using libscg version 'schily-0.5'
>
> 0,0,0: SONY CD-RW  CRX120E      Rev: 1.0j
> Using driver: Generic SCSI-3/MMC - Version 1.2 (options 0x0010)
>
> Starting write at speed 4.[wei at Baden wei]$ ffmpeg -i test.mpg -b 1150 
> -s 352x288 -r 25 -ab 224 -ar 44100 -f vcd -y bla.mpg
> Input #0, mpeg, from 'test.mpg':
>  Stream #0.0: Video: mpegvideo, 720x576, 29.97 fps, 16000 kb/s
>  Stream #0.1: Audio: mp2, 48000 Hz, stereo, 384 kb/s
> Output #0, vcd, to 'bla.mpg':
>  Stream #0.0: Video: mpeg1video, 352x288, 25.00 fps, q=2-31, 1150 kb/s
>  Stream #0.1: Audio: mp2, 44100 Hz, stereo, 224 kb/s
> Stream mapping:
>  Stream #0.0 -> #0.0
>  Stream #0.1 -> #0.1
> Press [q] to stop encoding
> frame=52408 q=3.0 size=  355275kB time=2096.3 bitrate=1388.3kbits/s
> [wei at Baden wei]$ vcdimager -t vcd2 bla.mpg
> ++ WARN: initializing libvcd 0.7.14 [linux-gnu/i686]
> ++ WARN:
> ++ WARN:  this is the UNSTABLE development branch!
> ++ WARN:  use only if you know what you are doing
> ++ WARN:  see http://www.hvrlab.org/~hvr/vcdimager/ for more information
> ++ WARN:
>   INFO: scanning mpeg sequence item #0 for scanpoints...
> ++ WARN: file `videocd.bin' exist already, will get overwritten!
> ++ WARN: file `videocd.cue' exist already, will get overwritten!
>   INFO: writing track 1 (ISO9660)...
>   INFO: writing track 2, MPEG1, PAL SIF (352x288/25fps), audio[0]: 
> l2/44.1kHz/224kbps/stereo ...
> **ERROR: fwrite (): No space left on device
> [wei at Baden wei]$ vcdimager -t vcd2 bla.mpg
> ++ WARN: initializing libvcd 0.7.14 [linux-gnu/i686]
> ++ WARN:
> ++ WARN:  this is the UNSTABLE development branch!
> ++ WARN:  use only if you know what you are doing
> ++ WARN:  see http://www.hvrlab.org/~hvr/vcdimager/ for more information
> ++ WARN:
>   INFO: scanning mpeg sequence item #0 for scanpoints...
> ++ WARN: file `videocd.bin' exist already, will get overwritten!
> ++ WARN: file `videocd.cue' exist already, will get overwritten!
>   INFO: writing track 1 (ISO9660)...
>   INFO: writing track 2, MPEG1, PAL SIF (352x288/25fps), audio[0]: 
> l2/44.1kHz/224kbps/stereo ...
> finished ok, image created with 157218 sectors [34:56.18] (369776736 
> bytes)
> [wei at Baden wei]$ su
> Password:
> [root at Baden wei]# cdrdao write --device 0,0,0 --speed 4 videocd.cue
> Cdrdao version 1.1.5 - (C) Andreas Mueller <andreas at daneb.de>
>  SCSI interface library - (C) Joerg Schilling
>  L-EC encoding library - (C) Heiko Eissfeldt
>  Paranoia DAE library - (C) Monty
>
> Check http://cdrdao.sourceforge.net/drives.html#dt for current driver 
> tables.
>
> Using libscg version 'schily-0.5'
>
> 0,0,0: SONY CD-RW  CRX120E      Rev: 1.0j
> Using driver: Generic SCSI-3/MMC - Version 1.2 (options 0x0010)
>
> Starting write at speed 4...
> Pausing 10 seconds - hit CTRL-C to abort.
> Process can be aborted with QUIT signal (usually CTRL-\).
> Executing power calibration...
> Power calibration successful.
> Writing track 01 (mode MODE2_RAW/MODE2_RAW)...
> Writing track 02 (mode MODE2_RAW/MODE2_RAW)...
> Wrote 352 of 352 MB (Buffer 100%).
> Wrote 157218 blocks. Buffer fill min 50%/max 100%.
> Flushing cache...
> Writing finished successfully.
> ..
> Pausing 10 seconds - hit CTRL-C to abort.
> Process can be aborted with QUIT signal (usually CTRL-\).
> Executing power calibration...
> Power calibration successful.
> Writing track 01 (mode MODE2_RAW/MODE2_RAW)...
> Writing track 02 (mode MODE2_RAW/MODE2_RAW)...
> Wrote 352 of 352 MB (Buffer 100%).
> Wrote 157218 blocks. Buffer fill min 50%/max 100%.
> Flushing cache...
> Writing finished successfully.
>
>
> Any ideas what goes wrong here?
>
> Thanks,
>
> Ralf
>
>------------------------------------------------------------------------
>
>_______________________________________________
>mythtv-users mailing list
>mythtv-users at mythtv.org
>http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users
>  
>





More information about the mythtv-users mailing list