美文网首页
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