[FFmpeg-user] convert from bt601 to bt709
Carl Eugen Hoyos
cehoyos at ag.or.at
Tue Jun 10 16:39:15 CEST 2014
Gregory Ducatel <gducatel <at> gmail.com> writes:
> ffmpeg.exe -y -threads 8 -f image2
The dpx decoder is currently not multi-threading
capable: This would be trivial to add but I wonder if
it helps performance in any case (I/O should be slower
than dpx decoding).
> -r 24000/1001
(Unrelated: This may be unnecessary because FFmpeg
does read the framerate field from dpx images now.
It is of course necessary with the workaround below.)
> -i "Source_file.%04d.dpx"
> -sws_flags full_chroma_inp+full_chroma_int+accurate_rnd+print_info
> -c:v dnxhd -pix_fmt yuv422p -b:v 115M
> -vf "[in]scale=1920:1080,colormatrix=bt601:bt709[out]"
> -movflags +faststart -aspect 1.777778 "c:\test_dnxhd.mov"
I was unable to find a possibility to make FFmpeg assume
MPEG range for the input sample (and I was unable to find
any hint within the dpx file that it is not full scale
which is expected for rgb afaict, if somebody could help
with the detection, it would be useful!), you currently
have to cheat:
$ ffmpeg -i input.dpx -f rawvideo
-pix_fmt yuvj422p out
(You could probably compress the output, in any case you
can use -f image2 -vcodec rawvideo if that suits your
$ ffmpeg -f rawvideo -s 1920x1080 -r 24000/1001 -pix_fmt yuv422p
-i out -vcodec dnxhd -vb 115M -movflags +faststart out.mov
Note the different colour spaces used for writing and reading.
Above may not be perfect but since you are converting
from 10bit to 8bit with subsampling I would (perhaps
wrongly?) assume that the output does not have to
In any case: Please test and let me know if this is
closer to what you expect.
I would open a ticket but I am still hoping for a
checkerboard or at least a dpx sample with large
white and black areas.
More information about the ffmpeg-user