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

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

ffmpeg結(jié)構(gòu)體總結(jié)

2019-11-10 18:49:42
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

一、FFMPEG中最關(guān)鍵的結(jié)構(gòu)體之間的關(guān)系

ffmpeg中關(guān)鍵的結(jié)構(gòu)體可以分成以下三類:

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

AVIOContext,URLPRotocol,URLContext主要存儲(chǔ)視音頻使用的協(xié)議的類型以及狀態(tài)。URLProtocol存儲(chǔ)輸入視音頻使用的封裝格式。每種協(xié)議都對(duì)應(yīng)一個(gè)URLProtocol結(jié)構(gòu)。(注意:FFMPEG中文件也被當(dāng)做一種協(xié)議“file”)

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

AVFormatContext主要存儲(chǔ)視音頻封裝格式中包含的信息;AVInputFormat存儲(chǔ)輸入視音頻使用的封裝格式。每種視音頻封裝格式都對(duì)應(yīng)一個(gè)AVInputFormat 結(jié)構(gòu)。

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

每個(gè)AVStream存儲(chǔ)一個(gè)視頻/音頻流的相關(guān)數(shù)據(jù);每個(gè)AVStream對(duì)應(yīng)一個(gè)AVCodecContext,存儲(chǔ)該視頻/音頻流使用解碼方式的相關(guān)數(shù)據(jù);每個(gè)AVCodecContext中對(duì)應(yīng)一個(gè)AVCodec,包含該視頻/音頻對(duì)應(yīng)的解碼器。每種解碼器都對(duì)應(yīng)一個(gè)AVCodec結(jié)構(gòu)。

d) 存數(shù)據(jù)

視頻的話,每個(gè)結(jié)構(gòu)一般是存一幀;音頻可能有好幾幀

解碼前數(shù)據(jù):AVPacket

解碼后數(shù)據(jù):AVFrame

ffmpeg關(guān)鍵結(jié)構(gòu)體對(duì)應(yīng)關(guān)系如下所示:

二、關(guān)鍵結(jié)構(gòu)體分析

1、AVFrame

        AVFrame結(jié)構(gòu)體一般用于存儲(chǔ)原始數(shù)據(jù)(即非壓縮數(shù)據(jù),例如對(duì)視頻來(lái)說(shuō)是YUV,RGB,對(duì)音頻來(lái)說(shuō)是PCM),此外還包含了一些相關(guān)的信息。比如說(shuō),解碼的時(shí)候存儲(chǔ)了宏塊類型表,QP表,運(yùn)動(dòng)矢量表等數(shù)據(jù)。編碼的時(shí)候也存儲(chǔ)了相關(guān)的數(shù)據(jù)。因此在使用FFMPEG進(jìn)行碼流分析的時(shí)候,AVFrame是一個(gè)很重要的結(jié)構(gòu)體。

具體結(jié)構(gòu)體定義:

FFMPEG結(jié)構(gòu)體分析:AVFrame

2、AVFormatContext

    在使用FFMPEG進(jìn)行開(kāi)發(fā)的時(shí)候,AVFormatContext是一個(gè)貫穿始終的數(shù)據(jù)結(jié)構(gòu),很多函數(shù)都要用到它作為參數(shù)。它是FFMPEG解封裝(flv,mp4,rmvb,avi)功能的結(jié)構(gòu)體。

具體結(jié)構(gòu)體定義:

FFMPEG結(jié)構(gòu)體分析:AVFormatContext

3、AVCodecContext

    AVCodecContext一般在編解碼的時(shí)候用的。

具體結(jié)構(gòu)體定義:

FFMPEG結(jié)構(gòu)體分析:AVCodecContext

4、AVIOContext

    AVIOContext是FFMPEG管理輸入輸出數(shù)據(jù)的結(jié)構(gòu)體。

具體結(jié)構(gòu)體定義:

FFMPEG結(jié)構(gòu)體分析:AVIOContext

5、AVCodec

    AVCodec是存儲(chǔ)編解碼器信息的結(jié)構(gòu)體。

具體結(jié)構(gòu)體定義:

FFMPEG結(jié)構(gòu)體分析:AVCodec

6、AVStream

    AVStream是存儲(chǔ)每一個(gè)視頻/音頻流信息的結(jié)構(gòu)體。

具體結(jié)構(gòu)體定義:

FFMPEG結(jié)構(gòu)體分析:AVStream

7、AVPacket

    AVPacket是存儲(chǔ)壓縮編碼數(shù)據(jù)相關(guān)信息的結(jié)構(gòu)體。

具體結(jié)構(gòu)體定義:

FFMPEG結(jié)構(gòu)體分析:AVPacket


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 灯塔市| 壤塘县| 尼勒克县| 潮州市| 松桃| 左权县| 聊城市| 佛山市| 衢州市| 新绛县| 云龙县| 禹城市| 开鲁县| 错那县| 渑池县| 丹棱县| 车险| 温泉县| 收藏| 乌兰浩特市| 固阳县| 桃园县| 康马县| 铁力市| 德令哈市| 贵阳市| 枣强县| 交城县| 阳曲县| 西乌珠穆沁旗| 浮山县| 黎平县| 阿克苏市| 岳普湖县| 延庆县| 夏津县| 安新县| 昌都县| 黑龙江省| 思茅市| 专栏|