#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