AVStream 包含音频和视频的一些参数。
参数
AVCodecContext * codec: 3.2版本后弃用了。这里弃用主要是要将 解封装 和 解码 隔离。编码时候要用到解码时的cedec参数,这里可以用AVCodecParameters使用int avcodec_parameters_to_context(AVCodecContext *codec,const AVCodecParameters *par); 来替换 请参考:ffmpeg AVCodec 和 AVCodecContext 用法
AVRational time_base: AVRational 其实就是是个结构体,表示分数。里面分子 和 分母,这样表示防止浮点数多次运算损失变大。分子/父母 单位是秒。
AVRational {
int num
int den;
}
int64_t duration 总时长。 这里用到上面参数 time_base, (num/den*duration得到时长,单位位秒,当然注意 timebase不一定取到值了,需要判断time.base.den 是否为0; 这个时长不一定准,最好还是按 AVFormatContext 为准。
AVRational avg_frame_tate 帧率.
AVCodecParameters *codecpar 这个是新增的,替代AVCodecContext * codec的。
AVCodecParameters 常用 参数
enum AVMediaType codec_type: 编码的类型,类型是音频还是视频
enum AVCodecId codec_id: 解码器的id
uint32_t codec_tag: 4个字节表示各个编码器。
int format: 像素格式/音频的采样格式(16 位short类型,还是32 float格式)
int widht; int height:
uint64_t channel_layout;一般取默认值, 声道
int channels:声道数
int sample_rate;样本率(音频)
int frame_size;帧率大小