Opened 9 months ago

Closed 8 months ago

#10865 closed defect (fixed)

xdcam mxf tracks are not identified

Reported by: dave rice Owned by: Marton Balint
Priority: important Component: avformat
Version: 6.1 Keywords: mxf regression
Cc: Marton Balint Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:

Audio and video isn't identified for MXF files transferred off XDCam discs. Mediainfo identifies it correctly as mpeg2 and pcm audio.

Sample https://archive.org/download/c-0001_202402/C0001.MXF

How to reproduce:

% ffmpeg -i /Volumes/LTO9-85/LTO5-TAPES/B00024/SWB00092/data/object/XDCAM8004602012511C8/Clip/C0001.MXF                             
ffmpeg version 6.1.1 Copyright (c) 2000-2023 the FFmpeg developers
  built with Apple clang version 14.0.0 (clang-1400.0.29.202)
  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/6.1.1_3 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libharfbuzz --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopenvino --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon
  libavutil      58. 29.100 / 58. 29.100
  libavcodec     60. 31.102 / 60. 31.102
  libavformat    60. 16.100 / 60. 16.100
  libavdevice    60.  3.100 / 60.  3.100
  libavfilter     9. 12.100 /  9. 12.100
  libswscale      7.  5.100 /  7.  5.100
  libswresample   4. 12.100 /  4. 12.100
  libpostproc    57.  3.100 / 57.  3.100
[mxf @ 0x121e04a60] source track 2: stream 0, no descriptor found
[mxf @ 0x121e04a60] source track 3: stream 1, no descriptor found
[mxf @ 0x121e04a60] source track 4: stream 2, no descriptor found
[mxf @ 0x121e04a60] source track 5: stream 3, no descriptor found
[mxf @ 0x121e04a60] source track 6: stream 4, no descriptor found
[mxf @ 0x121e04a60] source track 7: stream 5, no descriptor found
[mxf @ 0x121e04a60] source track 8: stream 6, no descriptor found
[mxf @ 0x121e04a60] source track 9: stream 7, no descriptor found
[mxf @ 0x121e04a60] source track 10: stream 8, no descriptor found
[mxf @ 0x121e04a60] Could not find codec parameters for stream 0 (Video: none, none): unknown codec
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
[mxf @ 0x121e04a60] Could not find codec parameters for stream 1 (Audio: none, 0 channels): unknown codec
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
[mxf @ 0x121e04a60] Could not find codec parameters for stream 2 (Audio: none, 0 channels): unknown codec
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
[mxf @ 0x121e04a60] Could not find codec parameters for stream 3 (Audio: none, 0 channels): unknown codec
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
[mxf @ 0x121e04a60] Could not find codec parameters for stream 4 (Audio: none, 0 channels): unknown codec
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
[mxf @ 0x121e04a60] Could not find codec parameters for stream 5 (Audio: none, 0 channels): unknown codec
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
[mxf @ 0x121e04a60] Could not find codec parameters for stream 6 (Audio: none, 0 channels): unknown codec
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
[mxf @ 0x121e04a60] Could not find codec parameters for stream 7 (Audio: none, 0 channels): unknown codec
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
[mxf @ 0x121e04a60] Could not find codec parameters for stream 8 (Audio: none, 0 channels): unknown codec
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
Input #0, mxf, from '/Volumes/LTO9-85/LTO5-TAPES/B00024/SWB00092/data/object/XDCAM8004602012511C8/Clip/C0001.MXF':
  Metadata:
    operational_pattern_ul: 060e2b34.04010101.0d010201.01010900
    uid             : e7bf1600-7960-05c1-07ef-080046020130
    generation_uid  : e7bf1600-7960-05c2-07ef-080046020130
    company_name    : SONY
    product_name    : Opt 
    product_version : 1.22
    product_uid     : 060e2b34-0401-0103-0e06-012002030300
    modification_date: 2012-06-01T13:47:57.000000Z
    material_package_umid: 0x060A2B340101010501010D4313000000BA7E17007960058008004602013007EF
    timecode        : 00:58:05;02
  Duration: 00:26:48.04, start: 0.000000, bitrate: 60192 kb/s
  Stream #0:0: Video: none, none, 29.97 fps, 29.97 tbr, 29.97 tbn
  Stream #0:1: Audio: none, 0 channels
  Stream #0:2: Audio: none, 0 channels
  Stream #0:3: Audio: none, 0 channels
  Stream #0:4: Audio: none, 0 channels
  Stream #0:5: Audio: none, 0 channels
  Stream #0:6: Audio: none, 0 channels
  Stream #0:7: Audio: none, 0 channels
  Stream #0:8: Audio: none, 0 channels
At least one output file must be specified

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

Change History (3)

comment:1 by dave rice, 9 months ago

I've found that this is a regression.

In ffmpeg 4.4.4, the streams are identified:

