2016-12-21 48 views
-1

所以我遇到了AAC編碼的問題。我正在嘗試對某些合成聲波進行編碼,但它無法按預期工作。在VLC中播放時,我得到的文件只是一個超短的聲音。當我在ffplay中玩時,就像我期望的那樣,但它說「持續時間:00:00:00.05」,我想這是說5毫秒。但我編碼的比這更多,它演奏的更多。所以VLC播放超短的聲音,ffplay播放更長的文件(預期的長度),但超長時間顯示它,發生了什麼?aac使用ffmpeg編碼導致超短文件

來源:http://pastebin.com/M5MKkEL3

一個看起來我錯了的事情是這樣的: 如果您要查找的變量「audio_time」,如果你斷點並閱讀每一個編碼幀,你會得到這樣的:

..
編碼幀8:0.00010416666666666666
編碼幀9:0.00012500000000000000
(等)

差異是:〜0.00002085,這是我預期的〜47採樣幀每秒的差異的1/1000,這是編碼器想要的48k採樣率(48k/1024 =〜47)所要求的。

那麼,爲什麼我會得到一千預期的數據編碼?

隨意指出任何可疑的東西!

在此先感謝!

回答

0

所以我覺得,在75行,這是丟失:

time_base.num = per_frame_audio_samples; 
    time_base.den = aud_codec_context->sample_rate; 
    aud_codec_context->time_base = time_base; 

per_frame_audio_samples = 1024在我的情況。

相關問題