国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 百色市| 灌南县| 天长市| 新化县| 东乌珠穆沁旗| 宜兰县| 菏泽市| 康马县| 清徐县| 伽师县| 平湖市| 黔西| 顺平县| 常熟市| 平陆县| 海原县| 夹江县| 东平县| 余江县| 密云县| 尉氏县| 祥云县| 建平县| 桑植县| 洛南县| 宁武县| 凤山市| 榆社县| 多伦县| 巴林右旗| 常宁市| 华蓥市| 正阳县| 曲阜市| 颍上县| 祁东县| 即墨市| 崇州市| 萝北县| 从化市| 从化市|