Opened 5 years ago
Closed 3 years ago
#5671 closed defect (fixed)
FFmpeg unable to decode PCM in MXF
| Reported by: | steved | Owned by: | |
|---|---|---|---|
| Priority: | important | Component: | avformat |
| Version: | git-master | Keywords: | mxf regression |
| Cc: | michael, lvml@5t9.de | Blocked By: | |
| Blocking: | Reproduced by developer: | yes | |
| Analyzed by developer: | no |
Description
Summary of the bug:
FFmpeg is unable to decode PCM which is wrapped in an MXF file. The MXF file is Avid compatible, but was apparently not created with Avid.
Sample can be found here:
http://dl.flavoursys.com/samples/ffmpeg/TVOKids_6.mxf
How to reproduce:
% $ ffmpeg -i TVOKids_6.mxf -loglevel debug -y out.wav [17:02:14]
ffmpeg version N-80780-gd693392 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.3.1 (Ubuntu 5.3.1-14ubuntu2.1) 20160413
configuration: --extra-libs=-ldl --enable-gpl --enable-nonfree --enable-version3 --enable-libfdk-aac --enable-libx264 --enable-libfreetype
libavutil 55. 27.100 / 55. 27.100
libavcodec 57. 48.101 / 57. 48.101
libavformat 57. 40.101 / 57. 40.101
libavdevice 57. 0.102 / 57. 0.102
libavfilter 6. 46.102 / 6. 46.102
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 1.100 / 2. 1.100
libpostproc 54. 0.100 / 54. 0.100
Splitting the commandline.
Reading option '-i' ... matched as input file with argument 'TVOKids_6.mxf'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option 'out.wav' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument debug.
Applying option y (overwrite output files) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input file TVOKids_6.mxf.
Successfully parsed a group of options.
Opening an input file: TVOKids_6.mxf.
[file @ 0x362acc0] Setting default whitelist 'file,crypto'
[mxf @ 0x362a380] Format mxf probed with size=2048 and score=100
[mxf @ 0x362a380] Dark key 06.0e.2b.34.02.53.01.01.0d.01.01.01.01.01.23.00
[mxf @ 0x362a380] Dark key 06.0e.2b.34.01.01.01.02.03.01.02.10.01.00.00.00
Last message repeated 2 times
[mxf @ 0x362a380] Dark key 06.0e.2b.34.02.05.01.01.0d.01.02.01.01.11.01.00
[mxf @ 0x362a380] none: Universal Label: 00000000.0000.0000.00000000.00000000
[mxf @ 0x362a380] Before avformat_find_stream_info() pos: 32744 bytes read:66172 seeks:5 nb_streams:1
[mxf @ 0x362a380] IndexSID 1 segment at 0 missing EditUnitByteCount and IndexEntryArray
[mxf @ 0x362a380] After avformat_find_stream_info() pos: 32744 bytes read:66172 seeks:5 frames:0
Guessed Channel Layout for Input Stream #0.0 : mono
Input #0, mxf, from 'TVOKids_6.mxf':
Metadata:
uid : 27023931-e9a3-4549-946d-a5aea01cec3e
generation_uid : bd18e86b-ee7a-4f8f-8ceb-7ab5ac3f175f
company_name : Matrox Electronic
product_name : DSX
product_version : 4.0
product_uid : 060e2b34-0401-0109-0e0e-010101000001
modification_date: 2016-05-31 17:30:17
material_package_umid: 0x060A2B340101010501010D20130000004F5296D2A16741ED9D11A972EA7C9C30
material_package_name: 0004PE
timecode : 11:22:33;00
Duration: 00:00:18.95, start: 0.000000, bitrate: 1166 kb/s
Stream #0:0, 0, 1/48000: Audio: pcm_s24le, 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s
Metadata:
file_package_umid: 0x060A2B340101010501010D20130000000B45AF7186674D708C09A0FCF3D5B364
Successfully opened the file.
Parsing a group of options: output file out.wav.
Successfully parsed a group of options.
Opening an output file: out.wav.
[file @ 0x3631540] Setting default whitelist 'file,crypto'
Successfully opened the file.
detected 16 logical cores
[graph 0 input from stream 0:0 @ 0x3643980] Setting 'time_base' to value '1/48000'
[graph 0 input from stream 0:0 @ 0x3643980] Setting 'sample_rate' to value '48000'
[graph 0 input from stream 0:0 @ 0x3643980] Setting 'sample_fmt' to value 's32'
[graph 0 input from stream 0:0 @ 0x3643980] Setting 'channel_layout' to value '0x4'
[graph 0 input from stream 0:0 @ 0x3643980] tb:1/48000 samplefmt:s32 samplerate:48000 chlayout:0x4
[audio format for output stream 0:0 @ 0x3644560] Setting 'sample_fmts' to value 's16'
[audio format for output stream 0:0 @ 0x3644560] auto-inserting filter 'auto-inserted resampler 0' between the filter 'Parsed_anull_0' and the filter 'audio format for output stream 0:0'
[AVFilterGraph @ 0x3631b80] query_formats: 4 queried, 6 merged, 3 already done, 0 delayed
[auto-inserted resampler 0 @ 0x3645d40] [SWR @ 0x3646120] Using fltp internally between filters
[auto-inserted resampler 0 @ 0x3645d40] ch:1 chl:mono fmt:s32 r:48000Hz -> ch:1 chl:mono fmt:s16 r:48000Hz
[wav @ 0x362fa00] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
Output #0, wav, to 'out.wav':
Metadata:
uid : 27023931-e9a3-4549-946d-a5aea01cec3e
generation_uid : bd18e86b-ee7a-4f8f-8ceb-7ab5ac3f175f
company_name : Matrox Electronic
product_name : DSX
product_version : 4.0
product_uid : 060e2b34-0401-0109-0e0e-010101000001
modification_date: 2016-05-31 17:30:17
material_package_umid: 0x060A2B340101010501010D20130000004F5296D2A16741ED9D11A972EA7C9C30
material_package_name: 0004PE
ISMP : 11:22:33;00
ISFT : Lavf57.40.101
Stream #0:0, 0, 1/48000: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, mono, s16 (24 bit), 768 kb/s
Metadata:
file_package_umid: 0x060A2B340101010501010D20130000000B45AF7186674D708C09A0FCF3D5B364
encoder : Lavc57.48.101 pcm_s16le
Stream mapping:
Stream #0:0 -> #0:0 (pcm_s24le (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[mxf @ 0x362a380] IndexSID 1 segment at 0 missing EditUnitByteCount and IndexEntryArray
TVOKids_6.mxf: Invalid data found when processing input
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
Last message repeated 1 times
[output stream 0:0 @ 0x36444c0] EOF on sink link output stream 0:0:default.
No more output streams to write to, finishing.
size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Input file #0 (TVOKids_6.mxf):
Input stream #0:0 (audio): 0 packets read (0 bytes); 0 frames decoded (0 samples);
Total: 0 packets (0 bytes) demuxed
Output file #0 (out.wav):
Output stream #0:0 (audio): 0 frames encoded (0 samples); 0 packets muxed (0 bytes);
Total: 0 packets (0 bytes) muxed
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)
0 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0x3631640] Statistics: 4 seeks, 3 writeouts
[AVIOContext @ 0x3633020] Statistics: 66172 bytes read, 5 seeks
Attachments (1)
Change History (8)
comment:1 Changed 5 years ago by cehoyos
- Component changed from undetermined to avformat
- Keywords mxf regression added
- Priority changed from normal to important
- Reproduced by developer set
- Status changed from new to open
- Summary changed from FFMpeg unable to decode PCM in MXF wrapper to FFmpeg unable to decode PCM in MXF
- Version changed from unspecified to git-master
Changed 5 years ago by cehoyos
comment:2 Changed 5 years ago by michael
- Cc michael added
comment:3 Changed 5 years ago by lvml
The same bug applies to MXF files from other sources, e.g. the soundtrack of "Meridian", a professionally made 4k HDR video sample that Netflix recently published under a Creative Commons license for the purpose of video encoder testing.
The Meridian MXF files are available e.g. from the xiph.org site at https://media.xiph.org/video/derf/
When trying to probe https://media.xiph.org/video/derf/meridian/MERIDIAN_SHR_C_EN-XX_US-NR_51_LTRT_UHD_20160909_OV/MERIDIAN_SHR_C_EN-XX_US-NR_51_LTRT_UHD_20160909_OV_01_EN_20_B.mxf with ffprobe compiled from the current git master, the output looks like this:
[mxf @ 0x227ae20] OPAtom misinterpreted as OP1a? KLV for edit unit 0 extending into next edit unit is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[mxf @ 0x227ae20] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. (ffmpeg-devel@ffmpeg.org)
Input #0, mxf, from 'MERIDIAN_SHR_C_EN-XX_US-NR_51_LTRT_UHD_20160909_OV_01_EN_20_B.mxf':
Metadata:
application_platform: Microsoft Windows 7 Professional Service Pack 1 (Build 7601)
uid : cdb57bb1-4f06-4c77-64e4-c0293f2c7163
generation_uid : 2d654592-04ae-4cf4-35ab-69707dc0de3a
company_name : Colorfront
product_name : Transkoder
product_uid : 3a4fe380-0d01-11e4-869f-3cd92b5c1dfc
product_version : 2.7.3.20150121
modification_date: 2016-09-09 11:29:38
material_package_umid: 0x060A2B340101010501010F20130000002C3E49A0BD1548ACD65D70EA10FAEB6B
timecode : 00:00:17;12
Duration: 00:11:58.92, start: 0.000000, bitrate: 2304 kb/s
Stream #0:0: Audio: pcm_s24le, 48000 Hz, 2 channels, s32 (24 bit), 2304 kb/s
Metadata:
file_package_umid: 0x060A2B340101010501010F2013000000AE2179BC93E24600C47112668D9E21FB
When trying to transcode the PCM audio track in the same MXF file with "ffmpeg" from current git master, the output looks like this:
./ffmpeg -i MERIDIAN_SHR_C_EN-XX_US-NR_51_LTRT_UHD_20160909_OV_01_EN_20_B.mxf test.wav
ffmpeg version N-81773-g69449da Copyright (c) 2000-2016 the FFmpeg developers
...
[mxf @ 0x20f1660] OPAtom misinterpreted as OP1a? KLV for edit unit 0 extending into next edit unit is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[mxf @ 0x20f1660] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. (ffmpeg-devel@ffmpeg.org)
Guessed Channel Layout for Input Stream #0.0 : stereo
Input #0, mxf, from 'MERIDIAN_SHR_C_EN-XX_US-NR_51_LTRT_UHD_20160909_OV_01_EN_20_B.mxf':
Metadata:
application_platform: Microsoft Windows 7 Professional Service Pack 1 (Build 7601)
uid : cdb57bb1-4f06-4c77-64e4-c0293f2c7163
generation_uid : 2d654592-04ae-4cf4-35ab-69707dc0de3a
company_name : Colorfront
product_name : Transkoder
product_uid : 3a4fe380-0d01-11e4-869f-3cd92b5c1dfc
product_version : 2.7.3.20150121
modification_date: 2016-09-09 11:29:38
material_package_umid: 0x060A2B340101010501010F20130000002C3E49A0BD1548ACD65D70EA10FAEB6B
timecode : 00:00:17;12
Duration: 00:11:58.92, start: 0.000000, bitrate: 2304 kb/s
Stream #0:0: Audio: pcm_s24le, 48000 Hz, stereo, s32 (24 bit), 2304 kb/s
Metadata:
file_package_umid: 0x060A2B340101010501010F2013000000AE2179BC93E24600C47112668D9E21FB
Output #0, wav, to 'test.wav':
Metadata:
application_platform: Microsoft Windows 7 Professional Service Pack 1 (Build 7601)
uid : cdb57bb1-4f06-4c77-64e4-c0293f2c7163
generation_uid : 2d654592-04ae-4cf4-35ab-69707dc0de3a
company_name : Colorfront
product_name : Transkoder
product_uid : 3a4fe380-0d01-11e4-869f-3cd92b5c1dfc
product_version : 2.7.3.20150121
modification_date: 2016-09-09 11:29:38
material_package_umid: 0x060A2B340101010501010F20130000002C3E49A0BD1548ACD65D70EA10FAEB6B
ISMP : 00:00:17;12
ISFT : Lavf57.44.100
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, stereo, s16, 1536 kb/s
Metadata:
file_package_umid: 0x060A2B340101010501010F2013000000AE2179BC93E24600C47112668D9E21FB
encoder : Lavc57.58.100 pcm_s16le
Stream mapping:
Stream #0:0 -> #0:0 (pcm_s24le (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)
Whatever options I tried, the result is always "an empty output file".
comment:4 Changed 5 years ago by lvml
- Cc lvml@5t9.de added
comment:5 Changed 5 years ago by cehoyos
I opened ticket #5866 for the regression decoding the xiph sample.
comment:6 Changed 3 years ago by cus
comment:7 Changed 3 years ago by cus
- Resolution set to fixed
- Status changed from open to closed



Regression since a61fada3805122acf8f362d563c9cbae00c2c8cf