FFmpeg 学习:FFmpeg 学习整理总结

本文详细梳理了FFmpeg播放视频的基本流程,包括Container、Stream、Packet、Frame和Codec的概念,以及AVCodec、AVCodecContext、AVFrame、AVFormatContext、AVPacket和AVStream等关键结构体及其方法。同时,提供了FFmpeg学习资源和音视频开发的相关链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、FFmpeg 播放视频的基本流程整理

播放流程: video.avi(Container) -> 打开得到 Video_Stream -> 读取Packet -> 解析到 Frame -> 显示Frame。

  • Container:在音视频中的容器,一般指的是一种特定的文件格式(如 AVI/QT ),里面指明了所包含的音视频,字幕等相关信息。

  • Stream:媒体流,指时间轴上的一段连续数据,如一段声音、视频或字幕数据。

  • Packet:Stream中的Raw数据,包含了可以被解码成方便我们最后在应用程序中操作的帧的原始数据。

  • Frame:Stream中的一个数据单元。

  • Codec:编解码器(Code 和 Decode),如 Divx和 MP3,以帧为单位实现压缩数据和原始数据之间的相互转换。

二、FFmpeg 各个结构体及相关方法流程整理

1. AVCodec

AVCodec -- 编解码器,采用链表维护,每一个都有其对应的名字、类型、CodecID和对数据进行处理的编解码函数指针。

  • avcodec_find_decoder/avcodec_find_encoder :根据给定的codec id或解码器名称从系统中搜寻并返回一个AVCodec结构的指针

  • avcodec_alloc_context3:根据 AVCodec 分配合适的 AVCodecContext

  • avcodec_open/avcodec_open2/avcodec_close :根据给定的 AVCodec 打开对应的Codec,并初始化 AVCodecContext/ 关闭Co

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值