FFmpeg 有多個(gè)重要的結(jié)構(gòu)體窄赋,解協(xié)議哟冬,解分裝,解碼忆绰,解封裝浩峡。
解協(xié)議:http,rstp错敢,rtmp红符,mms。
AVIOContext伐债,URLProtocol预侯,URLContext主要存儲視頻音頻試用的協(xié)議類型及狀態(tài),URLProtocol存儲輸入視頻音頻的封裝格式峰锁。每種協(xié)議都對應(yīng)一個(gè)URLProtocol結(jié)構(gòu)
解封裝:flv萎馅,avi,rmvb虹蒋,mp4
AVFormatContext 主要存儲視頻音頻封裝格式中包含的信息;
AVInputFormat存儲視頻音頻試用的封裝格式糜芳。
每種視頻音頻封裝格式都對應(yīng)一個(gè)AVInputFormat結(jié)構(gòu)。
解碼:h264,mpeg2,aac,mp3,avs(真的超級多一頁都顯示不完魄衅,包含攝像頭峭竣,監(jiān)控,電視等等幾乎能有視頻音頻的地方都有解碼器)
視頻音頻都有視頻流會音頻流晃虫。
每個(gè)AVStream存儲一個(gè)視頻音頻流的相關(guān)數(shù)據(jù)皆撩。
每個(gè)AVStream對應(yīng)一個(gè)AVCodecContext,存儲該視頻音頻的解碼方式相關(guān)數(shù)據(jù)。
每個(gè)AVCodecContext中對應(yīng)一個(gè)AVCodec扛吞,包含該視頻音頻對應(yīng)的解碼器呻惕,每種解碼器對應(yīng)一個(gè)AVCodec結(jié)構(gòu)。
存數(shù)據(jù):
視頻每個(gè)結(jié)構(gòu)都是存一幀(一張圖)滥比。音頻可能好幾幀亚脆。
解碼前的數(shù)據(jù):AVPacket;
解碼后的數(shù)據(jù):AVFormat盲泛;
關(guān)系是這樣:(引用雷神的原圖濒持,雷神天堂一路走好,愿天堂永無代碼)