[FFmpeg-trac] #8966(undetermined:new): Preserve Dolby Vision metadata in JPEG2000

FFmpeg trac at avcodec.org
Thu Nov 5 23:47:59 EET 2020


#8966: Preserve Dolby Vision metadata in JPEG2000
-------------------------------------+-------------------------------------
             Reporter:               |                     Type:
  spookybathtub                      |  enhancement
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:  git-
  undetermined                       |  master
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 I tried to remux a JPEG2000 stream with embedded Dolby Vision metadata in
 MXF Op1A container.  The output is a valid J2K but the metadata is lost.
 I have included the result of Dolby's metafier validation tool below.

 Sample clip:
 https://mega.nz/file/015GVDrT#0OR0TAhvHcWUfe2DFjMnY8zMtU_EMrBMSk56Uh89P7o

 {{{
 $ ffmpeg -i S002C003.mxf -c:v copy output.mxf
 ffmpeg version N-99865-ga125e08130 Copyright (c) 2000-2020 the FFmpeg
 developers
   built with Apple clang version 12.0.0 (clang-1200.0.32.21)
   configuration: --enable-nonfree --enable-gpl --enable-libx264 --enable-
 swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-
 libopus --enable-librsvg --enable-libtheora --enable-libopenjpeg --enable-
 libmodplug --enable-libvpx --enable-libsoxr --enable-libspeex --enable-
 libass --enable-libbluray --enable-lzma --enable-gnutls --enable-
 fontconfig --enable-libfreetype --enable-libfribidi --enable-opencl
 --enable-sdl2 --enable-libx265 --enable-libxvid --enable-libfdk-aac
 --extra-ldflags=-L/opt/local/lib --extra-cflags=-I/opt/local/include
   libavutil      56. 60.100 / 56. 60.100
   libavcodec     58.112.101 / 58.112.101
   libavformat    58. 64.100 / 58. 64.100
   libavdevice    58. 11.102 / 58. 11.102
   libavfilter     7. 89.100 /  7. 89.100
   libswscale      5.  8.100 /  5.  8.100
   libswresample   3.  8.100 /  3.  8.100
   libpostproc    55.  8.100 / 55.  8.100
 [mxf @ 0x7f8e9c811c00] wrapping of stream 0 is unknown
 Input #0, mxf, from 'S002C003.mxf':
   Metadata:
     operational_pattern_ul: 060e2b34.04010101.0d010201.01010100
     uid             : d6ab93af-1c74-46bf-96d3-245a7367dcaf
     generation_uid  : 9fc540fb-28bc-4ef5-97b5-c4fdbbf506f1
     company_name    : Colorfront
     product_name    : Transkoder
     product_version : 2020.46529.2.10.32
     product_uid     : 7d836e16-37c7-4c22-b2e0-46a717e84f42
     modification_date: 2020-11-05T20:59:00.000000Z
     application_platform: win32
     material_package_umid:
 0x060A2B340101010501010F20130000001EF41724BD8F4D1EB7B68E145240DC47
     material_package_name: Material Package
   Duration: 00:00:00.38, start: 0.000000, bitrate: 671190 kb/s
     Stream #0:0: Video: jpeg2000, yuv422p12le(tv,
 bt2020nc/bt2020/smpte2084, progressive), 3840x2160, SAR 1:1 DAR 16:9,
 23.98 tbr, 23.98 tbn, 23.98 tbc
     Metadata:
       file_package_umid:
 0x060A2B340101010501010F2013000000F5184258A2A14676A775F4D6700CB01F
       file_package_name: File Package: PROTOTYPE SMPTE ST 422 / ST 2067-5
 frame wrapping of JPEG 2000 codestreams with HDR metadata
       track_name      : PHDR Image Track
     Side data:
       Mastering Display Metadata, has_primaries:1 has_luminance:1
 r(0.7080,0.2920) g(0.1700,0.7970) b(0.1310 0.0460) wp(0.3127, 0.3290)
 min_luminance=0.000100, max_luminance=1000.000000
 Output #0, mxf, to 'output.mxf':
   Metadata:
     operational_pattern_ul: 060e2b34.04010101.0d010201.01010100
     uid             : d6ab93af-1c74-46bf-96d3-245a7367dcaf
     generation_uid  : 9fc540fb-28bc-4ef5-97b5-c4fdbbf506f1
     company_name    : Colorfront
     product_name    : Transkoder
     product_version : 2020.46529.2.10.32
     product_uid     : 7d836e16-37c7-4c22-b2e0-46a717e84f42
     modification_date: 2020-11-05T20:59:00.000000Z
     application_platform: win32
     material_package_umid:
 0x060A2B340101010501010F20130000001EF41724BD8F4D1EB7B68E145240DC47
     material_package_name: Material Package
     encoder         : Lavf58.64.100
     Stream #0:0: Video: jpeg2000, yuv422p12le(tv,
 bt2020nc/bt2020/smpte2084, progressive), 3840x2160 [SAR 1:1 DAR 16:9],
 q=2-31, 23.98 tbr, 23.98 tbn, 23.98 tbc
     Metadata:
       file_package_umid:
 0x060A2B340101010501010F2013000000F5184258A2A14676A775F4D6700CB01F
       file_package_name: File Package: PROTOTYPE SMPTE ST 422 / ST 2067-5
 frame wrapping of JPEG 2000 codestreams with HDR metadata
       track_name      : PHDR Image Track
     Side data:
       Mastering Display Metadata, has_primaries:1 has_luminance:1
 r(0.7080,0.2920) g(0.1700,0.7970) b(0.1310 0.0460) wp(0.3127, 0.3290)
 min_luminance=0.000100, max_luminance=1000.000000
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
 Press [q] to stop, [?] for help
 frame=    9 fps=0.0 q=-1.0 Lsize=   30738kB time=00:00:00.37
 bitrate=670801.3kbits/s speed= 7.4x
 video:30724kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 0.045708%
 }}}

 {{{
 $ metafier --validate S002C003.mxf
 11/05/2020/16:23:07.719653019 metafier: INFO extracting Metadata, this
 might take a while...
 11/05/2020/16:23:07.726957094 extract_metadata: INFO Metadata Extraction
 progress: 100%
 11/05/2020/16:23:07.727231758 metafier: INFO metadata extraction is done
 11/05/2020/16:23:07.735836167 Metadata: INFO Validation Summary:
 =========================
 Metadata version: "2.0.5"
 Level254 CMVersion: 2 1
 Aspect Ratios (Canvas - Image): 1.77778 - 1.77778
 Frame Rate: 23.976fps
 Mastering Monitor: 1000-nit, BT.2020, D65, ST.2084, Full (ID 21): Bit
 Depth: 16bit - Diagonal: 42.00in - Application Type: ALL - Color Info:
 "pq(0.0001,1000) rgb computer bt2020"
 Mastering Monitor Validation Test: PASS
 Target Displays Validation Test: PASS
 Level6 (MaxFALL - MaxCLL): 32.00 - 255.00
 Color Encoding: "u12 422 pq(0,10000) ycbcr_bt2020 video bt2020"
 Color Encoding Validation Test: PASS
 Overlapping Shots Validation Test: PASS
 Gap between Shots Validation Test: PASS
 Negative Shot duration Validation Test: PASS
 Per-Frame Data out-of-range Validation Test: PASS
 Number of Shots: 1
 Frame Range: 0-8
 L2 Trim Count (TargetID, count): (1, 1)
 L1 Metadata Validation Test: PASS
 L2 Metadata Validation Test: PASS
 =========================
 11/05/2020/16:23:07.735989360 metafier: INFO No issues found in the
 Metadata

 $ metafier --validate output.mxf
 KLV format error, zero BER length not allowed.
 Error initializing OP1a header packet.
 11/05/2020/16:23:15.468424019 metafier: INFO extracting Metadata, this
 might take a while...
 11/05/2020/16:23:15.468997729 FormatMXF: ERROR KLV format error, zero BER
 length not allowed.
 11/05/2020/16:23:15.469039473 FormatMXF: ERROR Error initializing OP1a
 header packet.
 11/05/2020/16:23:15.469091205 FormatMXF: ERROR Bad MXF file
 11/05/2020/16:23:15.469681792 FormatMXF: ERROR BER Length decoding error
 11/05/2020/16:23:15.469695405 FormatMXF: ERROR Failed to initialize RIP.
 11/05/2020/16:23:15.469704566 FormatMXF: ERROR File contains no RIP
 11/05/2020/16:23:15.469784860 FormatMXF: ERROR KLV format error, zero BER
 length not allowed.
 11/05/2020/16:23:15.469796837 FormatMXF: ERROR Error initializing OP1a
 header packet.
 11/05/2020/16:23:15.469826632 FormatMXF: ERROR
 TrackFileReader::OpenMXFRead, header init failed
 11/05/2020/16:23:15.472073597 mezzanine: ERROR Unable to open MXF
 'output.mxf' for read
 11/05/2020/16:23:15.472762459 metafier: ERROR Unable to open file (check
 existence and permissions)
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/8966>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list