[MEncoder-users] Bug: floating point exception when converting to DV
Levente Novák
lnovak at dragon.unideb.hu
Sat May 12 16:10:05 CEST 2007
Corey Hickey wrote:
> Levente Novák wrote:
> > With mplayer pulled from SVN last week, it "worked" like for you
> > (Insufficient audio data or severe sync problem) on i386 and ppc (Debian
> > GNU/Linux testing). Only every 14th or so frame was present in the dv
> > file, the others were discarded.
>
> Oops; I forgot to send the libavformat patch. With this one, most of the
> frames are not discarded.
>
Thanks, I applied the patch to fresh SVN and rebuilt the binaries.
> > Now, with today's SVN and your patch applied, it does not work again,
> > got the same
> >
> > [dv @ 0x87557c8]Can't initialize DV format!
> > Make sure that you supply exactly two streams:
> > video: 25fps or 29.97fps, audio: 2ch/48Khz/PCM
> > (50Mbps allows an optional second audio stream)
> > Floating point exception
> >
> > problem than originally (last week, before applying your patch).
> >
> > Why doesn't it work now even with your patch?
>
> I can't reproduce this. Please upload a sample file and send your exact
> command line.
>
Sorry, it was my mistake. In fact, I have two test files, one (birthday.mpg)
in VOB format (8000 kbps video, 2 channel AC3 audio) and the other one is an
AVI (FFVHuff codec with yuv422p colorspace, mono PCM audio at 44100 Hz). This
was the latter which didn't work.
The good news: the mpeg file works OK with your newest patch, the resulting DV
seems to be totally compliant, at least I tried to load it into kino and
reexport it to DVD VOB without problem. My command line was:
mencoder birthday.mpg -vf il=d:d,scale,format=yv12,il=i:i \
-af resample=48000:channels=2 \
-of lavf -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames\
:format=dv -oac pcm -ovc lavc \
-lavcopts vcodec=dvvideo -o birthday.dv
With the same command line but specifying ffvhuff-422p.avi:
/usr/local/bin/mencoder-test2 ffvhuff-422p.avi -vf il=d:d,scale,format=yv12,il=i:i -af resample=48000:channels=2 -of lavf -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames:format=dv -oac pcm -ovc lavc -lavcopts vcodec=dvvideo -o ffvhuff-422p.dv
MEncoder dev-SVN-r23302-4.1.2 (C) 2000-2007 MPlayer Team
CPU: Intel(R) Celeron(R) CPU 3.06GHz (Family: 15, Model: 4, Stepping: 1)
CPUflags: Type: 15 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2
success: format: 0 data: 0x0 - 0xe6ee39ec
AVI file format detected.
[aviheader] Video stream found, -vid 0
[aviheader] Audio stream found, -aid 1
AVI: ODML: Building ODML index (2 superindexchunks).
VIDEO: [FFVH] 720x576 16bpp 25.000 fps 80564.9 kbps (9834.6 kbyte/s)
[V] filefmt:3 fourcc:0x48564646 size:720x576 fps:25.00 ftime:=0.0400
==========================================================================
Opening audio decoder: [pcm] Uncompressed PCM audio decoder
AUDIO: 44100 Hz, 1 ch, s16le, 705.6 kbit/100.00% (ratio: 88200->88200)
Selected audio codec: [pcm] afm: pcm (Uncompressed PCM)
==========================================================================
** MUXER_LAVF *****************************************************************
You have certified that your video stream does not contain B frames.
REMEMBER: MEncoder's libavformat muxing is presently broken and will generate
INCORRECT files in the presence of B frames. Moreover, due to bugs MPlayer
will play these INCORRECT files as if nothing were wrong!
*******************************************************************************
OK, exit
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
Opening video filter: [il=i:i]
Opening video filter: [format fmt=yv12]
Opening video filter: [scale]
Opening video filter: [il=d:d]
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffhuffyuv] vfm: ffmpeg (FFmpeg HuffYUV)
==========================================================================
VDec: vo config request - 720 x 576 (preferred colorspace: Planar 422P)
VDec: using Planar 422P as output csp (no 1)
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 @ 0x889bc98]SwScaler: BICUBIC scaler, from yuv422p to yuv420p using MMX2
[swscaler @ 0x889bc98]SwScaler: using 4-tap MMX scaler for horizontal luminance scaling
[swscaler @ 0x889bc98]SwScaler: using 4-tap MMX scaler for horizontal chrominance scaling
[swscaler @ 0x889bc98]SwScaler: using 1-tap MMX "scaler" for vertical scaling (YV12 like)
[swscaler @ 0x889bc98]SwScaler: 720x576 -> 720x576
videocodec: libavcodec (720x576 fourcc=64737664 [dvsd])
New_Face failed. Maybe the font path is wrong.
Please supply the text font file (~/.mplayer/subfont.ttf).
subtitle font: load_sub_face failed.
VIDEO CODEC ID: 25
AUDIO CODEC ID: 10000, TAG: 0
Writing header...
[dv @ 0x8768e28]Can't initialize DV format!
Make sure that you supply exactly two streams:
video: 25fps or 29.97fps, audio: 2ch/48Khz/PCM
(50Mbps allows an optional second audio stream)
Floating point exception
What is strange that the same SIGFPE reappears. I think no SIGFPE should
occur normally, it should print an error message instead.
Also, I don't really understand why the conversion of this FFVHuff AVI does
not work: the video size is OK and audio is also converted to 2 ch,
48000 Hz s16le PCM. Do you see something I missed in my command line?
Levente
PS: Good news 2: a grab from the TV with this command was all OK:
mencoder tv:// -tv driver=v4l2:device=/dev/video0:\
input=0:outfmt=uyvy:width=720:height=576:fps=25:audiorate=48000:\
forceaudio:amode=1:forcechan=2 -of lavf \
-lavfopts i_certify_that_my_video_stream_does_not_use_b_frames:format=dv \
-oac pcm -ovc lavc -lavcopts vcodec=dvvideo -o tv.dv
More information about the MEncoder-users
mailing list