使用FFMPEG類庫分離出多媒體文件中的音頻碼流

轉自:雷神博客  http://blog.csdn.net/leixiaohua1020/article/details/11800791


在使用FFMPEG的類庫進行編程的過程中,可以直接輸出解複用之後的的音頻數據碼流。只需要在每次調用av_read_frame()之後將得到的音頻的AVPacket存爲本地文件即可。

經試驗,在分離MP3碼流的時候,直接存儲AVPacket即可。

在分離AAC碼流的時候,直接存儲AVPacket後的文件可能是不能播放的。

如果視音頻複用格式是TS(MPEG2 Transport Stream),直接存儲後的文件是可以播放的。

複用格式是FLV,MP4等則不行。

因爲FLV,MP4這些屬於“特殊容器”。經過仔細對比後發現,調用av_read_frame()後得到的AVPacket裏面的內容是AAC純數據,就是那種不包含ADTS文件頭的AAC數據。因此如果想要得到可以播放的AAC文件,需要在每個AVPacket前面加上7字節ADTS文件頭。具體的ADTS文件頭的格式我還沒有仔細研究,留在今後有時間在做研究了。

發佈了41 篇原創文章 · 獲贊 17 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章