程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 使用FFMPEG類庫分離出多媒體文件中的音頻碼流

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

編輯:關於C語言

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

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

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

如果視音頻復用格式是TSMPEG2TransportStream),直接存儲後的文件是可以播放的。

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

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

本文出自 “leixiaohua1020視音頻技術” 博客,請務必保留此出處http://leixiaohua1020.blog.51cto.com/3974648/1303851

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved