如何使用FFMPEG为MXF格式文件添加自定义元数据
问题原因说明
FFmpeg 可以为MXF文件添加元数据,但你遇到的现象是mxf_opatom复用器的字段映射限制导致的:
MXF是遵循SMPTE标准的广电专业容器格式,所有元数据字段都需要对应标准定义的标签才能被写入文件结构。你用-metadata传入的project、comment、artist属于通用容器的元数据字段,FFmpeg的MXF复用器没有为这些字段做标准标签映射,因此实际写入文件时会被直接丢弃。
你在执行输出中看到的元数据列表,是FFmpeg全局上下文的临时元数据打印,还没有经过复用器的字段过滤,不代表这些内容已经被写入到最终文件里。
可直接使用的解决方案
方案1:使用FFmpeg支持的MXF元数据字段
目前FFmpeg的MXF复用器已支持映射写入的常用字段包括:
material_package_name:你已经验证可用,对应素材包名称project_name:对应项目名称,替代你之前用的project字段creator_name:对应创作者名称,替代你之前用的artist字段description:对应描述信息,替代你之前用的comment字段
修改后的命令示例如下:
ffmpeg -i Test.mp4 -vf scale=1920:1080 -an -metadata project_name="TEST PROJECT" -metadata description="Test Comment" -metadata creator_name="Test" -metadata material_package_name="TEST VID CLIP" -b:v 36M -f mxf_opatom "TEST_VID_CLIP.mxf"
方案2:使用专业MXF工具写入自定义元数据
如果需要写入不在FFmpeg支持列表内的自定义元数据,可以使用BMX开源工具集中的bmxtranswrap工具,该工具对MXF标准的适配更全面,支持自定义元数据字段的写入。
验证方式
修改后重新生成MXF文件,再执行检查命令即可看到对应的元数据字段已经被正常写入:
ffmpeg -i TEST_VID_CLIP.mxf
内容的提问来源于stack exchange,提问作者Zak44
相关产品推荐
相关产品推荐

