国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ffmpeg結構體總結

2019-11-10 18:40:32
字體:
來源:轉載
供稿:網友

聲明:此文章根據  雷霄驊(Leixiaohua1020)的專欄  整理所得;參考網址:http://blog.csdn.net/leixiaohua1020/article/details/11693997。以此向雷致敬!

一、FFMPEG中最關鍵的結構體之間的關系

ffmpeg中關鍵的結構體可以分成以下三類:

a)        解協議(http,rtsp,rtmp,mms)

AVIOContext,URLPRotocol,URLContext主要存儲視音頻使用的協議的類型以及狀態。URLProtocol存儲輸入視音頻使用的封裝格式。每種協議都對應一個URLProtocol結構。(注意:FFMPEG中文件也被當做一種協議“file”)

b)        解封裝(flv,avi,rmvb,mp4)

AVFormatContext主要存儲視音頻封裝格式中包含的信息;AVInputFormat存儲輸入視音頻使用的封裝格式。每種視音頻封裝格式都對應一個AVInputFormat 結構。

c)        解碼(h264,mpeg2,aac,mp3)

每個AVStream存儲一個視頻/音頻流的相關數據;每個AVStream對應一個AVCodecContext,存儲該視頻/音頻流使用解碼方式的相關數據;每個AVCodecContext中對應一個AVCodec,包含該視頻/音頻對應的解碼器。每種解碼器都對應一個AVCodec結構。

d) 存數據

視頻的話,每個結構一般是存一幀;音頻可能有好幾幀

解碼前數據:AVPacket

解碼后數據:AVFrame

ffmpeg關鍵結構體對應關系如下所示:

二、關鍵結構體分析

1、AVFrame

        AVFrame結構體一般用于存儲原始數據(即非壓縮數據,例如對視頻來說是YUV,RGB,對音頻來說是PCM),此外還包含了一些相關的信息。比如說,解碼的時候存儲了宏塊類型表,QP表,運動矢量表等數據。編碼的時候也存儲了相關的數據。因此在使用FFMPEG進行碼流分析的時候,AVFrame是一個很重要的結構體。

具體結構體定義:

FFMPEG結構體分析:AVFrame

2、AVFormatContext

    在使用FFMPEG進行開發的時候,AVFormatContext是一個貫穿始終的數據結構,很多函數都要用到它作為參數。它是FFMPEG解封裝(flv,mp4,rmvb,avi)功能的結構體。

具體結構體定義:

FFMPEG結構體分析:AVFormatContext

3、AVCodecContext

    AVCodecContext一般在編解碼的時候用的。

具體結構體定義:

FFMPEG結構體分析:AVCodecContext

4、AVIOContext

    AVIOContext是FFMPEG管理輸入輸出數據的結構體。

具體結構體定義:

FFMPEG結構體分析:AVIOContext

5、AVCodec

    AVCodec是存儲編解碼器信息的結構體。

具體結構體定義:

FFMPEG結構體分析:AVCodec

6、AVStream

    AVStream是存儲每一個視頻/音頻流信息的結構體。

具體結構體定義:

FFMPEG結構體分析:AVStream

7、AVPacket

    AVPacket是存儲壓縮編碼數據相關信息的結構體。

具體結構體定義:

FFMPEG結構體分析:AVPacket


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岱山县| 叙永县| 如皋市| 遂川县| 栾川县| 义马市| 孟津县| 焉耆| 华安县| 泾川县| 娄底市| 封开县| 宝清县| 湘潭市| 江油市| 右玉县| 东城区| 济南市| 麻城市| 峡江县| 尼勒克县| 巢湖市| 新宾| 贺州市| 东安县| 根河市| 华蓥市| 朝阳区| 铁岭市| 长寿区| 新和县| 永泰县| 新野县| 离岛区| 山西省| 连城县| 阜新| 喀喇沁旗| 河东区| 清原| 任丘市|