Opened 3 months ago

Last modified 7 weeks ago

#6693 new defect

MXF (AVC-I or DNXH) file created by ffmpeg could not be recognized by Davinci Resolve 14

Reported by: dkt Owned by:
Priority: minor Component: avformat
Version: git-master Keywords: mxf
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:
FFmpeg produce AVC-Intra MXF that could not be recognized in Davinci Resolve 14.
The file produced by ffmbc could be recognized in Resolve 14.

How to reproduce:
ffmpeg -i P1160144.MOV -vb 100M -vcodec libx264 -an -pix_fmt yuv422p10le -x264-params avcintra-class=100 -intra avc-intra-ffmpeg.mxf

ffmbc -i P1160144.MOV -vb 100M -vcodec libx264 -an -pix_fmt yuv422p10le -target avcintra100 -intra avc-intra-ffmbc.mxf

Note it is the same case for DNXHD MXF.

ffmpeg version N-87359-g67da268 Copyright (c) 2000-2017 the FFmpeg developers

built with clang version 3.9.1 (tags/RELEASE_391/final)

Change History (5)

comment:1 Changed 3 months ago by cehoyos

  • Component changed from ffmpeg to avformat
  • Keywords mxf added
  • Priority changed from normal to minor
  • Version changed from unspecified to git-master

Feel free to find out what the issue is and explain it here, do not post code here or on the development mailing list that was written for ffmbc!

comment:2 follow-up: Changed 7 weeks ago by chrisj

Using MXFDump, I validated an MXF file created with ffmpeg and it reports footer partition is not defined at offset 0x1200, a file created with ffmbc does not fail for this validation.

D:\mxflib>MXFDump.exe --mxf-validate avc-i_1080i_2997_ffmpeg_an.mxf
MXFDump : KLV validation - passed.
MXFDump : local set validation - passed.
MXFDump : Warning : FooterPartition? not defined - expected 0xd8e000, (following Body key at offset 0x1200).
MXFDump : MXF validation - passed.
MXFDump : Encountered 1 warnings.

avc-i_1080i_2997_ffmpeg_an.mxf:

[ K = Body ( 0000000000001200 )
06.0e.2b.34.02.05.01.01.0d.01.02.01.01.03.04.00, L = 104 (68), LL = 1 ]

Major Version = 0001
Minor Version = 0002

KAGSize = 00000200

ThisPartition? = 0000000000001200

PreviousPartition? = 0000000000000000

FooterPartition? = 0000000000000000

avci_1080i_2997-ffmbc_an.mxf:

[ K = Body ( 0000000000001200 )
06.0e.2b.34.02.05.01.01.0d.01.02.01.01.03.04.00, L = 104 (68), LL = 4 ]

Major Version = 0001
Minor Version = 0002

KAGSize = 00000200

ThisPartition? = 0000000000001200

PreviousPartition? = 0000000000000000

FooterPartition? = 0000000000d8e000

comment:3 in reply to: ↑ 2 ; follow-up: Changed 7 weeks ago by cehoyos

Replying to chrisj:

Using MXFDump, I validated an MXF file created with ffmpeg and it reports footer partition is not defined at offset 0x1200, a file created with ffmbc does not fail for this validation.

Can you confirm that this is the reason Davinci Resolve fails to open the file created with FFmpeg?

comment:4 in reply to: ↑ 3 ; follow-up: Changed 7 weeks ago by chrisj

Replying to cehoyos:

Can you confirm that this is the reason Davinci Resolve fails to open the file created with FFmpeg?

I tried to get clarification, but no luck so far, a user suggested to use bmxlib to wrap MXF instead of FFmpeg.

I also noticed in the Davinci error logs, the application was erroring on CDCIEssenceDescriptor, VerticalSubsampling? which is missing from the FFmpeg MXF file, so that could be the true issue. That metadata is present in MXF files exported by FCPX & Adobe Media Encoder which import into Davinci.

comment:5 in reply to: ↑ 4 Changed 7 weeks ago by cehoyos

Replying to chrisj:

Replying to cehoyos:

Can you confirm that this is the reason Davinci Resolve fails to open the file created with FFmpeg?

I tried to get clarification

This ticket is about an incompatibility with Davinci Resolve. You claim that the reason for this incompatibility is a missing footer partition (you would have opened a new ticket if you just wanted to report that a validation tool reports a missing footer partition in mxf files created with FFmpeg). To verify, you could use a hex editor to edit an mxf file working with Davinci Resolve so that it reports the same footer partition issue with the validation tool and test if it still works with Davinci Resolve.

Note: See TracTickets for help on using tickets.