打印音/视频信息
- avdevice_register_all()
- avformat_open_input()/avformat_close_input
- av_dump_format()
实战
int main(int argc, const char * argv[]) {
int ret = 0;
AVFormatContext *fmt_ctx = NULL; //创建AVFormatContext格式上下文指针
av_log_set_level(AV_LOG_INFO); //设置日志打印级别
avdevice_register_all(); //注册所有的设备
ret = avformat_open_input(&fmt_ctx, "./test.mp4", NULL, NULL); //第三个参数是输入文件的格式,NULL则会根据文件后缀名自行选择,如果文件后缀名不是mp4,但是里面是mp4数据格式,这个时候第三个参数要指定为mp4,第四个参数是从命令行传一些参数进来,一般设置为NULL就可以
if(ret < 0){
av_log(NULL, AV_LOG_ERROR, "Can't open file:%s\n", av_err2str(ret));
}
av_dump_format(fmt_ctx, 0, "./童话镇.flac", 0); //第2个参数是流的索引值,直接填0就可以,应该是代表取第一路视频流,第四个参数指是输入流还是输出流,这里是向ffmpeg输入文件所以使用0,如果是ffmpeg向外输出文件就要是1
avformat_close_input(&fmt_ctx);
return 0;
}