FFmpeg 初级操作—打印日志,文件目录操作
文章目录
- 日志输出操作
- 文件的删除与重命名
- 操作目录实现
- 实现简单的ls命令—代码实现
日志输出操作
FFmpeg 提供了一套LOG操作,基本上和printf用法差不多,如下方所示
(图片来源网络,侵删)#include #include int main(int argc, char * argv[]){ av_log_set_level(AV_LOG_DEBUG); //基本上可以当作 printf来用 av_log(NULL,AV_LOG_INFO,"hello ffmpeg log %d\n",123); return 0; }
文件的删除与重命名
avpriv_io_delete()
这个函数的作用是用来删除文件的,其具体实现可能会依赖于FFmpeg当前的环境和构建选项。它通常在FFmpeg的内部代码中使用,用于处理一些特定的文件删除需求,可能会涉及更底层的文件系统操作或者特定的编解码器功能。
avpriv_io_remove()
参数
- const char *url: 需要删除的文件的路径。
返回值
- 成功删除文件时返回 0。
- 如果删除文件失败,返回一个负数的错误码。
操作目录实现
相关操作API:
1.avio_open_dir
参数
- AVIODirContext **s:
- 指向目录上下文的指针。该指针在函数成功返回后会指向一个有效的 AVIODirContext,用于后续的目录操作。
- const char *url:
- 要打开的目录的路径。可以是本地文件系统路径,也可以是支持的协议路径。
- AVDictionary **options:
- 选项字典,包含用于打开目录的其他选项。可以为 NULL 表示没有额外选项。常用于传递特定协议的参数。
返回值
- 成功时返回 0。
- 失败时返回负数的错误码。
2.int avio_read_dir(AVIODirContext *s, AVIODirEntry **next);
参数
- AVIODirContext *s:
- 目录上下文指针。这个指针是通过之前调用 avio_open_dir 获得的。
- AVIODirEntry **next:
- 指向指针的指针。这个指针在成功读取后会指向一个有效的 AVIODirEntry,表示目录中的下一个条目。
返回值
- 成功时返回 0,并将 next 指向一个新分配的 AVIODirEntry 结构体。
- 目录读取完毕时返回 0,并将 next 设置为 NULL。
- 失败时返回负数的错误码。
注: AVIODirEntry 结构体 存放文件名,文件大小等相关属性
typedef struct AVIODirEntry { char *name; /**
- avio_close_dir(&ctx);
关闭目录,释放相关资源
实现简单的ls命令—代码实现
#include #include int main() { AVIODirContext *ctx = NULL; AVIODirEntry *entry = NULL; int ret; // 打开目录 if ((ret = avio_open_dir(&ctx, "./", NULL)) name, entry->size); avio_free_directory_entry(&entry); // 释放目录项 } // 关闭目录 avio_close_dir(&ctx); return 0; }
- 指向指针的指针。这个指针在成功读取后会指向一个有效的 AVIODirEntry,表示目录中的下一个条目。
- AVIODirContext *s:
- 选项字典,包含用于打开目录的其他选项。可以为 NULL 表示没有额外选项。常用于传递特定协议的参数。
- AVIODirContext **s:
- const char *url: 需要删除的文件的路径。
- 实现简单的ls命令—代码实现
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。