[FFmpeg-trac] #10451(undetermined:new): Reduced luminance and banding artefacts converting DCP JPEG2000 to ProResHQ
FFmpeg
trac at avcodec.org
Fri Jul 7 20:16:13 EEST 2023
#10451: Reduced luminance and banding artefacts converting DCP JPEG2000 to ProResHQ
-------------------------------------+-------------------------------------
Reporter: | Type: defect
overlookmotel |
Status: new | Priority: normal
Component: | Version:
undetermined | unspecified
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
I am trying to convert the video MXF of a DCP (Digital Cinema Package) to
ProResHQ. DCPs' MXFs are encoded as JPEG2000 in XYZ colour space, and my
intent is to produce a ProResHQ file in Rec709 colour space.
The conversion works, but the output is incorrect in 2 respects:
1. Luminance is reduced.
2. In tones close to black, red, blue and green depart from each other and
banding artefacts appear in dark areas (dark green blocky splodges).
I am using the latest static build `ffmpeg-111332-g9ff834c2a0` from
https://evermeet.cx/ffmpeg/ on Mac OS Intel.
{{{
% ffmpeg -i input.mxf -c:v prores -profile:v 3 -pix_fmt yuv422p10 -an
output.mov
}}}
Log:
{{{
ffmpeg started on 2023-07-07 at 18:07:47
Report written to "ffmpeg-20230707-180747.log"
Log level: 48
Command line:
/ffmpeg/evermeet/ffmpeg -i "/colour tests/input.mxf" -c:v prores
-profile:v 3 -pix_fmt yuv422p10 -an -report "/colour tests/output.mov"
ffmpeg version N-111332-g9ff834c2a0-tessus https://evermeet.cx/ffmpeg/
Copyright (c) 2000-2023 the FFmpeg developers
built with Apple clang version 11.0.0 (clang-1100.0.33.17)
configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-
version=tessus --enable-avisynth --enable-fontconfig --enable-gpl
--enable-libaom --enable-libass --enable-libbluray --enable-libdav1d
--enable-libfreetype --enable-libgsm --enable-libmodplug --enable-
libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-
libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-
libopus --enable-librubberband --enable-libshine --enable-libsnappy
--enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame
--enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-
libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-
libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq
--enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-
ffplay
libavutil 58. 13.101 / 58. 13.101
libavcodec 60. 22.100 / 60. 22.100
libavformat 60. 10.100 / 60. 10.100
libavdevice 60. 2.101 / 60. 2.101
libavfilter 9. 8.102 / 9. 8.102
libswscale 7. 3.100 / 7. 3.100
libswresample 4. 11.100 / 4. 11.100
libpostproc 57. 2.100 / 57. 2.100
Splitting the commandline.
Reading option '-i' ... matched as input url with argument '/colour
tests/input.mxf'.
Reading option '-c:v' ... matched as option 'c' (codec name) with argument
'prores'.
Reading option '-profile:v' ... matched as option 'profile' (set profile)
with argument '3'.
Reading option '-pix_fmt' ... matched as option 'pix_fmt' (set pixel
format) with argument 'yuv422p10'.
Reading option '-an' ... matched as option 'an' (disable audio) with
argument '1'.
Reading option '-report' ... matched as option 'report' (generate a
report) with argument '1'.
Reading option '/colour tests/output.mov' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option report (generate a report) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input url /colour tests/input.mxf.
Successfully parsed a group of options.
Opening an input file: /colour tests/input.mxf.
[AVFormatContext @ 0x7f9c11700440] Opening '/colour tests/input.mxf' for
reading
[file @ 0x7f9c11700900] Setting default whitelist 'file,crypto,data'
[mxf @ 0x7f9c11700440] Format mxf probed with size=2048 and score=100
[mxf @ 0x7f9c11700440] "OPAtom" with 2 ECs - assuming OP1a
[mxf @ 0x7f9c11700440] Dark key
06.0e.2b.34.02.53.01.01.0d.01.01.01.01.01.5a.00
[mxf @ 0x7f9c11700440] Dark key
06.0e.2b.34.01.01.01.02.03.01.02.10.01.00.00.00
[mxf @ 0x7f9c11700440] jpeg2000: Universal Label:
060e2b34.0401.0109.04010202.03010103
[mxf @ 0x7f9c11700440] Before avformat_find_stream_info() pos: 16384 bytes
read:66180 seeks:5 nb_streams:1
[mxf @ 0x7f9c11700440] All info found
[mxf @ 0x7f9c11700440] After avformat_find_stream_info() pos: 131131 bytes
read:180927 seeks:5 frames:1
Input #0, mxf, from '/colour tests/input.mxf':
Metadata:
operational_pattern_ul: 060e2b34.04010101.0d010201.10000000
uid : d3425999-446c-4b7e-aad2-16241381926f
generation_uid : 8f940296-8fd8-4fc0-8c42-e8a8b1b6c3f0
company_name : libdcp
product_name : libdcp
product_version_num: 0.0.0.0.0
product_version : 1.6.15
product_uid : 43059a1d-0432-4101-b83f-736815acf31d
modification_date: 2021-09-12T23:15:37.000000Z
toolkit_version_num: 0.1.0.27240.1
application_platform: linux
material_package_umid:
0x060A2B340101010501010F2013000000E842DC9189ED41F08337AD2BD43AC6D1
material_package_name: AS-DCP Material Package
timecode : 00:00:00:00
Duration: 00:00:01.00, start: 0.000000, bitrate: 22167 kb/s
Stream #0:0, 1, 1/24: Video: jpeg2000 (JPEG 2000 digital cinema 2K),
xyz12le(progressive), 1998x1080, SAR 1:1 DAR 37:20, 24 tbr, 24 tbn
Metadata:
file_package_umid:
0x060A2B340101010501010F20130000000404C2539D1F4686B35FF25C8F4AF63B
file_package_name: File Package: SMPTE 429-4 frame wrapping of JPEG
2000 codestreams
track_name : Picture Track
Successfully opened the file.
Parsing a group of options: output url /colour tests/output.mov.
Applying option c:v (codec name) with argument prores.
Applying option profile:v (set profile) with argument 3.
Applying option pix_fmt (set pixel format) with argument yuv422p10.
Applying option an (disable audio) with argument 1.
Successfully parsed a group of options.
Opening an output file: /colour tests/output.mov.
[out#0/mov @ 0x7f9c11511c40] No explicit maps, mapping streams
automatically...
[vost#0:0/prores @ 0x7f9c11512bc0] Created video stream from input stream
0:0
detected 16 logical cores
[file @ 0x7f9c1151d700] Setting default whitelist 'file,crypto,data'
Successfully opened the file.
Stream mapping:
Stream #0:0 -> #0:0 (jpeg2000 (native) -> prores (native))
Press [q] to stop, [?] for help
[vost#0:0/prores @ 0x7f9c11512bc0] cur_dts is invalid [init:0 i_done:0
finish:0] (this is harmless if it occurs once at the start per stream)
[vost#0:0/prores @ 0x7f9c11512bc0] cur_dts is invalid [init:0 i_done:0
finish:0] (this is harmless if it occurs once at the start per stream)
[vost#0:0/prores @ 0x7f9c11512bc0] cur_dts is invalid [init:0 i_done:0
finish:0] (this is harmless if it occurs once at the start per stream)
[vost#0:0/prores @ 0x7f9c11512bc0] cur_dts is invalid [init:0 i_done:0
finish:0] (this is harmless if it occurs once at the start per stream)
[vost#0:0/prores @ 0x7f9c11512bc0] cur_dts is invalid [init:0 i_done:0
finish:0] (this is harmless if it occurs once at the start per stream)
[vost#0:0/prores @ 0x7f9c11512bc0] cur_dts is invalid [init:0 i_done:0
finish:0] (this is harmless if it occurs once at the start per stream)
[vost#0:0/prores @ 0x7f9c11512bc0] cur_dts is invalid [init:0 i_done:0
finish:0] (this is harmless if it occurs once at the start per stream)
[vost#0:0/prores @ 0x7f9c11512bc0] cur_dts is invalid [init:0 i_done:0
finish:0] (this is harmless if it occurs once at the start per stream)
[vost#0:0/prores @ 0x7f9c11512bc0] cur_dts is invalid [init:0 i_done:0
finish:0] (this is harmless if it occurs once at the start per stream)
[vost#0:0/prores @ 0x7f9c11512bc0] cur_dts is invalid [init:0 i_done:0
finish:0] (this is harmless if it occurs once at the start per stream)
[vost#0:0/prores @ 0x7f9c11512bc0] cur_dts is invalid [init:0 i_done:0
finish:0] (this is harmless if it occurs once at the start per stream)
[vost#0:0/prores @ 0x7f9c11512bc0] cur_dts is invalid [init:0 i_done:0
finish:0] (this is harmless if it occurs once at the start per stream)
[vost#0:0/prores @ 0x7f9c11512bc0] cur_dts is invalid [init:0 i_done:0
finish:0] (this is harmless if it occurs once at the start per stream)
[vost#0:0/prores @ 0x7f9c11512bc0] cur_dts is invalid [init:0 i_done:0
finish:0] (this is harmless if it occurs once at the start per stream)
[vost#0:0/prores @ 0x7f9c11512bc0] cur_dts is invalid [init:0 i_done:0
finish:0] (this is harmless if it occurs once at the start per stream)
[vost#0:0/prores @ 0x7f9c11512bc0] cur_dts is invalid [init:0 i_done:0
finish:0] (this is harmless if it occurs once at the start per stream)
[jpeg2000 @ 0x7f9c11514b80] Progression order CPRL
[jpeg2000 @ 0x7f9c11515400] Progression order CPRL
[jpeg2000 @ 0x7f9c11515c80] Progression order CPRL
[jpeg2000 @ 0x7f9c115164c0] Progression order CPRL
[jpeg2000 @ 0x7f9c11516d40] Progression order CPRL
[jpeg2000 @ 0x7f9c115175c0] Progression order CPRL
[jpeg2000 @ 0x7f9c11517e40] Progression order CPRL
[jpeg2000 @ 0x7f9c11518680] Progression order CPRL
[jpeg2000 @ 0x7f9c11518f00] Progression order CPRL
[jpeg2000 @ 0x7f9c11519780] Progression order CPRL
[jpeg2000 @ 0x7f9c1151a000] Progression order CPRL
[jpeg2000 @ 0x7f9c1151a840] Progression order CPRL
[jpeg2000 @ 0x7f9c1151b0c0] Progression order CPRL
[jpeg2000 @ 0x7f9c1151b940] Progression order CPRL
[jpeg2000 @ 0x7f9c1151c1c0] Progression order CPRL
[jpeg2000 @ 0x7f9c1151ca00] Progression order CPRL
[graph 0 input from stream 0:0 @ 0x7f9be33016c0] Setting 'video_size' to
value '1998x1080'
[graph 0 input from stream 0:0 @ 0x7f9be33016c0] Setting 'pix_fmt' to
value '99'
[graph 0 input from stream 0:0 @ 0x7f9be33016c0] Setting 'time_base' to
value '1/24'
[graph 0 input from stream 0:0 @ 0x7f9be33016c0] Setting 'pixel_aspect' to
value '1/1'
[graph 0 input from stream 0:0 @ 0x7f9be33016c0] Setting 'frame_rate' to
value '24/1'
[graph 0 input from stream 0:0 @ 0x7f9be33016c0] w:1998 h:1080
pixfmt:xyz12le tb:1/24 fr:24/1 sar:1/1
[format @ 0x7f9be3301c00] Setting 'pix_fmts' to value 'yuv422p10le'
[auto_scale_0 @ 0x7f9be3302240] w:iw h:ih flags:'' interl:0
[format @ 0x7f9be3301c00] auto-inserting filter 'auto_scale_0' between the
filter 'Parsed_null_0' and the filter 'format'
[AVFilterGraph @ 0x7f9be3150ec0] query_formats: 4 queried, 2 merged, 1
already done, 0 delayed
[auto_scale_0 @ 0x7f9be3302240] w:1998 h:1080 fmt:xyz12le sar:1/1 ->
w:1998 h:1080 fmt:yuv422p10le sar:1/1 flags:0x00000004
Output #0, mov, to '/colour tests/output.mov':
Metadata:
operational_pattern_ul: 060e2b34.04010101.0d010201.10000000
uid : d3425999-446c-4b7e-aad2-16241381926f
generation_uid : 8f940296-8fd8-4fc0-8c42-e8a8b1b6c3f0
timecode : 00:00:00:00
material_package_name: AS-DCP Material Package
product_version_num: 0.0.0.0.0
material_package_umid:
0x060A2B340101010501010F2013000000E842DC9189ED41F08337AD2BD43AC6D1
product_uid : 43059a1d-0432-4101-b83f-736815acf31d
modification_date: 2021-09-12T23:15:37.000000Z
toolkit_version_num: 0.1.0.27240.1
application_platform: linux
encoder : Lavf60.10.100
Stream #0:0, 0, 1/12288: Video: prores (HQ) (apch / 0x68637061),
yuv422p10le(tv, progressive), 1998x1080 [SAR 1:1 DAR 37:20], q=2-31, 200
kb/s, 24 fps, 12288 tbn
Metadata:
file_package_umid:
0x060A2B340101010501010F20130000000404C2539D1F4686B35FF25C8F4AF63B
file_package_name: File Package: SMPTE 429-4 frame wrapping of JPEG
2000 codestreams
track_name : Picture Track
encoder : Lavc60.22.100 prores
frame= 0 fps=0.0 q=0.0 size= 0kB time=-577014:32:22.77 bitrate=
-0.0kbits/s speed=N/A
[jpeg2000 @ 0x7f9c11514b80] Progression order CPRL
[prores @ 0x7f9c115239c0] use progressive encoding
[jpeg2000 @ 0x7f9c11515400] Progression order CPRL
[prores @ 0x7f9c11524380] use progressive encoding
[jpeg2000 @ 0x7f9c11515c80] Progression order CPRL
[prores @ 0x7f9c11524d40] use progressive encoding
[jpeg2000 @ 0x7f9c115164c0] Progression order CPRL
[prores @ 0x7f9c11525700] use progressive encoding
[jpeg2000 @ 0x7f9c11516d40] Progression order CPRL
[prores @ 0x7f9c115260c0] use progressive encoding
[jpeg2000 @ 0x7f9c115175c0] Progression order CPRL
[prores @ 0x7f9c11526a80] use progressive encoding
frame= 4 fps=0.0 q=-0.0 size= 768kB time=00:00:00.16
bitrate=37750.6kbits/s speed=0.329x
[in#0/mxf @ 0x7f9c11700300] EOF while reading input
[in#0/mxf @ 0x7f9c11700300] Terminating demuxer thread
[jpeg2000 @ 0x7f9c11517e40] Progression order CPRL
[prores @ 0x7f9c11527440] use progressive encoding
[jpeg2000 @ 0x7f9c11518680] Progression order CPRL
[prores @ 0x7f9c11527e00] use progressive encoding
[vist#0:0/jpeg2000 @ 0x7f9c11511e00] Decoder thread received EOF packet
[prores @ 0x7f9c115287c0] use progressive encoding
[vist#0:0/jpeg2000 @ 0x7f9c11511e00] Decoder returned EOF, finishing
[vist#0:0/jpeg2000 @ 0x7f9c11511e00] Terminating decoder thread
[prores @ 0x7f9c11524380] use progressive encoding
[prores @ 0x7f9c11526a80] use progressive encoding
frame= 8 fps=7.4 q=-0.0 size= 1792kB time=00:00:00.33
bitrate=44041.2kbits/s speed=0.308x
[prores @ 0x7f9c11525700] use progressive encoding
[prores @ 0x7f9c11527e00] use progressive encoding
[prores @ 0x7f9c11524d40] use progressive encoding
[prores @ 0x7f9c115260c0] use progressive encoding
[out_0_0 @ 0x7f9be3301b40] EOF on sink link out_0_0:default.
[prores @ 0x7f9c115239c0] use progressive encoding
[prores @ 0x7f9c11527440] use progressive encoding
No more output streams to write to, finishing.
[prores @ 0x7f9c1152cc00] use progressive encoding
[prores @ 0x7f9c1152a500] use progressive encoding
[prores @ 0x7f9c1152c240] use progressive encoding
[prores @ 0x7f9c11529180] use progressive encoding
[prores @ 0x7f9c1152b880] use progressive encoding
[prores @ 0x7f9c1152aec0] use progressive encoding
[prores @ 0x7f9c11529b40] use progressive encoding
[out#0/mov @ 0x7f9c11511c40] All streams finished
[out#0/mov @ 0x7f9c11511c40] Terminating muxer thread
[AVIOContext @ 0x7f9c1151d880] Statistics: 6463176 bytes written, 2 seeks,
28 writeouts
[out#0/mov @ 0x7f9c11511c40] Output file #0 (/colour tests/output.mov):
[out#0/mov @ 0x7f9c11511c40] Output stream #0:0 (video): 24 frames
encoded; 24 packets muxed (6461784 bytes);
[out#0/mov @ 0x7f9c11511c40] Total: 24 packets (6461784 bytes) muxed
[out#0/mov @ 0x7f9c11511c40] video:6310kB audio:0kB subtitle:0kB other
streams:0kB global headers:0kB muxing overhead: 0.021480%
frame= 24 fps= 21 q=-0.0 Lsize= 6312kB time=00:00:00.95
bitrate=53953.5kbits/s speed=0.835x
[in#0/mxf @ 0x7f9c11700300] Input file #0 (/colour tests/input.mxf):
[in#0/mxf @ 0x7f9c11700300] Input stream #0:0 (video): 24 packets read
(2753448 bytes); 24 frames decoded; 0 decode errors;
[in#0/mxf @ 0x7f9c11700300] Total: 24 packets (2753448 bytes) demuxed
[AVIOContext @ 0x7f9c11700b00] Statistics: 2820700 bytes read, 5 seeks
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/10451>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list