美文网首页
ffmpeg AVCodecContext结构体主要变量

ffmpeg AVCodecContext结构体主要变量

作者: lixiangdev | 来源:发表于2017-08-11 15:02 被阅读0次

    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差不太多)

    相关文章

      网友评论

          本文标题:ffmpeg AVCodecContext结构体主要变量

          本文链接:https://www.haomeiwen.com/subject/tpalrxtx.html