0

对于 AAC(“libfaac”)音频编码器,如何通过 FFmpeg 的命令将“MPEG 版本”指定为“MPEG-4”或“MPEG-2”?

4

1 回答 1

1

使用 libfaac 时,FFmpeg 将 MPEG 版本硬编码为 MPEG-4。libfaac.c您可以在第 118 行中观察到这一点。

faac_cfg->mpegVersion = MPEG4;

如果您想更改它,您将下载 FFmpeg 源代码,修改此行以使用MPEG2,然后使用适当的配置(包括--enable-libfaac)重新编译 FFmpeg。这可以工作并生成一个可播放的文件,但是您现在显然必须使用比特流过滤器来为 MPEG-4 容器创建一个有效的比特流:

ffmpeg -i in.wav -c:a libfaac -absf aac_adtstoasc out.m4a

如果您直接使用 FAAC API,您当然可以根据需要更改此参数。


理想情况下,应该为 FFmpeg 提交一个补丁,以包含一个允许您手动设置此选项的新选项,但鉴于 MPEG-4 被选为硬编码默认值,我认为没有令人信服的理由来实现这一点。

于 2013-02-28T12:35:34.497 回答