[FFmpeg-user] No pixel format specified - meaning of yuv420p?

MRob mrobti at insiberia.net
Fri Dec 2 02:00:25 EET 2016


I'm exporting a video from an older Adobe Elements (Windows) with 
intention to put it on the web (both H.264 and VP8). I exported using 
Adobe's "DV AVI" which appears to be the most unmolested output format, 
but I get what looks like TWO warnings, the second of which I think 
causes the final error:

Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, avi, from 'video.avi':
   Duration: 00:38:45.35, start: 0.000000, bitrate: 30313 kb/s
     Stream #0:0: Video: dvvideo (dvsd / 0x64737664), yuv411p, 720x480 
[SAR 8:9 DAR 4:3], 28777 kb/s, 29.97 fps, 29.97 tbr, 29.97 tbn, 29.97 
tbc
     Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, 
stereo, s16, 1536 kb/s
No pixel format specified, yuv422p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
x264 [error]: baseline profile doesn't support 4:2:2
[libx264 @ 0x44edec0] Error setting profile baseline.
[libx264 @ 0x44edec0] Possible profiles: baseline main high high10 
high422 high444
Stream mapping:
   Stream #0:0 -> #0:0 (dvvideo (native) -> h264 (libx264))
   Stream #0:1 -> #0:1 (pcm_s16le (native) -> aac (native))
Error while opening encoder for output stream #0:0 - maybe incorrect 
parameters such as bit_rate, rate, width or height

I see this mailing list post which may "fix" the error for me(?):
https://ffmpeg.org/pipermail/ffmpeg-user/2012-April/006013.html

But from reading that mailing list post and the error message text, it 
sounds like adding "-pix_fmt yuv420p" affects the output. I do not need 
to retain compatibility with terribly old devices (though I am using 
baseline level 3.0), so I wanted to ask if there is a better way to 
handle conversion in this case.

There is also an option in Elements to export MPEG H.264 ("1080i 25" or 
"1080i 30", providing profiles main/high, levels 4/4.1, default 1 pass 
bitrate of 20, etc), but I don't understand all their settings and I 
trust ffmpeg to do a better job and I don't want to encode twice if 
possible.

Here are the options I'm using for H.264 conversion:
-movflags +faststart -codec:v libx264 -preset veryslow -profile:v 
baseline -level:v 3.0 -codec:a aac

For VP8 conversion, I only get the first warning:
Guessed Channel Layout for Input Stream #0.1 : stereo
Otherwise, it completes without any errors.

I tried "-pix_fmt yuv420p" for H.264 conversion and it completed without 
error, but I'm still unsure if it was exactly what I want -- conversion 
from slightly outdated platform to the web, no desire to retain 
"compatibility with outdated media players" as it tells me.

Thanks for the help and thanks for the quite excellent product.


More information about the ffmpeg-user mailing list