【FFmpeg】AVPacket的使用详解
生活随笔
收集整理的這篇文章主要介紹了
【FFmpeg】AVPacket的使用详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、AVPacket簡介
AVPacket是存儲壓縮編碼數據相關信息的結構體,內部有壓縮數據。它通常由解碼器導出,或者作為輸入傳遞給解碼器,或者傳遞給muxers。
對于視頻,它通常應該包含一個壓縮幀。對于音頻,它可能包含幾個壓縮幀。
重要的變量有以下幾個:
AVBufferRef *buf; 參考計數
uint8_t *data: 壓縮編碼后的數據。例如對于H.264來說。1個AVPacket的data通常對應一個NAL。注意:在這里只是對應,而不是一模一樣。他們之間有微小的差別:使用FFMPEG類庫分離出多媒體文件中的H.264碼流因此在使用FFMPEG進行視音頻處理的時候,常常可以將得到的AVPacket的data數據直接寫成文件,從而得到視音頻的碼流文件。
int size: data的大小
int64_t pts: Presentation timestamp,顯示時需要的時間戳
int64_t dts: Decompression timestamp,解壓時間戳
int64_t duration: 此數據包的持續時間
int stream_index: 標識該AVPacket所屬的視頻/音頻流。
2、相關函數
1)av_packet_alloc:分配AVPacket
原型:
AVPacket *av_packet_alloc(void);
注意:
這個函數分配了AVPacket本身,而不是數據緩沖區(uin
總結
以上是生活随笔為你收集整理的【FFmpeg】AVPacket的使用详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【H2645】帧间预测
- 下一篇: 【Live555】liveMedia下载