对于 AAC(“libfaac”)音频编码器,如何通过 FFmpeg 的命令将“MPEG 版本”指定为“MPEG-4”或“MPEG-2”?
最佳答案
使用 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 被选为硬编码默认值,我认为没有令人信服的理由来实现这一点。
关于video - FFmpeg 的 AAC ("libfaac") 编解码器选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15133393/