[FFmpeg-user] First frame is corrupted

Moritz Barsnick barsnick at gmx.net
Wed Oct 30 11:32:47 EET 2019


On Wed, Oct 30, 2019 at 10:07:58 +0100, Michael Koch wrote:
> Hi,
>
> I have a video which looks fine in FFplay and also in VLC, but after
> uploading to Facebook the first frame is corrupted, as can be seen here:
> https://www.facebook.com/100002490928195/videos/2597554727004199/
> I don't know if this is a problem in my file or not. The console output
> is below.

I downloaded the "original", i.e. file as hosted by Facebook using
youtube-dl, and I don't see any corruption at all. Not until I went to
the webpage in a browser did I understand what you mean.

What you are seeing is not the first frame, it is an automatically
generated static preview image, which *may* be a snapshot of the first
frame, or whatever you tell Facebook to use.

My guess is that Facebook's preview image generator has an issue with
this pixel format:

>      Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv444p10le(progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 12800 tbn, 25 tbc (default)

i.e. yuv444p10le. You can be really glad that they do process the video
properly, considering 10-bit content (or even anything but
yuv420p/yuv422p) was often not understood, not so long ago.

You may want to reconsider your pixel format, and whether that's really
required for the video content you are presenting. If "anything" is
fine, just add "-pix_fmt yuv420p" to your ffmpeg output options (or
experiment with other 8-bit formats such as yuv444p).

Alternatively, you might be able to upload a separate preview image. I
can't recall whether Facebook offers that (too lazy to try), I do know
YouTube does.

BTW:
> F:\2019_10_30_Sylvia>c://ffmpeg/ffmpeg -ss 300 -i P1000479.mov -filter_complex "colorlevels=rimin=0.015:gimin=0.005:bimin=0.015:rimax=0.26:gimax=0.26:bimax=0.26" -t 3 -q:v 1 -y sylvia.mp4

At first glance, I was pretty sure that "-q:v 1" is incorrect for
libx264 (which is your default codec for MP4 output). ffmpeg confirms:

> [libx264 @ 0000000000469040] -qscale is ignored, -crf is recommended.

And libx264 thereby defaults to crf=23.0, which may not be what you
intended to achieve.

Cheers,
Moritz


More information about the ffmpeg-user mailing list