1

I am attempting to encode "ProRes 4444" movies with ffmpeg. Some research led me to the "prores_ks" encoder, which is the only one of ffmpeg's prores encoders that supports "4444".

I used this command to test it out (input excluded):

-c:v prores_ks -f mov -profile:v 4444 test.mov 

This produces a ProRes 4444 movie. However, the colors appear darker than the original input. After some research I came upon this option:

-vf colormatrix=bt601:bt709 

Adding this filter seems to fix the problem. However, the file size is for some reason considerably bigger. Also, I do not like the idea that a filter has to be performed during this encoding, as I want the highest possible quality. Does anyone know of a way to overcome this "color shift" without a video filter?

6
  • 1
    colormatrix filter operates in 8bit only, and you shouldn't use it anyway. Commented Feb 19, 2016 at 9:50
  • Also what are input properties, like what colorspace? Commented Feb 19, 2016 at 17:47
  • The input is a PNG sequence. Commented Feb 29, 2016 at 22:31
  • What bit depth, could you upload one image somewhere? Commented Mar 1, 2016 at 8:44
  • I've tried both 8 and 16 bit, out of After Effects. Here's a PNG and a MOV made with ffmpeg, using command ffmpeg -r 24 -i colorbars_8bit.png -c:v prores_ks -profile:v 4444 colorbars_prores_ks.mov: file.io/SeKH8I Commented Mar 1, 2016 at 17:15

1 Answer 1

1

I believe the problem lies in how FFMPEG does the RGB->YUV conversion by default. This option specifies the use of the bt709 color space for the conversion, instead of the default of bt601. This fixes it for me - though please let me know if I'm doing something bad here!

-vf scale=out_color_matrix=bt709 
1
  • 709 is default for HD, 601 for SD. Commented Mar 24, 2016 at 16:28

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.