新建文件ffmpeg_dir.c

#include<stdio.h>
#include<libavutil/avutil.h>
#include<libavformat/avformat.h>
int main(int argc,char* argv[]){
int ret;
av_register_all();
AVIODirContext *ctx=NULL;
AVIODirEntry *entry=NULL;
av_log_set_level(AV_LOG_INFO);
ret=avio_open_dir(&ctx,"../",NULL);

if(ret<0){
av_log(NULL,AV_LOG_ERROR,"can not open dir:%s\n",av_err2str(ret));
goto __fail;
}
while(1){
ret = avio_read_dir(ctx,&entry);
if(ret<0){
av_log(NULL,AV_LOG_ERROR,"can not read dir:%s\n",av_err2str(ret));
goto __fail;
}
if(!entry){
break;
}

av_log(NULL,AV_LOG_INFO,"%12"PRId64" %s \n",entry->size,entry->name);
avio_free_directory_entry(&entry);
}
__fail:
avio_close_dir(&ctx);
return 0;
}

编译

[root@localhost c]# gcc -g -o ffmpeg_dir ffmpeg_dir.c `pkg-config --libs --cflags libavutil libavformat`

执行完成没有报错证明编译成功
查看是否生成了可执行文件ffmpeg_dir

执行下面的命令,执行结果如下,表明程序执行成功
ffmpeg开发读取目录列表_#include
这里列出了我的上一级目录的所有文件