将 ffmpeg 输出为特定格式

将 ffmpeg 输出为特定格式

根据 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

相关内容