ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
[TOC] # log ~~~ include <libavutil/log.h> # 设置日志的级别 av_log_set_level(AV_LOG_DEBUG) # 打印日志 av_log(NULL, AV_LOG_INFO, "...%s\n", op) ~~~ 常用日志级别 * `AV_LOG_ERROR` * `AV_LOG_WARNING` * `AV_LOG_INFO` ~~~ #include <stdio.h> #include <libavutil/log.h> int main(int argc, char const *argv[]) { //设置log级别 av_log_set_level(AV_LOG_DEBUG); //打印日志,打印的级别 av_log(NULL, AV_LOG_INFO, "hello world\n"); return 0; } ~~~ 指定ffmpeg的库 ~~~ clang -g -o main main.c -lavutil ~~~ # 文件重命名和删除 * `avpriv_io_delete()` * `avpriv_io_move()` ## 删除 ~~~ #include <stdio.h> #include <libavformat/avformat.h> int main(int argc, char const *argv[]) { int ret; //符合url的字符串都可以 ret = avpriv_io_delete("./1.txt"); if (ret < 0) { av_log(NULL, AV_LOG_ERROR, "failed to delete 1.txt \n"); return -1; } return 0; } ~~~ 指定库编译 ~~~ clang -g -o main main.c `pkg-config --libs libavformat` ~~~ ## 重命名 ~~~ #include <stdio.h> #include <libavformat/avformat.h> int main(int argc, char const *argv[]) { int ret; //符合url的字符串都可以 ret = avpriv_io_move("./1.txt", "2.txt"); if (ret < 0) { av_log(NULL, AV_LOG_ERROR, "failed \n"); return -1; } return 0; } ~~~ # 目录操作 * `avio_open_dir()` * `avio_read_dir()` * `avio_close_dir()` **重要的结构体** * AVIODirContext 操作目录的上下文 * AVIODirEntry 目录项.用于存放文件名,文件大小等信息 ~~~ #include <stdio.h> #include <libavformat/avformat.h> int main(int argc, char const *argv[]) { int ret; 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, "failed \n"); return -1; } while (1) { //读取目录 ret = avio_read_dir(ctx, &entry); if (ret < 0) { av_log(NULL, AV_LOG_ERROR, "cant read \n"); //跳到标签那去,因为打开了,就算失败了也要关闭 goto _fail; } //如果是null表述文件的最末尾 if (!entry) { break; } //打印 av_log(NULL, AV_LOG_INFO, "%12"PRId64 "%s \n", entry->size, entry->name); //释放空间,不然每次这个entry都不释放会内存泄露 avio_free_directory_entry(&entry); } //关闭 _fail: avio_close_dir(&ctx); return 0; } ~~~ 编译 ~~~ clang -g -o main main.c `pkg-config --libs libavformat libavutil` ~~~