ffmpeg AVCodecContext结构体主要变量

2017-08-11  本文已影响0人  lixiangdev

AVCodecContext是包含变量较多的结构体(解码)
参考结构体理解:http://www.jianshu.com/p/d109e7ef9749

enum AVMediaType codec_type
enum AVMediaType {  
    AVMEDIA_TYPE_UNKNOWN = -1,  ///< Usually treated as AVMEDIA_TYPE_DATA  
    AVMEDIA_TYPE_VIDEO,  
    AVMEDIA_TYPE_AUDIO,  
    AVMEDIA_TYPE_DATA,          ///< Opaque data information usually continuous  
    AVMEDIA_TYPE_SUBTITLE,  
    AVMEDIA_TYPE_ATTACHMENT,    ///< Opaque data information usually sparse  
    AVMEDIA_TYPE_NB  
}; 

:编解码器的类型(视频,音频...)

struct AVCodec  *codec

:采用的解码器AVCodec(H.264,MPEG2...)

int bit_rate

:平均比特率

uint8_t *extradata; int extradata_size

:针对特定编码器包含的附加信息(例如对于H.264解码器来说,存储SPS,PPS等)

AVRational time_base

:根据该参数,可以把PTS转化为实际的时间(单位为秒s)

int width, height

:如果是视频的话,代表宽和高

int refs

:运动估计参考帧的个数(H.264的话会有多帧,MPEG2这类的一般就没有了)

int sample_rate

:采样率(音频)

int channels

:声道数(音频)

enum AVSampleFormat sample_fmt
enum AVSampleFormat {  
    AV_SAMPLE_FMT_NONE = -1,  
    AV_SAMPLE_FMT_U8,          ///< unsigned 8 bits  
    AV_SAMPLE_FMT_S16,         ///< signed 16 bits  
    AV_SAMPLE_FMT_S32,         ///< signed 32 bits  
    AV_SAMPLE_FMT_FLT,         ///< float  
    AV_SAMPLE_FMT_DBL,         ///< double  
  
    AV_SAMPLE_FMT_U8P,         ///< unsigned 8 bits, planar  
    AV_SAMPLE_FMT_S16P,        ///< signed 16 bits, planar  
    AV_SAMPLE_FMT_S32P,        ///< signed 32 bits, planar  
    AV_SAMPLE_FMT_FLTP,        ///< float, planar  
    AV_SAMPLE_FMT_DBLP,        ///< double, planar  
  
    AV_SAMPLE_FMT_NB           ///< Number of sample formats. DO NOT USE if linking dynamically  
};  

:采样格式

int profile

:型(H.264里面就有,其他编码标准应该也有)
在FFMPEG中型有以下几种,可以看出AAC,MPEG2,H.264,VC-1,MPEG4都有型的概念。


#define FF_PROFILE_UNKNOWN -99  
#define FF_PROFILE_RESERVED -100  
  
#define FF_PROFILE_AAC_MAIN 0  
#define FF_PROFILE_AAC_LOW  1  
#define FF_PROFILE_AAC_SSR  2  
#define FF_PROFILE_AAC_LTP  3  
#define FF_PROFILE_AAC_HE   4  
#define FF_PROFILE_AAC_HE_V2 28  
#define FF_PROFILE_AAC_LD   22  
#define FF_PROFILE_AAC_ELD  38  
  
#define FF_PROFILE_DTS         20  
#define FF_PROFILE_DTS_ES      30  
#define FF_PROFILE_DTS_96_24   40  
#define FF_PROFILE_DTS_HD_HRA  50  
#define FF_PROFILE_DTS_HD_MA   60  
  
#define FF_PROFILE_MPEG2_422    0  
#define FF_PROFILE_MPEG2_HIGH   1  
#define FF_PROFILE_MPEG2_SS     2  
#define FF_PROFILE_MPEG2_SNR_SCALABLE  3  
#define FF_PROFILE_MPEG2_MAIN   4  
#define FF_PROFILE_MPEG2_SIMPLE 5  
  
#define FF_PROFILE_H264_CONSTRAINED  (1<<9)  // 8+1; constraint_set1_flag  
#define FF_PROFILE_H264_INTRA        (1<<11) // 8+3; constraint_set3_flag  
  
#define FF_PROFILE_H264_BASELINE             66  
#define FF_PROFILE_H264_CONSTRAINED_BASELINE (66|FF_PROFILE_H264_CONSTRAINED)  
#define FF_PROFILE_H264_MAIN                 77  
#define FF_PROFILE_H264_EXTENDED             88  
#define FF_PROFILE_H264_HIGH                 100  
#define FF_PROFILE_H264_HIGH_10              110  
#define FF_PROFILE_H264_HIGH_10_INTRA        (110|FF_PROFILE_H264_INTRA)  
#define FF_PROFILE_H264_HIGH_422             122  
#define FF_PROFILE_H264_HIGH_422_INTRA       (122|FF_PROFILE_H264_INTRA)  
#define FF_PROFILE_H264_HIGH_444             144  
#define FF_PROFILE_H264_HIGH_444_PREDICTIVE  244  
#define FF_PROFILE_H264_HIGH_444_INTRA       (244|FF_PROFILE_H264_INTRA)  
#define FF_PROFILE_H264_CAVLC_444            44  
  
#define FF_PROFILE_VC1_SIMPLE   0  
#define FF_PROFILE_VC1_MAIN     1  
#define FF_PROFILE_VC1_COMPLEX  2  
#define FF_PROFILE_VC1_ADVANCED 3  
  
#define FF_PROFILE_MPEG4_SIMPLE                     0  
#define FF_PROFILE_MPEG4_SIMPLE_SCALABLE            1  
#define FF_PROFILE_MPEG4_CORE                       2  
#define FF_PROFILE_MPEG4_MAIN                       3  
#define FF_PROFILE_MPEG4_N_BIT                      4  
#define FF_PROFILE_MPEG4_SCALABLE_TEXTURE           5  
#define FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION      6  
#define FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE     7  
#define FF_PROFILE_MPEG4_HYBRID                     8  
#define FF_PROFILE_MPEG4_ADVANCED_REAL_TIME         9  
#define FF_PROFILE_MPEG4_CORE_SCALABLE             10  
#define FF_PROFILE_MPEG4_ADVANCED_CODING           11  
#define FF_PROFILE_MPEG4_ADVANCED_CORE             12  
#define FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE 13  
#define FF_PROFILE_MPEG4_SIMPLE_STUDIO             14  
#define FF_PROFILE_MPEG4_ADVANCED_SIMPLE           15  
int level

:级(和profile差不太多)

上一篇 下一篇

猜你喜欢

热点阅读