[FFmpeg-trac] #10161(undetermined:new): MXF/FFV1 stream copy transmux discards content

FFmpeg trac at avcodec.org
Mon Jan 30 11:42:33 EET 2023


#10161: MXF/FFV1 stream copy transmux discards content
-------------------------------------+-------------------------------------
             Reporter:  Jérôme       |                     Type:  defect
  Martinez                           |
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Using a MXF/FFV1 file e.g. from
 https://www.digitizationguidelines.gov/guidelines/MXF_app_sampleFiles.html#2022
 , a conversion to any format (also again FFV1) is fine (frames are
 demuxed, decoded, encoded, muxed) but a pure demux with stream copy
 silently discards all frames, the output has the FFV1 header but 0 frame.

 Tested with Git 2023-01-29:

 {{{
 PS > .\ffmpeg.exe -i
 RDD48_LakeJulianP1060231_50i_1920_MKV_FFV1_422_8_ag_20220517.mxf
 RDD48_LakeJulianP1060231_50i_1920_MKV_FFV1_422_8_ag_20220517.avi
 ffmpeg version N-109716-g757218564d-20230129 Copyright (c) 2000-2023 the
 FFmpeg developers
   built with gcc 12.2.0 (crosstool-NG 1.25.0.90_cf9beb1)
   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-libxml2
 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp
 --enable-lzma --enable-fontconfig --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 --disable-libfdk-
 aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme
 --enable-libkvazaar --enable-libass --enable-libbluray --enable-libjxl
 --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh
 --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2
 --disable-libmfx --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 --disable-vaapi
 --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-
 libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-
 libxvid --enable-libzimg --enable-libzvbi --extra-
 cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread
 --extra-ldexeflags= --extra-libs=-lgomp --extra-version=20230129
   libavutil      57. 44.100 / 57. 44.100
   libavcodec     59. 59.100 / 59. 59.100
   libavformat    59. 36.100 / 59. 36.100
   libavdevice    59.  8.101 / 59.  8.101
   libavfilter     8. 55.100 /  8. 55.100
   libswscale      6.  8.112 /  6.  8.112
   libswresample   4.  9.100 /  4.  9.100
   libpostproc    56.  7.100 / 56.  7.100
 [mxf @ 00000249c1caea00] could not resolve file descriptor strong ref
     Last message repeated 17 times
 Guessed Channel Layout for Input Stream #0.5 : mono
 Input #0, mxf, from
 'RDD48_LakeJulianP1060231_50i_1920_MKV_FFV1_422_8_ag_20220517.mxf':
   Metadata:
     operational_pattern_ul: 060e2b34.04010101.0d010201.01010900
     uid             : 0c0fd1ba-b4fa-49f2-a488-6a844a00df0d
     product_uid     : b658a3f9-280d-463c-9c12-fd6dac6e1213
     company_name    : Metaglue Corporation
     product_name    : MXFixer File Wrapper
     product_version : V5.2.4(22516)
     product_version_num: 5.2.4.22516.1
     toolkit_version_num: 2.65.4.22516.1
     application_platform: MXFplus(Windows 10 ( build 19044 )  (64-bit))
 (with Metaglue Extensions)(BUF) built May 16 2022 11:47:21
     modification_date: 2022-05-17T19:43:45.204000Z
     generation_uid  : b1297cac-eab2-4c76-a0ed-7efd583a3a6a
     material_package_umid:
 0x060A2B340101010501010D2013000000256C81631F7E4229A6E5AE305A0EB56C
     material_package_name: MXFWrap Clip
     timecode        : 01:00:00:00
   Duration: 00:00:19.96, start: 0.000000, bitrate: 312497 kb/s
   Stream #0:0: Video: ffv1, yuv422p(bottom first), 1920x1080, SAR 1:1 DAR
 16:9, 25 tbr, 25 tbn
     Metadata:
       file_package_umid:
 0x060A2B340101010501010D20130000002E0B39D1937148F884B4BAD10C1E1663
       file_package_name: File Package: SMPTE RPxxx frame wrapping of FFV1
 video essence
       track_name      : V1
       reel_umid       :
 0x060A2B340101010501010D2013000000A7C8CFC27C64497D8FFA2CB623DF3D6F
       timecode        : 01:00:00:00
   Stream #0:1: Data: none
     Metadata:
       file_package_umid:
 0x060A2B340101010501010D20130000002E0B39D1937148F884B4BAD10C1E1663
       file_package_name: File Package: SMPTE RPxxx frame wrapping of FFV1
 video essence
       track_name      : D1
       reel_umid       :
 0x060A2B340101010501010D2013000000A7C8CFC27C64497D8FFA2CB623DF3D6F
       timecode        : 01:00:00:00
       data_type       : vbi_vanc_smpte_436M
   Stream #0:2(eng): Audio: pcm_s24le, 48000 Hz, stereo, s32 (24 bit), 2304
 kb/s
     Metadata:
       file_package_umid:
 0x060A2B340101010501010D20130000002E0B39D1937148F884B4BAD10C1E1663
       file_package_name: File Package: SMPTE RPxxx frame wrapping of FFV1
 video essence
       track_name      : A1
       reel_umid       :
 0x060A2B340101010501010D2013000000A7C8CFC27C64497D8FFA2CB623DF3D6F
       timecode        : 01:00:00:00
   Stream #0:3(spa): Audio: pcm_s24le, 48000 Hz, stereo, s32 (24 bit), 2304
 kb/s
     Metadata:
       file_package_umid:
 0x060A2B340101010501010D20130000002E0B39D1937148F884B4BAD10C1E1663
       file_package_name: File Package: SMPTE RPxxx frame wrapping of FFV1
 video essence
       track_name      : A2
       reel_umid       :
 0x060A2B340101010501010D2013000000A7C8CFC27C64497D8FFA2CB623DF3D6F
       timecode        : 01:00:00:00
   Stream #0:4: Audio: pcm_s24le, 48000 Hz, stereo, s32 (24 bit), 2304 kb/s
     Metadata:
       file_package_umid:
 0x060A2B340101010501010D20130000002E0B39D1937148F884B4BAD10C1E1663
       file_package_name: File Package: SMPTE RPxxx frame wrapping of FFV1
 video essence
       track_name      : A3
       reel_umid       :
 0x060A2B340101010501010D2013000000A7C8CFC27C64497D8FFA2CB623DF3D6F
       timecode        : 01:00:00:00
   Stream #0:5: Audio: pcm_s16le, 48000 Hz, 1 channels, s16, 768 kb/s
     Metadata:
       file_package_umid:
 0x060A2B340101010501010D20130000002E0B39D1937148F884B4BAD10C1E1663
       file_package_name: File Package: SMPTE RPxxx frame wrapping of FFV1
 video essence
       track_name      : A4
       reel_umid       :
 0x060A2B340101010501010D2013000000A7C8CFC27C64497D8FFA2CB623DF3D6F
       timecode        : 01:00:00:00
 Stream mapping:
   Stream #0:0 -> #0:0 (ffv1 (native) -> mpeg4 (native))
   Stream #0:2 -> #0:1 (pcm_s24le (native) -> mp3 (libmp3lame))
 Press [q] to stop, [?] for help
 Output #0, avi, to
 'RDD48_LakeJulianP1060231_50i_1920_MKV_FFV1_422_8_ag_20220517.avi':
   Metadata:
     operational_pattern_ul: 060e2b34.04010101.0d010201.01010900
     uid             : 0c0fd1ba-b4fa-49f2-a488-6a844a00df0d
     product_uid     : b658a3f9-280d-463c-9c12-fd6dac6e1213
     ISMP            : 01:00:00:00
     material_package_name: MXFWrap Clip
     material_package_umid:
 0x060A2B340101010501010D2013000000256C81631F7E4229A6E5AE305A0EB56C
     product_version_num: 5.2.4.22516.1
     toolkit_version_num: 2.65.4.22516.1
     application_platform: MXFplus(Windows 10 ( build 19044 )  (64-bit))
 (with Metaglue Extensions)(BUF) built May 16 2022 11:47:21
     modification_date: 2022-05-17T19:43:45.204000Z
     generation_uid  : b1297cac-eab2-4c76-a0ed-7efd583a3a6a
     ISFT            : Lavf59.36.100
   Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p(tv, progressive),
 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 25 tbn
     Metadata:
       file_package_umid:
 0x060A2B340101010501010D20130000002E0B39D1937148F884B4BAD10C1E1663
       file_package_name: File Package: SMPTE RPxxx frame wrapping of FFV1
 video essence
       track_name      : V1
       reel_umid       :
 0x060A2B340101010501010D2013000000A7C8CFC27C64497D8FFA2CB623DF3D6F
       timecode        : 01:00:00:00
       encoder         : Lavc59.59.100 mpeg4
     Side data:
       cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
   Stream #0:1(eng): Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo,
 s32p
     Metadata:
       file_package_umid:
 0x060A2B340101010501010D20130000002E0B39D1937148F884B4BAD10C1E1663
       file_package_name: File Package: SMPTE RPxxx frame wrapping of FFV1
 video essence
       track_name      : A1
       reel_umid       :
 0x060A2B340101010501010D2013000000A7C8CFC27C64497D8FFA2CB623DF3D6F
       timecode        : 01:00:00:00
       encoder         : Lavc59.59.100 libmp3lame
 frame=  499 fps= 59 q=31.0 Lsize=    5431kB time=00:00:19.94
 bitrate=2230.5kbits/s speed=2.37x
 video:5077kB audio:312kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 0.765648%

 PS > .\ffmpeg.exe -i
 RDD48_LakeJulianP1060231_50i_1920_MKV_FFV1_422_8_ag_20220517.mxf -c copy
 RDD48_LakeJulianP1060231_50i_1920_MKV_FFV1_422_8_ag_20220517_c_copy.avi
 ffmpeg version N-109716-g757218564d-20230129 Copyright (c) 2000-2023 the
 FFmpeg developers
   built with gcc 12.2.0 (crosstool-NG 1.25.0.90_cf9beb1)
   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-libxml2
 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp
 --enable-lzma --enable-fontconfig --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 --disable-libfdk-
 aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme
 --enable-libkvazaar --enable-libass --enable-libbluray --enable-libjxl
 --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh
 --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2
 --disable-libmfx --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 --disable-vaapi
 --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-
 libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-
 libxvid --enable-libzimg --enable-libzvbi --extra-
 cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread
 --extra-ldexeflags= --extra-libs=-lgomp --extra-version=20230129
   libavutil      57. 44.100 / 57. 44.100
   libavcodec     59. 59.100 / 59. 59.100
   libavformat    59. 36.100 / 59. 36.100
   libavdevice    59.  8.101 / 59.  8.101
   libavfilter     8. 55.100 /  8. 55.100
   libswscale      6.  8.112 /  6.  8.112
   libswresample   4.  9.100 /  4.  9.100
   libpostproc    56.  7.100 / 56.  7.100
 [mxf @ 0000028800a7eb00] could not resolve file descriptor strong ref
     Last message repeated 17 times
 Guessed Channel Layout for Input Stream #0.5 : mono
 Input #0, mxf, from
 'RDD48_LakeJulianP1060231_50i_1920_MKV_FFV1_422_8_ag_20220517.mxf':
   Metadata:
     operational_pattern_ul: 060e2b34.04010101.0d010201.01010900
     uid             : 0c0fd1ba-b4fa-49f2-a488-6a844a00df0d
     product_uid     : b658a3f9-280d-463c-9c12-fd6dac6e1213
     company_name    : Metaglue Corporation
     product_name    : MXFixer File Wrapper
     product_version : V5.2.4(22516)
     product_version_num: 5.2.4.22516.1
     toolkit_version_num: 2.65.4.22516.1
     application_platform: MXFplus(Windows 10 ( build 19044 )  (64-bit))
 (with Metaglue Extensions)(BUF) built May 16 2022 11:47:21
     modification_date: 2022-05-17T19:43:45.204000Z
     generation_uid  : b1297cac-eab2-4c76-a0ed-7efd583a3a6a
     material_package_umid:
 0x060A2B340101010501010D2013000000256C81631F7E4229A6E5AE305A0EB56C
     material_package_name: MXFWrap Clip
     timecode        : 01:00:00:00
   Duration: 00:00:19.96, start: 0.000000, bitrate: 312497 kb/s
   Stream #0:0: Video: ffv1, yuv422p(bottom first), 1920x1080, SAR 1:1 DAR
 16:9, 25 tbr, 25 tbn
     Metadata:
       file_package_umid:
 0x060A2B340101010501010D20130000002E0B39D1937148F884B4BAD10C1E1663
       file_package_name: File Package: SMPTE RPxxx frame wrapping of FFV1
 video essence
       track_name      : V1
       reel_umid       :
 0x060A2B340101010501010D2013000000A7C8CFC27C64497D8FFA2CB623DF3D6F
       timecode        : 01:00:00:00
   Stream #0:1: Data: none
     Metadata:
       file_package_umid:
 0x060A2B340101010501010D20130000002E0B39D1937148F884B4BAD10C1E1663
       file_package_name: File Package: SMPTE RPxxx frame wrapping of FFV1
 video essence
       track_name      : D1
       reel_umid       :
 0x060A2B340101010501010D2013000000A7C8CFC27C64497D8FFA2CB623DF3D6F
       timecode        : 01:00:00:00
       data_type       : vbi_vanc_smpte_436M
   Stream #0:2(eng): Audio: pcm_s24le, 48000 Hz, stereo, s32 (24 bit), 2304
 kb/s
     Metadata:
       file_package_umid:
 0x060A2B340101010501010D20130000002E0B39D1937148F884B4BAD10C1E1663
       file_package_name: File Package: SMPTE RPxxx frame wrapping of FFV1
 video essence
       track_name      : A1
       reel_umid       :
 0x060A2B340101010501010D2013000000A7C8CFC27C64497D8FFA2CB623DF3D6F
       timecode        : 01:00:00:00
   Stream #0:3(spa): Audio: pcm_s24le, 48000 Hz, stereo, s32 (24 bit), 2304
 kb/s
     Metadata:
       file_package_umid:
 0x060A2B340101010501010D20130000002E0B39D1937148F884B4BAD10C1E1663
       file_package_name: File Package: SMPTE RPxxx frame wrapping of FFV1
 video essence
       track_name      : A2
       reel_umid       :
 0x060A2B340101010501010D2013000000A7C8CFC27C64497D8FFA2CB623DF3D6F
       timecode        : 01:00:00:00
   Stream #0:4: Audio: pcm_s24le, 48000 Hz, stereo, s32 (24 bit), 2304 kb/s
     Metadata:
       file_package_umid:
 0x060A2B340101010501010D20130000002E0B39D1937148F884B4BAD10C1E1663
       file_package_name: File Package: SMPTE RPxxx frame wrapping of FFV1
 video essence
       track_name      : A3
       reel_umid       :
 0x060A2B340101010501010D2013000000A7C8CFC27C64497D8FFA2CB623DF3D6F
       timecode        : 01:00:00:00
   Stream #0:5: Audio: pcm_s16le, 48000 Hz, 1 channels, s16, 768 kb/s
     Metadata:
       file_package_umid:
 0x060A2B340101010501010D20130000002E0B39D1937148F884B4BAD10C1E1663
       file_package_name: File Package: SMPTE RPxxx frame wrapping of FFV1
 video essence
       track_name      : A4
       reel_umid       :
 0x060A2B340101010501010D2013000000A7C8CFC27C64497D8FFA2CB623DF3D6F
       timecode        : 01:00:00:00
 Output #0, avi, to
 'RDD48_LakeJulianP1060231_50i_1920_MKV_FFV1_422_8_ag_20220517_c_copy.avi':
   Metadata:
     operational_pattern_ul: 060e2b34.04010101.0d010201.01010900
     uid             : 0c0fd1ba-b4fa-49f2-a488-6a844a00df0d
     product_uid     : b658a3f9-280d-463c-9c12-fd6dac6e1213
     ISMP            : 01:00:00:00
     material_package_name: MXFWrap Clip
     material_package_umid:
 0x060A2B340101010501010D2013000000256C81631F7E4229A6E5AE305A0EB56C
     product_version_num: 5.2.4.22516.1
     toolkit_version_num: 2.65.4.22516.1
     application_platform: MXFplus(Windows 10 ( build 19044 )  (64-bit))
 (with Metaglue Extensions)(BUF) built May 16 2022 11:47:21
     modification_date: 2022-05-17T19:43:45.204000Z
     generation_uid  : b1297cac-eab2-4c76-a0ed-7efd583a3a6a
     ISFT            : Lavf59.36.100
   Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv422p(bottom first),
 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 25 tbr, 25 tbn
     Metadata:
       file_package_umid:
 0x060A2B340101010501010D20130000002E0B39D1937148F884B4BAD10C1E1663
       file_package_name: File Package: SMPTE RPxxx frame wrapping of FFV1
 video essence
       track_name      : V1
       reel_umid       :
 0x060A2B340101010501010D2013000000A7C8CFC27C64497D8FFA2CB623DF3D6F
       timecode        : 01:00:00:00
   Stream #0:1(eng): Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz,
 stereo, s32 (24 bit), 2304 kb/s
     Metadata:
       file_package_umid:
 0x060A2B340101010501010D20130000002E0B39D1937148F884B4BAD10C1E1663
       file_package_name: File Package: SMPTE RPxxx frame wrapping of FFV1
 video essence
       track_name      : A1
       reel_umid       :
 0x060A2B340101010501010D2013000000A7C8CFC27C64497D8FFA2CB623DF3D6F
       timecode        : 01:00:00:00
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:2 -> #0:1 (copy)
 Press [q] to stop, [?] for help
 frame=    0 fps=0.0 q=-1.0 Lsize=    5635kB time=00:00:19.92
 bitrate=2317.6kbits/s speed=48.7x
 video:0kB audio:5614kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 0.386781%

 PS > dir RDD48_LakeJulianP1060231_50i_1920_MKV_FFV1_422_8_ag_20220517*


     Répertoire : C:\Users\jerom\Downloads\RDD48_FFV1_MXF


 Mode                 LastWriteTime         Length Name
 ----                 -------------         ------ ----
 -a----        30/01/2023     10:16        5560844
 RDD48_LakeJulianP1060231_50i_1920_MKV_FFV1_422_8_ag_20220517.avi
 -a----        17/05/2022     22:25      779681924
 RDD48_LakeJulianP1060231_50i_1920_MKV_FFV1_422_8_ag_20220517.mxf
 -a----        30/01/2023     10:17         350112
 RDD48_LakeJulianP1060231_50i_1920_MKV_FFV1_422_8_ag_20220517_c_copy.avi
 }}}

 The last file should have a size of 780 MB (copy of the FFV1 frames).

 behavior is a bit weird:
 - using ` -c:a copy` is fine (video frames are are transcoded; audio
 frames are transmuxed)
 - using ` -c:v copy` discards video frames and transcode audio (audio
 transcode is expected)
 - using ` -c copy` discards video frames and transcode audio (audio
 transcode is **not** expected)

 So audio transmux behavior is also impacted, this is not the case with
 e.g. https://samples.ffmpeg.org/MXF/Quantel%20widescreen%20test.mxf (using
 ` -c copy` does transmux for both video and audio)
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/10161>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list