ffmpeg 打印音视频的 meta 信息

ffmpeg 打印音视频的 meta 信息

用到四个函数 :

av_register_all();

avformat_open_input

av_dump_format

avformat_close_input

直接上代码

av_register_all();
    AVFormatContext *fmt_ctx = NULL;
    int ret;
    // 1. 上下文 2.文件名 3.文件的格式,如输入的格式,和后缀名格式不同 4.一些参数
    ret = avformat_open_input(&fmt_ctx, "./a.mp4", NULL, NULL);
    
    if (ret < 0 ) {
        av_log(NULL, AV_LOG_ERROR, "cant open file1 : %s",av_err2str(ret));
        return -1;
    }
    // 打印 meta 信息
    // 1.上下文  2.流的索引值 3. 文件名  4.输入流还是输出流 ,输入填0 输出填1
    av_dump_format(fmt_ctx, 0, "./a.mp4", 0);
    avformat_close_input(&fmt_ctx);
    return 0;

编译运行

将上面的代码复制到 main.c 里面,然后终端编译, gcc -g -o app main.c pkg-config --libs libavformat libavutil

, 然后 ./app ,就可以看到打印的信息了。

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'a.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isom
    creation_time   : 2018-09-29T08:07:09.000000Z
  Duration: 00:00:11.43, bitrate: N/A
    Stream #0:0(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, 2 channels, 96 kb/s (default)
    Metadata:
      creation_time   : 2018-09-29T08:07:09.000000Z
    Stream #0:1(und): Video: h264 (avc1 / 0x31637661), none, 960x544, 1131 kb/s, 30.06 fps, 30 tbr, 90k tbn (default)
    Metadata:
      creation_time   : 2018-09-29T08:07:09.000000Z
      encoder         : JVT/AVC Coding

从打印信息可以看到,流的索引值是 0 ,视频的 时长 Duration: 00:00:11.43 , 比特率为 N/A 未知,编码类型为 Video: h264 (avc1 / 0x31637661),分辨率为 960x544 , 帧率为 30.06 fps,码率为 1131 kb/s

Audio: aac (mp4a / 0x6134706D),采样率 48000 Hz ,双声道,码率为 96 kb/s (default)

你可能感兴趣的:(ffmpeg 打印音视频的 meta 信息)