Chr*_* C. 17 metadata 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 容器中的元数据的方法?
或者,在处理文件后,我可以使用另一个通用工具来设置元数据吗?
非常感谢。克里斯。
Chr*_* C. 14
目标是在不重新编码的情况下从视频文件生成纯音频文件,并引入媒体播放器可识别的元数据。环境是 Debian GNU/Linux。
我要感谢@bootload 让我走上正确的道路来寻找答案。
ffmpeg 似乎不支持向 .AAC 输出文件添加元数据标签,但是,这里有两种可能的解决方法。
id3v2 -t "My Title" audio.aac
Run Code Online (Sandbox Code Playgroud)
ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.m4a
Run Code Online (Sandbox Code Playgroud)
将生成 Nautilus 识别的纯音频文件,ffmpeg 可以安全地将元数据添加到容器中。
| 归档时间: |
|
| 查看次数: |
38024 次 |
| 最近记录: |