FFmpeg結(jié)構(gòu)體:AVCodecContext

1.描述

AVCodecContext是一個(gè)描述編解碼器上下文的數(shù)據(jù)結(jié)構(gòu),包含了眾多編解碼器需要的參數(shù)信息,位于avcodec.h文件中。

2.常見變量及其作用

enum AVMediaType codec_type; //編解碼器的類型(視頻,音頻...)。
const struct AVCodec  *codec; //采用的解碼器AVCodec(H.264,MPEG2...)。
int64_t bit_rate;//平均比特率。
uint8_t *extradata;//針對(duì)特定編碼器包含的附加信息(例如對(duì)于H.264解碼器來說,存儲(chǔ)SPS,PPS等)。
int extradata_size;
AVRational time_base;//時(shí)間的基準(zhǔn)單位,根據(jù)該參數(shù),可以把PTS轉(zhuǎn)化為實(shí)際的時(shí)間(單位為秒s)。
編解碼延遲。
int delay;//編碼:從編碼器輸入到解碼器輸出的幀延遲數(shù)。解碼:除了規(guī)范中規(guī)定的標(biāo)準(zhǔn)解碼器外產(chǎn)生的幀延遲數(shù)。
int width, height;//代表寬和高(僅視頻)。
int refs;//運(yùn)動(dòng)估計(jì)參考幀的個(gè)數(shù)(H.264的話會(huì)有多幀,MPEG2這類的一般就沒有了)。
int sample_rate; //采樣率(僅音頻)。
int channels; //聲道數(shù)(僅音頻)。
enum AVSampleFormat sample_fmt;  //音頻采樣格式,編碼:由用戶設(shè)置。解碼:由libavcodec設(shè)置。
int frame_size;//音頻幀中每個(gè)聲道的采樣數(shù)。編碼:由libavcodec在avcodec_open2()中設(shè)置。 解碼:可以由一些解碼器設(shè)置以指示恒定的幀大小.
int frame_number;//幀計(jì)數(shù)器,由libavcodec設(shè)置。解碼:從解碼器返回的幀的總數(shù)。編碼:到目前為止傳遞給編碼器的幀的總數(shù)。
uint64_t channel_layout;//音頻聲道布局。編碼:由用戶設(shè)置。解碼:由用戶設(shè)置,可能被libavcodec覆蓋。
enum AVAudioServiceType audio_service_type;//音頻流傳輸?shù)姆?wù)類型。編碼:由用戶設(shè)置。解碼:由libavcodec設(shè)置。

參考:
http://blog.csdn.net/leixiaohua1020/article/details/14214859

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容