hi, This patch enables ffmpeg to mux mxf files with OP-Atom structure (SMPTE 390M). opatom files have the same metadata as regular mxf files, but the essence data is stored in a different way. They can only have 1 stream and essence data is stored continuously in a single klv packet (clip wrapped), as opposed to each frame in a separate klv packet (frame wrapped). The essence data must also be stored in a single body partition and an index segment must be in the footer partition. I've implemented the muxer similar way that the mxf_d10 was implemented, with a new format called "mxf_opatom".
With this patch ffmpeg is able to generate dnxhd/dv mxf files that are compatible with avid media composer and can be placed in /Avid MediaFiless/MXF/1 folder and be found via its media tool, (though the files won't contain any useful metadata at the moment). This is the same as libmxf's writeavidmxf example workflow. I haven't figured out how to generate avid compatible h264 and mpeg2 files yet, but the generated files are demuxable by ffmpeg. Audio also doesn't work at moment because mxf_write_header current doesn't allow the first stream to be audio. example usage: # DNXHD ffmpeg -f lavfi -i "testsrc=size=1920x1080:rate=23.97" -frames:v 100 -f mxf_opatom -vcodec dnxhd -pix_fmt yuv422p -vb 36M dnx.mxf # DV ffmpeg -f lavfi -i "testsrc=size=720x480:rate=29.97" -frames:v 100 -f mxf_opatom -vcodec dvvideo -pix_fmt yuv411p dv.mxf # Mpeg2 ffmpeg -f lavfi -i "testsrc=size=720x480:rate=29.97" -frames:v 100 -f mxf_opatom -vcodec mpeg2video -q:v 1 -qmin 1 -intra -pix_fmt yuv420p mpeg.mxf # H264 AVC intra 100 I think... ffmpeg -f lavfi -i "testsrc=size=1920x1080:rate=25" -frames:v 100 -s 1920x1080 -f mxf_opatom -vcodec libx264 -intra -vb 100M -pix_fmt yuv422p h264.mxf I'm not entirely sure if all the essence container uls are correct as I'm just using the ones from the existing muxer. They might need to be clipwrapped versions or something else but I haven't looked into it yet. Mark Reid (1): libavformat/mxfenc.c: added mxf opatom muxer libavformat/allformats.c | 1 + libavformat/mxfenc.c | 139 ++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 127 insertions(+), 13 deletions(-) -- 2.2.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel