ffmpeg为何用c语言编译,如何使用ffmpeg的c语言sdk实现对文件夹的操作
重要函數(shù)
打開文件夾:avio_open_dir()
讀取文件夾:avio_read_dir()
關(guān)閉文件夾:avio_close_dir()
結(jié)構(gòu)體, 操作目錄的上下文:AVIODirContext()
目錄項,用于存放文件名,文件大小等信息:AVIODirEntry()
實例
vim ffmpeg_list.c
#include
#include
int main(int arc, char *argv[])
{
int ret;
// 文件內(nèi)容上下文
AVIODirContext *ctx = NULL;
// 文件信息上下文
AVIODirEntry *entry = NULL;
// 設(shè)置日志等級
av_log_set_level(AV_LOG_INFO);
// 打開文件夾, ctx:上下文, ./當(dāng)前文件夾
ret = avio_open_dir(&ctx, "./", NULL);
if (ret < 0){
av_log(NULL, AV_LOG_ERROR, "找不到文件夾%s\n", av_err2str(ret));
return -1;
}
while(1){
// 讀文件夾操作
ret = avio_read_dir(ctx, &entry);
// 如果讀取失敗
if (ret < 0){
av_log(NULL, AV_LOG_ERROR, "Cant read dir: %s\n", av_err2str(ret));
// return -1; 這里直接退出可能會忘記文件的退出,照成內(nèi)存泄漏,使用goto
goto __fail;
}
// 如果讀取成功,需要判斷一下entry
if(!entry){
break;
}
// 打印文件信息, PRId64 是 64的宏信息
av_log(NULL, AV_LOG_INFO, "%12"PRId64" %s \n",
entry->size,
entry->name);
// 要進(jìn)行entry的釋放
avio_free_directory_entry(&entry);
}
// 關(guān)閉文件夾
__fail:
avio_close_dir(&ctx);
return 0;
}
編譯:
clang -g -o list ffmpeg_list.c `pkg-config --libs liavformat libavutil`
總結(jié)
以上是生活随笔為你收集整理的ffmpeg为何用c语言编译,如何使用ffmpeg的c语言sdk实现对文件夹的操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 背上长痘痘拔罐有用吗
- 下一篇: c语言oj合法标识符,YTUOJ-C语言