ffmpeg 学习

1 AVCodecContext和AVCodec

AVCodec 是描述 codec。(名字 , 类型 ,在编码组里面的编号)

AVCodecContext 是 描述
1 使用codec的参数细节。例如:采样率,通道数
2 以及系统如何 使用codec 例如:编码时的线程数,时间基线
AVCodecContext和AVCodec

2 AVFrame 和 AVPacket

AVPacket: 存储解码前数据(编码数据:H264/AAC等)
AVFrame: 存储解码后数据(像素数据:YUV/RGB/PCM等)
FFMPEG结构体分析:AVFrame
FFMPEG结构体分析:AVPacket

frame里面的linesize
比如视频帧,由于有些设备需要处理内存对齐的问题, 比如638x480分辨率的YUV420P数据,如果要16字节对齐,此时在内存存储的时候是 [0, 637]Y分量的第一行; [640, 1,277]是第二行, 也就是说 [638,639]这里的数据是padding(占位补齐16字节对齐用的), 此时linesize[0]=640, 代表一行Y实际占用640字节。

3 AVStream

AVStream 是描述 stream
比如指定 (音频 or 视频 等) 视频/音频流长度 AVCodecContext *codec 元数据
FFMPEG结构体分析:AVStream

4 AVIOContext

AVIOContext 描述 读写文件的操作
涉及到 数据的缓存 读写指针 缓存结束 URLContext结构体

URLContext结构体 涉及到 各种协议 rtp,rtmp,file等
FFMPEG结构体分析:AVIOContext

5 ffmpeg 支持的codec

ffmpeg5.0在编译时自动生成编解码数组。保存在libavcodec\codec_list.c中,该文件在编译之后才会看到。
之前的保存在 libavcodec\codec_desc.c
ffmpeg 注册编解码器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值