Error message: "Invalid frame duration" - What is causing this and what could be done about it?
Hi: I trust that I am asking this in the correct newsgroup - apologies if not. I'm using a pcHDTV HD5500 HDTV video card, with an analog cable TV input to record, using mencoder. The command line is embedded in a shell script, below, and is simply invoked with a run (duration) time and a channel number. Occasionaly, perhaps 1 in 10 times, or perhaps worse, I get a stream of error messages, below, and a video file that is bad, jumpy images, possibly field reversed, although I wouldn't recognise that if it bit me. I would appreciate advise as to what could be causing this and what could be done about it. Thank you ERROR Message: Invalid frame duration value (5039.772/5039.562 => -0.210). Defaulting to 0.053 sec. COMMAND Line: Command line from the shell script, where S2 is the channel# and $1 is the running time
mencoder tv:// \ -tv driver=v4l2:chanlist=us-cable:norm=NTSC-M:device=/dev/video0:input=0:quality=0:width=640:height=480:brightness=20:saturation=20:adevice=hw.0:alsa:channel= $2 \ -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2000:vratetol=32000:mbd=2 \ -oac mp3lame -lameopts fast \ -vf crop=636:476:2:2,denoise3d=4:3:6,harddup \ -noskip -noencodedups -skiplimit 0 -endpos $1 \ -of avi -ofps 30000/1001 -o test.avi
SUCCESSFUL output for a (very) short run
MEncoder 1.0rc2-SUSE Linux 10.3 (x86_64)-Packman-4.2.1 (C) 2000-2007 MPlayer Team CPU: Intel(R) Core(TM)2 CPU 6420 @ 2.13GHz (Family: 6, Model: 15, Stepping: 6) CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1 Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowEx SSE SSE2
success: format: 9 data: 0x0 - 0x0 TV file format detected. Selected driver: v4l2 name: Video 4 Linux 2 input author: Martin Olschewski <olschewski@zpr.uni-koeln.de> comment: first try, more to come ;-) Selected device: pcHDTV HD5500 HDTV Tuner cap: Tuner rxs: Capabilites: video capture VBI capture device tuner read/write streaming supported norms: 0 = PAL-BG; 1 = PAL-DK; 2 = PAL-I; 3 = PAL-M; 4 = PAL-N; 5 = PAL-Nc; 6 = PAL-60; 7 = NTSC-M; 8 = NTSC-M-JP; 9 = NTSC-443; 10 = SECAM-DK; 11 = SECAM-L; inputs: 0 = Television; 1 = Composite1; 2 = S-Video; Current input: 0 Current format: BGR24 v4l2: current audio mode is : MONO v4l2: ioctl set format failed: Invalid argument v4l2: ioctl set format failed: Invalid argument Selected channel: 3 (freq: 61.250) Channel count not available - reverting to default: 2 Channel count not available - reverting to default: 2 [V] filefmt:9 fourcc:0x59565955 size:640x480 fps:29.97 ftime:=0.0334 ========================================================================== Opening audio decoder: [pcm] Uncompressed PCM audio decoder AUDIO: 44100 Hz, 2 ch, s16le, 1411.2 kbit/100.00% (ratio: 176400->176400) Selected audio codec: [pcm] afm: pcm (Uncompressed PCM) ========================================================================== Opening video filter: [expand osd=1] Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1 Opening video filter: [harddup] Opening video filter: [denoise3d=4:3:6] Opening video filter: [crop w=636 h=476 x=2 y=2] Crop: 636 x 476, 2 ; 2 ========================================================================== Opening video decoder: [raw] RAW Uncompressed Video VDec: vo config request - 640 x 480 (preferred colorspace: Packed UYVY) Could not find matching colorspace - retrying with -vf scale... Opening video filter: [scale] VDec: using Packed UYVY as output csp (no 0) Movie-Aspect is undefined - no prescaling applied. SwScaler: reducing / aligning filtersize 1 -> 4 SwScaler: reducing / aligning filtersize 1 -> 4 SwScaler: reducing / aligning filtersize 1 -> 1 SwScaler: reducing / aligning filtersize 9 -> 8 [swscaler @ 0xd323f0]SwScaler: BICUBIC scaler, from uyvy422 to yuv420p using MMX2 [swscaler @ 0xd323f0]SwScaler: using 4-tap MMX scaler for horizontal luminance scaling [swscaler @ 0xd323f0]SwScaler: using 4-tap MMX scaler for horizontal chrominance scaling [swscaler @ 0xd323f0] SwScaler: using 1-tap MMX "scaler" for vertical scaling (YV12 like) [swscaler @ 0xd323f0]SwScaler: 640x480 -> 640x480 videocodec: libavcodec (636x476 fourcc=34504d46 [FMP4]) [VE_LAVC] High quality encoding selected (non-realtime)! Selected video codec: [rawuyvy] vfm: raw (RAW UYVY) ========================================================================== MP3 audio selected. Forcing audio preload to 0, max pts correction to 0. Writing header...1f ( 0%) 0.00fps Trem: 0min 0mb A-V:0.000 [0:0] ODML: Aspect information not (yet?) available or unspecified, not writing vprp header. Writing header... ODML: Aspect information not (yet?) available or unspecified, not writing vprp header. Pos: 5.0s 150f ( 0%) 28.71fps Trem: 0min 0mb A-V:0.000 [2530:174] Flushing video frames. Writing index... Writing header... ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.
Video stream: 2530.538 kbit/s (316317 B/s) size: 1583168 bytes 5.005 secs 150 frames
Audio stream: 174.123 kbit/s (21765 B/s) size: 108596 bytes 4.989 secs v4l2: 157 frames successfully processed, 0 frames dropped.
-------------------------------------------------------------------------- Roger Pryor Email: rpryor@infoserve.net Vancouver, Canada
mencoder tv:// \ -tv driver=v4l2:chanlist=us-cable:norm=NTSC-M:device=/dev/video0:input=0:quality=0:width=640:height=480:brightness=20:saturation=20:adevice=hw.0:alsa:channel= $2 \ -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2000:vratetol=32000:mbd=2 \ -oac mp3lame -lameopts fast \ -vf crop=636:476:2:2,denoise3d=4:3:6,harddup \ -noskip -noencodedups -skiplimit 0 -endpos $1 \ -of avi -ofps 30000/1001 -o test.avi How about you try a simpler command line? Such as this:
mencoder tv://$2 \ -tv driver=v4l2:chanlist=us-cable:norm=NTSC-M:width=640:height=480:adevice=hw.0:alsa \ -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2000:vratetol=32000:mbd=2 \ -oac mp3lame -lameopts fast \ -vf crop=636:476,denoise3d -noskip -endpos $1 -ofps 30000/1001 -o test.avi Your original command line is weird. Some issues: - -vf harddup and -noencodedups contradict each other (AFAIK) - -skiplimit 0 and -noskip do the same thing. - quality is listed in the man page as "Choose the quality of the JPEG compression". This is probably related to hardware MJPEG compression. Why do you set it to 0? And in many situations you specify the default value for a parameter, but choose the default: - /dev/video0 is the default for the device parameter. No need to set it. - Again, 0 is default for input. - Do you really need to set brightness and saturation? Have you tested the default? Are you not satisfied with it? - 4:3:6 are default for denoise3d - -of avi is default if the output file ends in '.avi'.
participants (2)
-
Jorge Peixoto de Morais Neto -
Roger Pryor