FFmpeg 初级开发内容
ffmpeg primary
FFmpeg 日志的使用及目录操作
开启日志
#include <libavutil/log.h>
设置日志级别
avi_log_set_level(AV_LOG_DEBUG)
常见日志级别:
AV_LOG_ERROR
AV_LOG_WARNING
AV_LOG_INFO
AV_LOG_DEBUGav_log(NULL,AV_LOG_INFO,”…%s\n”, op)
操作文件
#include <libavformat/avformat.h>
指定库文件位置: pkg-config –libs libavformat删除
avpriv_io_delete(“1.txt”);重命名
avpriv_io_move(“111.txt”, “222.txt”);
操作目录
#include <libavformat/avformat.h>
打开目录
avio_open_dir()读
avio_read_dir()关闭
avio_close_dir()重要结构体
操作目录的上下文 AVIODirContext
目录项 AVIODirEntry
示例
1 |
|
FFmpeg 基本概念以及常用结构体
概念
多媒体文件本质是一个容器
在容器里有很多流(Stream/Track)
每种流是由不同的编码器编码的
从流中读取的数据,称为包
在一个包中包含着一个或多个帧,包是压缩后的数据常用结构体
AVFormatContext
AVStream
AVPacketFFmpeg 操作流数据的基本步骤
解复用 –> 获取流 –> 读取数据包 –> 操作 –> 释放资源
对复用/解复用及流操作的各种实践
- 打印音视频信息(meta)
FFmpeg 代码结构
FFmpeg 初级开发内容