% /opt/homebrew/opt/ffmpeg@4/bin/ffmpeg -i /Volumes/LTO9-85/LTO5-TAPES/B00024/SWB00092/data/object/XDCAM8004602012511C8/Clip/C0001.MXF 
ffmpeg version 4.4.4 Copyright (c) 2000-2023 the FFmpeg developers
  built with Apple clang version 14.0.0 (clang-1400.0.29.202)
  configuration: --prefix='/opt/homebrew/Cellar/ffmpeg@4/4.4.4_4' --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-avresample --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox
  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
Guessed Channel Layout for Input Stream #0.1 : mono
Guessed Channel Layout for Input Stream #0.2 : mono
Guessed Channel Layout for Input Stream #0.3 : mono
Guessed Channel Layout for Input Stream #0.4 : mono
Guessed Channel Layout for Input Stream #0.5 : mono
Guessed Channel Layout for Input Stream #0.6 : mono
Guessed Channel Layout for Input Stream #0.7 : mono
Guessed Channel Layout for Input Stream #0.8 : mono
Input #0, mxf, from '/Volumes/LTO9-85/LTO5-TAPES/B00024/SWB00092/data/object/XDCAM8004602012511C8/Clip/C0001.MXF':
  Metadata:
    operational_pattern_ul: 060e2b34.04010101.0d010201.01010900
    uid             : e7bf1600-7960-05c1-07ef-080046020130
    generation_uid  : e7bf1600-7960-05c2-07ef-080046020130
    company_name    : SONY
    product_name    : Opt 
    product_version : 1.22
    product_uid     : 060e2b34-0401-0103-0e06-012002030300
    modification_date: 2012-06-01T13:47:57.000000Z
    material_package_umid: 0x060A2B340101010501010D4313000000BA7E17007960058008004602013007EF
    timecode        : 00:58:05;02
  Duration: 00:26:48.04, start: 0.000000, bitrate: 60192 kb/s
  Stream #0:0: Video: mpeg2video (4:2:2), yuv422p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 50000 kb/s, 29.97 fps, 29.97 tbr, 29.97 tbn, 59.94 tbc
    Metadata:
      file_package_umid: 0x060A2B340101010501010D431300000098B716007960058008004602013007EF
    Side data:
      cpb: bitrate max/min/avg: 50000000/0/0 buffer size: 17825792 vbv_delay: N/A
  Stream #0:1: Audio: pcm_s24le, 48000 Hz, mono, s32 (24 bit), 1152 kb/s
    Metadata:
      file_package_umid: 0x060A2B340101010501010D431300000098B716007960058008004602013007EF
  Stream #0:2: Audio: pcm_s24le, 48000 Hz, mono, s32 (24 bit), 1152 kb/s
    Metadata:
      file_package_umid: 0x060A2B340101010501010D431300000098B716007960058008004602013007EF
  Stream #0:3: Audio: pcm_s24le, 48000 Hz, mono, s32 (24 bit), 1152 kb/s
    Metadata:
      file_package_umid: 0x060A2B340101010501010D431300000098B716007960058008004602013007EF
  Stream #0:4: Audio: pcm_s24le, 48000 Hz, mono, s32 (24 bit), 1152 kb/s
    Metadata:
      file_package_umid: 0x060A2B340101010501010D431300000098B716007960058008004602013007EF
  Stream #0:5: Audio: pcm_s24le, 48000 Hz, mono, s32 (24 bit), 1152 kb/s
    Metadata:
      file_package_umid: 0x060A2B340101010501010D431300000098B716007960058008004602013007EF
  Stream #0:6: Audio: pcm_s24le, 48000 Hz, mono, s32 (24 bit), 1152 kb/s
    Metadata:
      file_package_umid: 0x060A2B340101010501010D431300000098B716007960058008004602013007EF
  Stream #0:7: Audio: pcm_s24le, 48000 Hz, mono, s32 (24 bit), 1152 kb/s
    Metadata:
      file_package_umid: 0x060A2B340101010501010D431300000098B716007960058008004602013007EF
  Stream #0:8: Audio: pcm_s24le, 48000 Hz, mono, s32 (24 bit), 1152 kb/s
    Metadata:
      file_package_umid: 0x060A2B340101010501010D431300000098B716007960058008004602013007EF
At least one output file must be specified
Last edited 9 months ago by dave rice (previous) (diff)

comment:2 by Marton Balint, 9 months ago

Cc: Marton Balint added
Component: undeterminedavformat
Keywords: regression added
Owner: set to Marton Balint
Priority: normalimportant
Status: newopen

A regression since 7b4bdcd68e1e0abfab21a8be81789531d649c1ff.

Nevetheless, the file is likely broken (has non-unique metadata set UIDs), and it only worked previously because the commit changed the order of finding a metadata set based on an instance UID.

Still, regressions are bad, so I sent a patch series which should fix this:
https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=10800

Can you please test? I am not sure if I managed to download the file without corruption, because the archive.org source is quite slow here...

comment:3 by Marton Balint, 8 months ago

Resolution: fixed
Status: openclosed

Fixed in 68f2b32ef2b29aa95488531b007adde92ca82165.

The file is likely valid after all, see reasoning in the commit message.

Note: See TracTickets for help on using tickets.