我正在使用ffmpeg从视频文件中仅提取音频流:
ffmpeg -i video.mp4 -vn -acodec copy audio.aac
这样会产生干净的音频文件,但没有任何元数据。
要添加元数据,ffmpeg具有命令行选项:
ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.aac
这可以正常运行,但是用ffprobe检查输出文件时,它根本没有元数据标签。
如果将输出容器更改为mp4,则可以设置元数据并将其显示在输出文件中:
ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.mp4
这是有趣的一点;如果我使用Banshee编辑现有.aac文件的元数据,然后使用ffmpeg以相同的方式处理该文件,则原始元数据将成功复制到新的.aac文件中。
ffmpeg -i metadata.aac -vn -acodec copy audio.aac
但是,尝试更改元数据无效:
ffmpeg -i metadata.aac -vn -acodec copy -metadata title="My Title" audio.aac
因此,似乎.aac容器可以容纳元数据,而ffmpeg可以将其从输入复制到输出,但是在使用复制编解码器时不能更改它。
有谁知道一种使ffmpeg更改aac容器中的元数据而无需重新编码的方法吗?
或者,在处理完文件后,是否可以使用另一个通用工具来设置元数据?
非常感谢。克里斯。