Opened 3 months ago

Last modified 3 months ago

#8074 new defect

movflags write_colr not working for ProRes encoded mov files

Reported by: en5ca Owned by:
Priority: normal Component: avformat
Version: git-master Keywords: mov regression
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:
Movflags write_colr not working for Prores encoded mov files. Works with h264 encoding. Output shows the color metadata to be written, but it's not readable with ffprobe or ffmpeg, or any other software. Doesn't seem to work in 4.1, 4.2 or git-master, but works in 4.0.
How to reproduce:

ffmpeg -f lavfi -i testsrc=duration=10:size=1920x1080:rate=24000/1001 -pix_fmt yuv422p10le -colorspace bt709 -color_primaries bt709 -color_trc bt709 -movflags write_colr -c:v prores_ks -profile:v hq testsrc.mov

ffprobe -i testsrc.mov -show_streams

ffmpeg version 4.1.4

Patches should be submitted to the ffmpeg-devel mailing list and not this bug tracker.

Attachments (4)

ffmpeg.log (12.8 KB) - added by en5ca 3 months ago.
ffmpeg log
ffprobe.log (39.9 KB) - added by en5ca 3 months ago.
ffprobe log
ffmpeg-git-master.log (11.5 KB) - added by en5ca 3 months ago.
fffmpeg git master log
ffprobe-git-master.log (37.2 KB) - added by en5ca 3 months ago.
ffprobe git master log

Download all attachments as: .zip

Change History (11)

Changed 3 months ago by en5ca

ffmpeg log

Changed 3 months ago by en5ca

ffprobe log

comment:1 Changed 3 months ago by en5ca

  • Component changed from ffmpeg to avformat

comment:2 follow-up: Changed 3 months ago by cehoyos

  • Keywords mov regression added
  • Version changed from 4.1.4 to unspecified

Please test current FFmpeg git head, the only version supported on this bug tracker.

comment:3 in reply to: ↑ 2 Changed 3 months ago by en5ca

Replying to cehoyos:

Please test current FFmpeg git head, the only version supported on this bug tracker.

Tested. Not working. Noticed that instead of writing any colorspace metadata, it always writes limited color range tag. I will add more recent log files.

Changed 3 months ago by en5ca

fffmpeg git master log

Changed 3 months ago by en5ca

ffprobe git master log

comment:4 follow-up: Changed 3 months ago by Gyan

Quicktime (MOV) files don't store colour range. See http://ffmpeg.org/pipermail/ffmpeg-user/2018-November/042154.html

comment:5 in reply to: ↑ 4 ; follow-up: Changed 3 months ago by en5ca

Replying to Gyan:

Quicktime (MOV) files don't store colour range. See http://ffmpeg.org/pipermail/ffmpeg-user/2018-November/042154.html

That makes it stranger. But indeed, trying to add 709 colorspace metadata results in a file, which shows up as unknown colorspace and limited/tv color data levels, at least when examined with ffprobe. A certain 3rd party software interpret the file as 601 colorspace, which leads to noticeable color shift.

comment:6 Changed 3 months ago by en5ca

  • Version changed from unspecified to git-master

comment:7 in reply to: ↑ 5 Changed 3 months ago by en5ca

Replying to en5ca:

Replying to Gyan:

Quicktime (MOV) files don't store colour range. See http://ffmpeg.org/pipermail/ffmpeg-user/2018-November/042154.html

That [...]

read through. if i understood correctly that was about adding color range metadata to prores encoded video in mov container, which apparently isnt supported. im trying to add color space/primaries/transfer characteristics, but instead ffmpeg adds tv/mpeg/limited color range and progressive field order metadata tags, and none of the intended color tags. pointing out this problem occurs only with git master/later versions of ffmpeg. and affects at least prores, dnxhd/dnxhr and uncompressed (v210) yuv422 encoding/muxing to mov/quicktime. ffmpeg seems to leave out the color space/trc/prim data, and arbitrarily adds either field order progressive or color range tv, or both, metadata tags. compared with davinci resolve produced files, and it seems to correctly add the space/trc/prim metadatas to mov, and ffprobe also reads them correctly, so the problem probably lies somewhere in muxing the mov with ffmpeg.

Note: See TracTickets for help on using tickets.