ffmpeg AVStream结构体主要变量

AVStream是存储每一个视频/音频流信息的结构体
参考结构体理解://www.greatytc.com/p/d109e7ef9749

int index

:标识该视频/音频流

AVCodecContext *codec

:指向该视频/音频流的AVCodecContext(它们是一一对应的关系)

AVRational time_base

:时基。通过该值可以把PTS,DTS转化为真正的时间。FFMPEG其他结构体中也有这个字段,但是根据我的经验,只有AVStream中的time_base是可用的。PTS*time_base=真正的时间

int64_t duration

:该视频/音频流长度

AVDictionary *metadata

:元数据信息(同AVFormatContext中的AVDictionary)

AVRational avg_frame_rate

:帧率(注:对视频来说,这个挺重要的)
举例

if(stream ->avg_frame_rate.den && stream ->avg_frame_rate.num){
        fps = av_q2d(stream->avg_frame_rate);
    }else{
        fps=30.0;
    }
//其中av_q2d求帧数,利用其中的分子分母做运算
static inline double av_q2d(AVRational a){
    return a.num / (double) a.den;
}
AVPacket attached_pic

:附带的图片。比如说一些MP3,AAC音频文件附带的专辑封面。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 教程一:视频截图(Tutorial 01: Making Screencaps) 首先我们需要了解视频文件的一些基...
    90后的思维阅读 4,840评论 0 3
  • 本篇博客在雷神的结构体介绍基础上按自己的喜好整理的 后面根据自己工作中所需有所增改 AVStream 存储每一个视...
    石丘阅读 2,523评论 1 10
  • ffmpeg是一个非常有用的命令行程序,它可以用来转码媒体文件。它是领先的多媒体框架FFmpeg的一部分,其有很多...
    城市之光阅读 6,932评论 3 6
  • 简介 开发环境 FFmpeg sdk下载 项目配置 代码流程 开发环境 vs 2017 FFmpeg sdk下载 ...
    第八区阅读 31,551评论 7 23
  • 男孩子间的友谊随着年龄的增长而深厚了,让人欣慰。钧钧哥哥很会照顾人,小元子喜欢和他一起玩!中午一起吃饭,一起看电影...
    小元子zz阅读 176评论 0 0