• 【ffmpeg基础知识】打印视频meta信息


    #include <libavutil/log.h>
    #include <libavformat/avformat.h>
    
    int main(int argc,char* argv[])
    {
            int ret;
    //用于联系上下文使用,就是串联各函数之间,让其他函数知道操作的是哪个
            AVFormatContext *fmt_ctx = NULL;
    //设置log的等级
            av_log_set_level(AV_LOG_INFO);
    //井号部分是因为有些接口版本过期了,需要使用宏进行处理
    #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 9, 100)
            av_register_all();
    #endif
            ret = avformat_open_input(&fmt_ctx,"./aaa.mp4",NULL,NULL);
            if(ret < 0){ 
                    av_log(NULL,AV_LOG_ERROR,"cant open file: %s\n",av_err2str(ret));
                    return -1; 
            }
    //打印信息,数字1是序号1的意思
            av_dump_format(fmt_ctx,1,"aaa.mp4",0);
            avformat_close_input(&fmt_ctx);
            return 0;
    }
    ~  

    gcc -g -o ffmpeg_printmp4 ffmpeg_printmp4.c `pkg-config --libs libavformat libavutil`

    Metadata:
        major_brand     : mp42
        minor_version   : 0
        compatible_brands: mp42isom
        creation_time   : 2021-02-20T03:00:27.000000Z
      Duration: 00:00:17.69, bitrate: N/A
        Stream #1:0(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, 2 channels, 128 kb/s (default)
        Metadata:
          creation_time   : 2021-02-20T03:00:27.000000Z
        Stream #1:1(und): Video: h264 (avc1 / 0x31637661), none, 960x544, 942 kb/s, 29.38 fps, 29.42 tbr, 90k tbn (default)
        Metadata:
          creation_time   : 2021-02-20T03:00:27.000000Z
          encoder         : JVT/AVC Coding
    

      

  • 相关阅读:
    Python初学笔记
    linux学习笔记一----------文件相关操作
    Linux目录结构及常用命令(转载)
    最简单冒泡事件及阻止冒泡事件
    IDEA 从SVN检出项目相关配置
    拦截器实现原理
    CUDA基本概念
    1.2CPU和GPU的设计区别
    RAM和DDR
    Myriad2 简介
  • 原文地址:https://www.cnblogs.com/powercool/p/14438853.html
Copyright © 2020-2023  润新知