FFmpeg-解码264文件

本文介绍了如何使用FFmpeg的解码接口读取H.264视频文件。首先通过fread读取文件并寻找起始码来截取NALU,接着确保IDR帧作为解码单元,缓存sps、pps和I帧。P帧单独处理,解码后可保存为YUV或进行颜色转换。同时,文中提及的NalDecode代码有助于理解RTP打包过程。

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


以前读文件一直使用ffmpeg的接口可以直接读取视频文件和网络流,这次有需求做一个测试,不使用FFmpeg接口,只使用它的decode接口;


1、fread()读取264视频文件,关键点是查找起始码,两段起始码直接为一个NALU,因此需要做一些附加的判断截取工作,网上有个NalDecode代码,可以参考;


2、在送解码之前,必须要保证是IDR为一个单元再送解码器,否则解码会失败,即得到的nalu之后需要判断Nual type,然后把sps、pps、I帧做一个缓存单元;


3、P帧单独作为一个单元即可;


4、然后解码成功,写YUV文件,或者转为RGB、或者送编码器进行编码;


5、NalDecode的代码网上有的,还可以学习到如何打包成RTP。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值