小编Chr*_* C.的帖子

如何使用 ffmpeg 将元数据添加到 AAC 文件而无需重新编码?

我正在使用 ffmpeg 从视频文件中提取音频流:

ffmpeg -i video.mp4 -vn -acodec copy audio.aac
Run Code Online (Sandbox Code Playgroud)

这会产生一个干净的音频文件,但没有任何元数据。

要添加元数据,ffmpeg 有一个命令行选项:

ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.aac
Run Code Online (Sandbox Code Playgroud)

这运行没有错误,但是当使用 ffprobe 检查输出文件时,它根本没有元数据标签。

如果将输出容器更改为 mp4,则可以设置元数据并出现在输出文件中:

ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.mp4
Run Code Online (Sandbox Code Playgroud)

这是有趣的一点;如果我使用 Banshee 编辑现有 .aac 文件的元数据,然后使用 ffmpeg 以相同的方式处理文件,原始元数据将成功复制到新的 .aac 文件。

ffmpeg -i metadata.aac -vn -acodec copy audio.aac
Run Code Online (Sandbox Code Playgroud)

但是,尝试更改元数据无效:

ffmpeg -i metadata.aac -vn -acodec copy -metadata title="My Title" audio.aac
Run Code Online (Sandbox Code Playgroud)

因此,似乎 .aac 容器可以保存元数据,而 ffmpeg 可以将其从输入复制到输出,但在使用复制编解码器时无法更改它。

有没有人知道一种让 ffmpeg 在不重新编码的情况下更改 aac 容器中的元数据的方法?

或者,在处理文件后,我可以使用另一个通用工具来设置元数据吗?

非常感谢。克里斯。

metadata ffmpeg aac

17
推荐指数
1
解决办法
4万
查看次数

标签 统计

aac ×1

ffmpeg ×1

metadata ×1