方式1:通过命令获取
ffprobe ../input.mp4
方式2:代码获取
main.c
#include "libavutil/log.h"
#include "libavformat/avformat.h"
int main(int argc,char **argv){
av_log_set_level(AV_LOG_DEBUG);
if(argc <2){
av_log(NULL,AV_LOG_ERROR,"Usage:%s inputFile\n",argv[0]);
return -1;
}
const char *inputFile = argv[1];
AVFormatContext *fCtx = NULL;
int ret = avformat_open_input(&fCtx,inputFile,NULL,NULL);
if (ret!=0){
av_log(NULL,AV_LOG_ERROR,"open input file:%s failed:%s\n",inputFile,av_err2str(ret));
goto clean;
}
av_dump_format(fCtx,0,inputFile,0);
clean:
if(fCtx!=NULL){
avformat_close_input(&fCtx);
return -1;
}
return 0;
}
Makefile
TARGET=main
SRC=main.c
cc=gcc
CFLAGS=-I /usr/local/ffmpeg/include
LDFLAGS=-L /usr/local/ffmpeg/lib
LDFLAGS+= -lavutil -lavformat
all:$(TARGET)
$(TARGET):$(SRC)
$(CC) $(SRC) $(CFLAGS) $(LDFLAGS) -o $(TARGET)
clean:
rm -rf $(TARGET)
编译运行
make && ./main ../input.mp4