[FFmpeg-user] 420p out from ffmpeg becomes 420i in to x264

sean darcy seandarcy2 at gmail.com
Mon May 16 00:29:35 CEST 2011

I'm trying to use ffmpeg to pipe a stream to x264. Both ffmpeg and x264 
from git today.

  I'm deinterlacing the input with yadif, piped output is yuv4mpeg. And 
ffmpeg thinks is generating yuv420p.

But x264 is seeing the piped stream as interlaced. I thought yuv4mpeg 
had a header describing the stream. Is that so? If so, is the problem 
here that ffmpeg is not writing the header correctly, x264 is not 
reading it correctly, or have I screwed up something?


+ ffmpeg -i JulyPlay1990.avi -an -vf yadif=1:0,hqdn3d -r 60000/1001 
-pix_fmt yuv420p -f yuv4mpegpipe -
+ x264 --demuxer y4m --preset slower --tune film --bitrate 1200 -o 
out3.m4v -
ffmpeg version git-N-29946-g27614b1, Copyright (c) 2000-2011 the FFmpeg 
Input #0, avi, from 'JulyPlay1990-interlaced.avi':
     encoder         : Lavf53.0.3
   Duration: 00:21:40.66, start: 0.000000, bitrate: 30312 kb/s
     Stream #0.0: Video: dvvideo, yuv411p, 720x480 [PAR 8:9 DAR 4:3], 
29.97 tbr, 29.97 tbn, 29.97 tbc
     Stream #0.1: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
[buffer @ 0xe12400] w:720 h:480 pixfmt:yuv411p
[yadif @ 0xe12ec0] mode:1 parity:0
[hqdn3d @ 0xe0db40] ls:4.000000 cs:3.000000 lt:6.000000 ct:4.500000
[hqdn3d @ 0xe0db40] auto-inserting filter 'auto-inserted scaler 0' 
between the filter 'Parsed filter 0 yadif' and the filter 'Parsed filter 
1 hqdn3d'
[scale @ 0xe0e380] w:720 h:480 fmt:yuv411p -> w:720 h:480 fmt:yuv420p 
Output #0, yuv4mpegpipe, to 'pipe:':
     encoder         : Lavf53.0.3
     Stream #0.0: Video: rawvideo, yuv420p, 720x480 [PAR 8:9 DAR 4:3], 
q=2-31, 200 kb/s, 90k tbn, 59.94 tbc
Stream mapping:
   Stream #0.0 -> #0.0
Press [q] to stop encoding
y4m [info]: 720x480i 8:9 @ 60000/1001 fps (cfr)
x264 [warning]: input appears to be interlaced, enabling bff interlaced 
                 If you want otherwise, use --no-interlaced or --tff

More information about the ffmpeg-user mailing list