2013-02-28 398 views
0

對於AAC(「libfaac」)音頻編碼器,如何通過FFmpeg的命令將「MPEG版本」指定爲「MPEG-4」或「MPEG-2」?FFmpeg的AAC(「libfaac」)編解碼器選項?

+0

我看到一些編碼軟件可以指定mpeg2或mpeg4作爲AAC的編解碼器選項,它基於ffmpeg,所以我認爲有一個命令來指定這個,但我找不到。 – RRN 2013-02-28 12:28:46

回答

1

當使用libfaac時,FFmpeg將MPEG版本硬編碼爲MPEG-4。如果你想改變它,你可以在libfaac.c觀察此,線118

faac_cfg->mpegVersion = MPEG4; 

,你將有下載的FFmpeg源碼,修改此行來使用,而不是MPEG2,並用適當的配置(包括--enable-libfaac重新編譯的FFmpeg )。這個工程併產生可播放的文件,但是你會明顯地要使用的比特流過濾器現在創建MPEG-4容器有效的比特流:相反,如果你直接使用FAAC API

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

,你可以的當然你可以根據需要改變這個參數。


理想的情況下,人們會提交補丁給FFmpeg的,包括一個新的選項,它允許你手動設置這一點,但考慮到MPEG-4被選爲硬編碼默認我看不出一個令人信服的理由執行這個。

+0

我什麼時候需要使用'-absf aac_adtstoasc'? – RRN 2013-03-01 16:04:23

+0

由於ADTS是MPEG-2 AAC的比特流格式,因此在編碼要打包到MPEG-4容器中的MPEG-2版本化AAC比特流時,需要使用它。 – slhck 2013-03-01 16:08:05

相關問題