FFmpeg初级开发内容

FFmpeg代码结构

在这里插入图片描述

FFmpeg日志系统

在这里插入图片描述

FFmpeg对文件与目录操作

  • 文件的删除与重命名
- 删除
avpriv_io_delete()
- 重命名
avpriv_io_move()

在这里插入图片描述

  • 操作目录重要函数
- 打开文件
avio_open_dir()
- 读取文件
avio_read_dir()
- 关闭文件
avio_close_dir()

- 结构体
AVIODirContext
操作目录的上下文
AVIODirEntry
目录项,用于存放文件名,文件大小等信息
  • 代码示例在这里插入图片描述

多媒体文件的基本概念

  • 几个重要的结构体
- 存放流的上下文
AVFOrmatContext
- 每个流
AVStream
- 每个包
AVPacket 

ffmepg操作流数据的基本步骤

在这里插入图片描述

  • 打印音/视频信息
- 将ffmpeg中所定义的一些编解码库,协议注册到程序里来,4.0版本后的ffmpeg不需要显式调用该函数了,会自动调用
av_register_all()
- 把媒体中的流信息放入AVFormatContext中便于读取
avformat_open_input()/avformat_close_input()
- 将多媒体文件中的mat信息打印出来,读取AVFormatContext信息
av_dump_format()
  • 代码
#include <libavutil/log.h>
#include <libavformat/avformat.h>

int main(){
        int ret;
        AVFormatContext *fmt_ctx = NULL;//格式上下文

        av_log_set_level(AV_LOG_INFO);

        //av_register_all();4.0版本后就不需要显式调用,ffmpeg会自动调用

        ret = avformat_open_input(&fmt_ctx, "./test.mp4", NULL, NULL);//媒体流信息放入ctx中
        if (ret < 0) {
                av_log(NULL,AV_LOG_ERROR, "cant open file:%s\n", av_err2str(ret));
                return -1;
        }

        av_dump_format(fmt_ctx, 0, "./test.mp4", 0);//输出流信息
        avformat_close_input(&fmt_ctx);//关闭文件,不然容易内存泄漏

        return 0;
- 代码执行
![z](https://img-blog.csdnimg.cn/direct/1f7200ff3e0043e9ada0b96990cf9377.png)
# 搭建ffmpeg开发环境
  
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值