以前读文件一直使用ffmpeg的接口可以直接读取视频文件和网络流,这次有需求做一个测试,不使用FFmpeg接口,只使用它的decode接口;
1、fread()读取264视频文件,关键点是查找起始码,两段起始码直接为一个NALU,因此需要做一些附加的判断截取工作,网上有个NalDecode代码,可以参考;
2、在送解码之前,必须要保证是IDR为一个单元再送解码器,否则解码会失败,即得到的nalu之后需要判断Nual type,然后把sps、pps、I帧做一个缓存单元;
3、P帧单独作为一个单元即可;
4、然后解码成功,写YUV文件,或者转为RGB、或者送编码器进行编码;
5、NalDecode的代码网上有的,还可以学习到如何打包成RTP。
FFmpeg解码H.264文件步骤解析
本文介绍了如何使用FFmpeg的解码接口读取H.264视频文件。首先通过fread读取文件并寻找起始码来截取NALU,接着确保IDR帧作为解码单元,缓存sps、pps和I帧。P帧单独处理,解码后可保存为YUV或进行颜色转换。同时,文中提及的NalDecode代码有助于理解RTP打包过程。
1284

被折叠的 条评论
为什么被折叠?



