#10001: mxf muxer writes the wrong bit depth and uses the CDCI essence
descriptor
UL instead of the RGBA essence descriptor UL for Full Range RGB48 MJPEG2000
-------------------------------------+-------------------------------------
Reporter: Francesco | Owner: (none)
Bucciantini |
Type: defect | Status: new
Priority: normal | Component: avformat
Version: git-master | Resolution:
Keywords: mxf | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Comment (by Francesco Bucciantini):
Hi Tomas,
thank you for the heads up, but unfortunately the issue is still there. :(
I downloaded and compiled the latest master yesterday, namely
N-117613-g72e5381123-20241020.
I then tried to read the CPL of an IMF package and remux the MJPEG2000 in
it to an mxf container with the following command:
{{{
ffmpeg.exe -f imf -i
"G:\mg0\DigitalSupplyChain\WatchfolderMMA\Wacthfolder_UHD\IMF_to_UHD_HLG_AVISYNTH\In\Itendswithus_2024_Th_IT_10977168
\CPL_SPE_Itendswithus_11402860_FE_RLI-10977168_CRID-101164127.xml" -map
0:0? -map 0:1? -map 0:2? -map 0:3? -map 0:4? -map 0:5? -map 0:6? -map 0:7?
-map 0:8? -c:v copy -c:a copy -f mxf -y "A:\MEDIA\temp\Test.mxf"
pause
}}}
and unfortunately the error is still there.
In the logs we can see that FFMpeg detects that the source video is indeed
RGB48, but it's still writing the CDCI essence descriptor UL instead of
the RGBA essence descriptor UL.
This is the full log in FFMpeg:
{{{
>ffmpeg.exe -f imf -i
"G:\mg0\DigitalSupplyChain\WatchfolderMMA\Wacthfolder_UHD\IMF_to_UHD_HLG_AVISYNTH\In\Itendswithus_2024_Th_IT_10977168
\CPL_SPE_Itendswithus_11402860_FE_RLI-10977168_CRID-101164127.xml" -map
0:0? -map 0:1? -map 0:2? -map 0:3? -map 0:4? -map 0:5? -map 0:6? -map 0:7?
-map 0:8? -c:v copy -c:a copy -f mxf -y "A:\MEDIA\temp\Test.mxf"
ffmpeg version N-117613-g72e5381123-20241020 Copyright (c) 2000-2024 the
FFmpeg developers
built with gcc 14.2.0 (crosstool-NG 1.26.0.120_4d36f27)
configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static
--pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64
--target-os=mingw32 --enable-gpl --enable-version3 --disable-debug
--disable-w32threads --enable-pthreads --enable-iconv --enable-zlib
--enable-libfreetype --enable-libfribidi --enable-gmp --enable-libxml2
--enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis
--enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb
--disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-
avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2
--enable-libdvdread --enable-libdvdnav --disable-libfdk-aac --enable-
ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-
libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray
--enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist
--enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp
--enable-libzmq --enable-lv2 --enable-libvpl --enable-openal --enable-
libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264
--enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-
librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-
libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d
--disable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan
--enable-libshaderc --enable-libplacebo --enable-libvvenc --enable-libx264
--enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg
--enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags=
--extra-libs=-lgomp --extra-ldflags=-pthread --extra-ldexeflags=
--cc=x86_64-w64-mingw32-gcc --cxx=x86_64-w64-mingw32-g++
--ar=x86_64-w64-mingw32-gcc-ar --ranlib=x86_64-w64-mingw32-gcc-ranlib
--nm=x86_64-w64-mingw32-gcc-nm --extra-version=20241020
libavutil 59. 44.100 / 59. 44.100
libavcodec 61. 22.100 / 61. 22.100
libavformat 61. 9.100 / 61. 9.100
libavdevice 61. 4.100 / 61. 4.100
libavfilter 10. 6.100 / 10. 6.100
libswscale 8. 6.100 / 8. 6.100
libswresample 5. 4.100 / 5. 4.100
libpostproc 58. 4.100 / 58. 4.100
[imf @ 000002596f44db80] IMF CPL ContentTitle: IT ENDS WITH US
[imf @ 000002596f44db80] IMF CPL Id: 05fec57c-e3e9-4eb4-9254-14389e742045
[imf @ 000002596f44db80] Setting timecode to IMF CPL timecode 00:59:30:00
[imf @ 000002596f44db80] Opening
'G:\mg0\DigitalSupplyChain\WatchfolderMMA\Wacthfolder_UHD\IMF_to_UHD_HLG_AVISYNTH\In\Itendswithus_2024_Th_IT_10977168/ASSETMAP.xml'
for reading
Input #0, imf, from
'G:\mg0\DigitalSupplyChain\WatchfolderMMA\Wacthfolder_UHD\IMF_to_UHD_HLG_AVISYNTH\In\Itendswithus_2024_Th_IT_10977168
\CPL_SPE_Itendswithus_11402860_FE_RLI-10977168_CRID-101164127.xml':
Metadata:
timecode : 00:59:30:00
Duration: 02:11:27.71, start: 0.000000, bitrate: 0 kb/s
Stream #0:0: Video: jpeg2000, rgb48le(12 bpc, bt2020nc/bt2020/smpte2084,
progressive), 3840x2160, 23.98 fps, 23.98 tbr, 23.98 tbn
Metadata:
file_package_umid:
0x060A2B340101010501010F2013000000DF59946E76E94090AF53B803A3FE86E1
file_package_name: File Package: SMPTE ST 422 / ST 2067-5 frame
wrapping of JPEG 2000 codestreams
track_name : Image Track
Side data:
Mastering Display Metadata, has_primaries:1 has_luminance:1
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.000100, max_luminance=1000.000000
Stream #0:1(ita): Audio: pcm_s24le, 48000 Hz, downmix, s32 (24 bit),
2304 kb/s
Metadata:
file_package_umid:
0x060A2B340101010501010F20130000003B151C4B2EF94FC5BD5A3EDC867D9BCE
file_package_name: File Package: SMPTE 382M clip wrapping of wave
audio
track_name : Sound Track
Stream #0:2(eng): Audio: pcm_s24le, 48000 Hz, downmix, s32 (24 bit),
2304 kb/s
Metadata:
file_package_umid:
0x060A2B340101010501010F20130000001FEFC2C8E7DC4A37BC520E37DC233D8A
file_package_name: File Package: SMPTE 382M clip wrapping of wave
audio
track_name : Sound Track
Stream #0:3(ita): Audio: pcm_s24le, 48000 Hz, 5.1(side), s32 (24 bit),
6912 kb/s
Metadata:
file_package_umid:
0x060A2B340101010501010F2013000000A52279CEB6474274A6CD03553A658D20
file_package_name: File Package: SMPTE 382M clip wrapping of wave
audio
track_name : Sound Track
Stream #0:4(eng): Audio: pcm_s24le, 48000 Hz, 5.1(side), s32 (24 bit),
6912 kb/s
Metadata:
file_package_umid:
0x060A2B340101010501010F2013000000514D9AA46E1D464FA2889FE79AEBA705
file_package_name: File Package: SMPTE 382M clip wrapping of wave
audio
track_name : Sound Track
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Stream #0:2 -> #0:2 (copy)
Stream #0:3 -> #0:3 (copy)
Stream #0:4 -> #0:4 (copy)
Output #0, mxf, to 'A:\MEDIA\temp\Test.mxf':
Metadata:
timecode : 00:59:30:00
encoder : Lavf61.9.100
Stream #0:0: Video: jpeg2000, rgb48le(12 bpc, bt2020nc/bt2020/smpte2084,
progressive), 3840x2160, q=2-31, 23.98 fps, 23.98 tbr, 23.98 tbn
Metadata:
file_package_umid:
0x060A2B340101010501010F2013000000DF59946E76E94090AF53B803A3FE86E1
file_package_name: File Package: SMPTE ST 422 / ST 2067-5 frame
wrapping of JPEG 2000 codestreams
track_name : Image Track
Side data:
Mastering Display Metadata, has_primaries:1 has_luminance:1
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.000100, max_luminance=1000.000000
Stream #0:1(ita): Audio: pcm_s24le, 48000 Hz, downmix, s32 (24 bit),
2304 kb/s (default)
Metadata:
file_package_umid:
0x060A2B340101010501010F20130000003B151C4B2EF94FC5BD5A3EDC867D9BCE
file_package_name: File Package: SMPTE 382M clip wrapping of wave
audio
track_name : Sound Track
Stream #0:2(eng): Audio: pcm_s24le, 48000 Hz, downmix, s32 (24 bit),
2304 kb/s
Metadata:
file_package_umid:
0x060A2B340101010501010F20130000001FEFC2C8E7DC4A37BC520E37DC233D8A
file_package_name: File Package: SMPTE 382M clip wrapping of wave
audio
track_name : Sound Track
Stream #0:3(ita): Audio: pcm_s24le, 48000 Hz, 5.1(side), s32 (24 bit),
6912 kb/s
Metadata:
file_package_umid:
0x060A2B340101010501010F2013000000A52279CEB6474274A6CD03553A658D20
file_package_name: File Package: SMPTE 382M clip wrapping of wave
audio
track_name : Sound Track
Stream #0:4(eng): Audio: pcm_s24le, 48000 Hz, 5.1(side), s32 (24 bit),
6912 kb/s
Metadata:
file_package_umid:
0x060A2B340101010501010F2013000000514D9AA46E1D464FA2889FE79AEBA705
file_package_name: File Package: SMPTE 382M clip wrapping of wave
audio
track_name : Sound Track
Press [q] to stop, [?] for help
[mxf @ 0000025971540900] Incoherence about components image number.
frame= 866 fps= 76 q=-1.0 size= 732928KiB time=00:00:36.16
bitrate=166043.9kbits/s speed=3.19x
[q] command received. Exiting.
[out#0/mxf @ 000002596f4227c0] video:702725KiB audio:82586KiB
subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead:
0.219279%
frame= 880 fps= 73 q=-1.0 Lsize= 787034KiB time=00:00:36.68
bitrate=175773.7kbits/s speed=3.06x
>pause
Press any key to continue . . .
}}}
and this is the result as we can see it from Mediainfo:
{{{
General
Complete name : A:\MEDIA\temp\Test.mxf
Format : MXF
Format version : 1.3
Format profile : OP-1a
Format settings : Closed / Complete
File size : 769 MiB
Duration : 36 s 703 ms
Overall bit rate : 176 Mb/s
Frame rate : 23.976 FPS
Package name : File Package: SMPTE ST 422 / ST 2067-5 frame wrapping of
JPEG 2000 codestreams
Encoded date : 0-00-00 00:00:00.000
Writing application : FFmpeg OP1a Muxer 61.9.100.0.0
Writing library : Lavf (mingw32) 61.9.100.0.0
Video
ID : 2
Format : JPEG 2000
Format profile : IMFS4k@ML6SL4
HDR format : SMPTE ST 2086, HDR10 compatible
Format settings, wrapping mode : Frame
Codec ID : 0D010301020C0100-0401020203010100
Duration : 36 s 703 ms
Bit rate : 157 Mb/s
Width : 3 840 pixels
Height : 2 160 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:4:4
Bit depth : 12 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.791
Stream size : 688 MiB (90%)
Color primaries : BT.2020
Transfer characteristics : PQ
Matrix coefficients : BT.2020 non-constant
Mastering display color primaries : Display P3
Mastering display luminance : min: 0.0001 cd/m2, max: 1000 cd/m2
BitDepth_Container : 16
Audio #1
ID : 3
Format : PCM
Format settings : Little
Format settings, wrapping mode : Frame (AES)
Codec ID : 0D01030102060300
Duration : 36 s 703 ms
Bit rate mode : Constant
Bit rate : 2 304 kb/s
Channel(s) : 2 channels
Sampling rate : 48.0 kHz
Frame rate : 23.976 FPS (2002 SPF)
Bit depth : 24 bits
Stream size : 10.1 MiB (1%)
Locked : Yes
Audio #2
ID : 4
Format : PCM
Format settings : Little
Format settings, wrapping mode : Frame (AES)
Codec ID : 0D01030102060300
Duration : 36 s 703 ms
Bit rate mode : Constant
Bit rate : 2 304 kb/s
Channel(s) : 2 channels
Sampling rate : 48.0 kHz
Frame rate : 23.976 FPS (2002 SPF)
Bit depth : 24 bits
Stream size : 10.1 MiB (1%)
Locked : Yes
Audio #3
ID : 5
Format : PCM
Format settings : Little
Format settings, wrapping mode : Frame (AES)
Codec ID : 0D01030102060300
Duration : 36 s 703 ms
Bit rate mode : Constant
Bit rate : 6 912 kb/s
Channel(s) : 6 channels
Sampling rate : 48.0 kHz
Frame rate : 23.976 FPS (2002 SPF)
Bit depth : 24 bits
Stream size : 30.2 MiB (4%)
Locked : Yes
Audio #4
ID : 6
Format : PCM
Format settings : Little
Format settings, wrapping mode : Frame (AES)
Codec ID : 0D01030102060300
Duration : 36 s 703 ms
Bit rate mode : Constant
Bit rate : 6 912 kb/s
Channel(s) : 6 channels
Sampling rate : 48.0 kHz
Frame rate : 23.976 FPS (2002 SPF)
Bit depth : 24 bits
Stream size : 30.2 MiB (4%)
Locked : Yes
Other #1
ID : 1-Material
Type : Time code
Format : MXF TC
Frame rate : 23.976 (24000/1001) FPS
Time code of first frame : 00:59:30:00
Time code of last frame : 01:00:06:15
Time code settings : Material Package
Time code, stripped : Yes
Other #2
ID : 1-Source
Type : Time code
Format : MXF TC
Frame rate : 23.976 (24000/1001) FPS
Time code of first frame : 00:59:30:00
Time code of last frame : 01:00:06:15
Time code settings : Source Package
Time code, stripped : Yes
Other #3
Type : Time code
Format : SMPTE TC
Muxing mode : SDTI
Frame rate : 23.976 (24000/1001) FPS
Time code of first frame : 00:59:30:00
}}}
as you can see, Mediainfo still shows YUV 4:4:4 12bit which is wrong but
it's not Mediainfo at fault here, as Jerome said, it's the FFMpeg mxf
muxer writing the wrong info in the container.
If we perform the Mediainfo of the source, in fact, we can see that RGB is
correctly reported:
{{{
General
Complete name :
G:\mg0\DigitalSupplyChain\WatchfolderMMA\Wacthfolder_UHD\IMF_to_UHD_HLG_AVISYNTH\In\Itendswithus_2024_Th_IT_10977168
\CPL_SPE_Itendswithus_11402860_FE_RLI-10977168_CRID-101164127.xml
Format : IMF CPL
File size : 555 GiB
Duration : 2 h 11 min
Overall bit rate : 604 Mb/s
Frame rate : 23.976 FPS
Video
ID : 2-2
Format : JPEG 2000
Format profile : IMFS4k@ML6SL4
HDR format : SMPTE ST 2086, HDR10 compatible
Muxing mode : MXF
Codec ID :
0D010301020C0600-0401020203010313
Duration : 2 h 11 min
Bit rate : 586 Mb/s
Width : 3 840 pixels
Height : 2 160 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 (24000/1001) FPS
Color space : RGB
Bit depth : 12 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 2.944
Stream size : 538 GiB (97%)
Title : Image Track
Color range : Full
Color primaries : BT.2020
Transfer characteristics : PQ
Matrix coefficients : BT.2020 non-constant
Mastering display color primaries : Display P3
Mastering display luminance : min: 0.0001 cd/m2, max: 1000
cd/m2
Source :
SPE_Itendswithus_11402860_FE_IT_3840x2160_HDR_CompID-101164105.mxf
Audio #1
ID : 3-2
Format : PCM
Format settings : Little
Format settings, wrapping mode : Clip (BWF)
Muxing mode : MXF
Codec ID : 0D01030102060200
Duration : 2 h 11 min
Bit rate mode : Constant
Bit rate : 2 304 kb/s
Channel(s) : 2 channels
Channel layout : Lt Rt
Sampling rate : 48.0 kHz
Bit depth : 24 bits
Stream size : 2.12 GiB (0%)
Title : Sound Track
Language : Italian
Locked : No
MCA Title : MCA Title
MCA Title Version : MCA Title Version
MCA Audio Content Kind : MCA Audio Content Kind
MCA Audio Element Kind : MCA Audio Element Kind
Source :
SPE_Itendswithus_11402860_FE_IT_AudioOnly_CompID-101164104.mxf
Audio #2
ID : 4-2
Format : PCM
Format settings : Little
Format settings, wrapping mode : Clip (BWF)
Muxing mode : MXF
Codec ID : 0D01030102060200
Duration : 2 h 11 min
Bit rate mode : Constant
Bit rate : 2 304 kb/s
Channel(s) : 2 channels
Channel layout : Lt Rt
Sampling rate : 48.0 kHz
Bit depth : 24 bits
Stream size : 2.12 GiB (0%)
Title : Sound Track
Language : English
Locked : No
MCA Title : MCA Title
MCA Title Version : MCA Title Version
MCA Audio Content Kind : MCA Audio Content Kind
MCA Audio Element Kind : MCA Audio Element Kind
Source :
SPE_Itendswithus_11402860_FE_EN_AudioOnly_CompID-101164103.mxf
Audio #3
ID : 5-2
Format : PCM
Format settings : Little
Format settings, wrapping mode : Clip (BWF)
Muxing mode : MXF
Codec ID : 0D01030102060200
Duration : 2 h 11 min
Bit rate mode : Constant
Bit rate : 6 912 kb/s
Channel(s) : 6 channels
Channel layout : L R C LFE Ls Rs
Sampling rate : 48.0 kHz
Bit depth : 24 bits
Stream size : 6.35 GiB (1%)
Title : Sound Track
Language : Italian
Locked : No
MCA Title : MCA Title
MCA Title Version : MCA Title Version
MCA Audio Content Kind : MCA Audio Content Kind
MCA Audio Element Kind : MCA Audio Element Kind
Source :
SPE_Itendswithus_11402860_FE_IT_AudioOnly_CompID-101164102.mxf
Audio #4
ID : 6-2
Format : PCM
Format settings : Little
Format settings, wrapping mode : Clip (BWF)
Muxing mode : MXF
Codec ID : 0D01030102060200
Duration : 2 h 11 min
Bit rate mode : Constant
Bit rate : 6 912 kb/s
Channel(s) : 6 channels
Channel layout : L R C LFE Ls Rs
Sampling rate : 48.0 kHz
Bit depth : 24 bits
Stream size : 6.35 GiB (1%)
Title : Sound Track
Language : English
Locked : No
MCA Title : MCA Title
MCA Title Version : MCA Title Version
MCA Audio Content Kind : MCA Audio Content Kind
MCA Audio Element Kind : MCA Audio Element Kind
Source :
SPE_Itendswithus_11402860_FE_EN_AudioOnly_CompID-101164101.mxf
Other
ID : 1
Type : Time code
Format : CPL TC
Frame rate : 24 FPS
Time code of first frame : 00:59:30:00
Time code, stripped : Yes
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/10001#comment:13>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
_______________________________________________
FFmpeg-trac mailing list
FFmpeg-trac@avcodec.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-trac
To unsubscribe, visit link above, or email
ffmpeg-trac-requ...@ffmpeg.org with subject "unsubscribe".