![将 ffmpeg 输出为特定格式](https://linux22.com/image/1375471/%E5%B0%86%20ffmpeg%20%E8%BE%93%E5%87%BA%E4%B8%BA%E7%89%B9%E5%AE%9A%E6%A0%BC%E5%BC%8F.png)
根据 ffprobe,我有一个具有以下格式的媒体文件:
Metadata:
major_brand : M4A
minor_version : 0
compatible_brands: M4A mp42isom
creation_time : 2013-03-21 07:05:30
Duration: 00:00:00.42, start: 0.000000, bitrate: 118 kb/s
Stream #0:0(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 100 kb/s (default)
Metadata:
creation_time : 2013-03-21 07:05:30
handler_name : Core Media Audio
ffmpeg 是否能够输出这种格式?
答案1
您可以使用如下命令,利用这些参数对 AAC 流进行编码:
ffmpeg -i in.wav -map 0:a -acodec libfdk_aac -ar 44100 -ac 2 -ab 100k out.m4a
任何受支持的输入格式都可以代替wav
。
如果你的 ffmpeg 没有配置,libfdk_aac
你可以使用-acodec libfaac
或-acodec aac -strict experimental
。请参阅 ffmpeg 的AAC 编码指南了解有关不同 AAC 编码器的更多详细信息。
容器将包含主要品牌M4A
,但不包含 minor_version 和compatible_brands 的确切值。如果您需要这些值,可以使用以下方法更改它们mp4盒。例如,这将把主要品牌设置为M4A
次要版本 0,并iso2
从兼容品牌列表中删除(由 ffmpeg 添加):
mp4box -brand "M4A :0" -rb iso2 out.m4a