FFmpeg日志的使用以及目录操作
日志级别
- AV_LOG_ERROR
- AV_LOG_WARNING
- AV_LOG_INFO
- AV_LOG_DEBUG
//导入文件
include <libavutil/log.h>
//日志级别
av_log_set_level(AV_LOG_DEBUG)
//打印日志
av_log(NULL, AV_LOG_INFO, "...%s\n", op)
介绍FFmpeg的基本概念以及常用结构体
libavcodec::提供一系列的编码器的实现
libavformat:实现在流协议,容器格式以及基本IO访问
libavutil:包括了hash器,解码器和各种工具函数
libavdevice:提供了访问捕获设备和回访设备的接口
libavfilter:提供了各种音视频的过滤器
libswresample:实现了混音和重采样
libswscale:实现了色彩转换和缩放的功能
对付用解复用以及流操作的各种实践
多媒体文件基本概念
- 多媒体文件其实是个容器
- 在容器里有很多(Stream/Track)
- 每种流是右不同编码器编码
- 从流中读出的数据称之为包
- 在一个包中包含着一个或多个帧
几个重要的结构体
- AVFormatContext
- AVStream
- AVPacket
FFmpeg操作流数据的基本步骤
- 容器打开:解复用
- 获取流
- 读取数据包
- 释放资源
实战 打印音视频信息
API有哪些
- av_reginster_all() 必须的
- avformat_open_input() / avformat_close_input() 打开和关闭多媒体文件
- av_dump_format() 多媒体文件信息