FFMPEG拷贝全量元数据失败 mov格式description字段无法写入求助
FFmpeg 全量复制元数据到MOV格式文件解决方案
问题核心原因
- MOV属于QuickTime容器,元数据字段命名规则、存储逻辑和MP4不同,默认不识别
description字段的标准映射 - 你当前使用的
-map_metadata 0:g仅映射了源视频(第一个输入,索引为0)的全局元数据,没有映射你导出的metadata.txt(第二个输入,索引为1)的完整元数据 - MOV默认会过滤非标准元数据字段,需要额外参数开启自定义元数据写入权限
修正步骤
1. 调整元数据映射参数
将-map_metadata 0:g替换为-map_metadata 1,直接映射第二个输入(也就是metadata.txt元数据文件)的全量元数据,优先级高于源视频自带的元数据,避免字段覆盖遗漏。
2. 新增MOV格式专属参数
在-movflags参数后追加+use_metadata_tags,该参数会开启MOV容器的自定义元数据写入能力,让非标准字段(包括description)可以正常写入并被识别。
3. 最终可用命令
导出元数据的命令无需修改,写入元数据的命令调整为:
ffmpeg -i "%%A" -f ffmetadata -i metadata.txt -c copy -map_metadata 1 -movflags +faststart+use_metadata_tags "%output%\%%~nAtag.mov"
手动指定description字段的MOV兼容写法
如果需要单独写入description内容,不需要改字段名,只要加了上述use_metadata_tags参数即可直接生效;如果要兼容所有QuickTime播放器的原生识别,也可以把字段映射为MOV标准的comment字段:
ffmpeg -i "%%A" -c copy -metadata comment="自定义描述内容" -movflags +faststart+use_metadata_tags 输出文件.mov
校验方法
执行完成后可以用以下命令直接输出目标文件的所有元数据,确认字段是否完整:
ffmpeg -i 目标文件.mov -f ffmetadata -
内容的提问来源于stack exchange,提问作者audioguy
相关产品推荐
相关产品推荐

