美文网首页
FFmpeg获取音视频meta信息

FFmpeg获取音视频meta信息

作者: 一叶知秋0830 | 来源:发表于2019-07-24 22:53 被阅读0次

    获取FFmpeg音视频meta信息涉及以下三个函数:
    avformat_open_input()打开多媒体文件,将多媒体文件中各种流信息输出到结构体AVFormatContext中
    avformat_close_input()释放相关资源
    av_dump_format() 将多媒体文件中的meta信息打印出来

    #include <libavutil/log.h>
    #include <libavformat/avformat.h>
    
    int main()
    {
        int flag;
    
        // 定义一个上下文的指针
        AVFormatContext *fmt_ctx = NULL;
    
        av_log_set_level(AV_LOG_INFO);
    
        // 打开多媒体文件,将多媒体文件中各种流信息输出到结构体AVFormatContext中
        // 第二个参数是视频地址,是输入文件的格式,设置为NULL就会根据文件后缀名来解析文件,第四个参数意义不大
       flag = avformat_open_input(&fmt_ctx,"./testVideo/test.mp4",NULL,NULL);
       if(flag < 0){
           av_log(NULL,AV_LOG_ERROR,"打开失败:%s\n",av_err2str(flag));
            return -1; 
       }
    
        /*将多媒体文件中的信息打印出来
         * 第二个参数是流的索引值,写0就可以
         * 第三个参数是视频路径
         * 第四个参数是输入流还是输出流,输入流是0,输出流是1,现在是输入文件所以是0
         */
       av_dump_format(fmt_ctx,0,0,0);
    
       // 释放资源
       avformat_close_input(&fmt_ctx);
       
         return 0;
    }
    

    获取的信息结果如下图所示。
    Input中#0是流的索引值,也就是程序里面填的参数值。
    Metadata是和ffmpeg版本相关的信息。
    Duration是视频时长,bitrate是比特率,N/A表示未知。
    Stream #0:0(eng): Video是视频流信息,编码器是h264,分辨率1368*768,码率58kb/s,6.63fps表示帧率,30 tbr, 30k tbn表示时间基。
    Stream #0:1(eng): Audio是音频流信息,编码器是aac,采样率48kHz,双声道,比特率173kb/s。


    获取音视频meta信息

    相关文章

      网友评论

          本文标题:FFmpeg获取音视频meta信息

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