Fmpeg解码流程中10个经典数据结构

FFmpeg解码流程核心结构体

层级结构体所属头文件功能描述关联关系
协议层URLProtocollibavformat/url.h描述协议类型(如HTTP/RTMP),每个协议对应一个实例(如ff_librtmp_protocolURLContext调用,通过AVIOContext与解封装层交互
URLContextlibavformat/url.h存储协议操作的上下文(如网络连接状态、超时设置)关联具体的URLProtocol
AVIOContextlibavformat/avio.h提供读写接口(如avio_read),封装协议层数据流作为AVFormatContext的成员(pb字段)
解封装层AVInputFormat、AVInputFormatlibavformat/avformat.h描述输入、输出容器格式(如MP4对应ff_mp4_demuxerAVFormatContext引用(iformat字段)
AVFormatContextlibavformat/avformat.h全局管家,存储封装格式、流信息、协议上下文等包含AVStream数组、AVIOContextAVInputFormat
AVStreamlibavformat/avformat.h存储单路流的元信息(如时间基、帧率)关联AVCodecContext(通过codecpar字段)
解码层AVCodecContextlibavcodec/avcodec.h配置编解码参数(如视频分辨率、音频采样率)关联AVCodec(解码器实现)和AVStream(流信息)
AVCodeclibavcodec/avcodec.h描述编解码器(如H.264解码器avcodec_find_decoder(AV_CODEC_ID_H264)作为AVCodecContext的成员(codec字段)
数据存储AVPacketlibavcodec/packet.h存储压缩数据包(视频通常1帧/包,音频可能多帧/包)由解封装层生成(av_read_frame),输入解码器(avcodec_send_packet
AVFramelibavutil/frame.h存储原始数据帧(视频为YUV/RGB,音频为PCM)由解码器输出(avcodec_receive_frame),供渲染或后处理使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值