美文网首页
FFmpeg文件操作

FFmpeg文件操作

作者: 子鱼_谋 | 来源:发表于2019-10-17 10:39 被阅读0次
    1. FFmpeg日志系统
    // 引入日志头文件
    include<libavutil/log.h>
    
    //设置日志级别
    av_log_set_level(AV_LOG_DEBUG)
    
    // 输出日志
    av_log(NULL, AV_LOG_INFO, "%s", "hello world");
    
    

    .c 文件编译

    clang -g -o ffmpeg_log ffmpeg_log.c -lavutil
    

    编译时报错

    ffmpeg_log.c:2:10: fatal error: 'libavutil/log.h' file not found
    #include <libavutil/log.h>
            ^~~~~~~~~~~~~~~~~
    1 error generated.
    

    需要设置环境变量

    export PKG_CONFIG_PATH=/usr/local/ffmpeg/lib/pkgconfig
    

    理论上 pkgconfig 目录下包含libavutil.pc 文件设置了上面环境变量就可以编译成功,但是仍然报错,目前正在查找问题所在?

    可以通过以下命令解决

    clang -g -o ffmpeg_log ffmpeg_log.c `pkg-config --libs --cflags libavutil`
    
    2. 文件删除与重命名

    需引用头文件

    #include <libavformat/avformat.h>
    

    文件重命名

    // 222.txt 修改成 111.txt
       int ret = avpriv_io_move("222.txt", "111.txt");
    

    删除文件

       ret = avpriv_io_delete("./mytest.txt");
    
    3. 操作文件目录

    文件操作的两个重要的结构体

    • AVIODirContext 操作目录的上下文
    • AVIODirEntry 目录项。用于存放文件名,文件大小等信息

    文件操作相关函数

    • avio_open_dir() 打开目录,将目录信息存放在AVIODirContext上下文中
    int avio_open_dir(AVIODirContext **s, const char *url, AVDictionary **options);
    
    • avio_read_dir() 读取目录上下文的entey信息
    int avio_read_dir(AVIODirContext *s, AVIODirEntry **next);
    
    • avio_close_dir() 关闭目录上下文
    int avio_close_dir(AVIODirContext **s);
    
    • avio_free_directory_entry() 释放AVIODirEntry
    void avio_free_directory_entry(AVIODirEntry **entry);
    

    相关文章

      网友评论

          本文标题:FFmpeg文件操作

          本文链接:https://www.haomeiwen.com/subject/ukygrctx.html