FFmpeg AVPacket剖析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FFmpeg AVPacket剖析相关的知识,希望对你有一定的参考价值。

传递给avcodec_send_packet函数的AVPacket结构体data中的数据前面是
00 00 00 01开头,说明是NALU格式的数据

数据简单如下:
00 00 00 01 61 e1 40 01 58 2b fb 22 ff 29 7b 3f 6f 67 2f 29 fa 25 53 68 78 46 b1

在调用avcodec_send_packet函数的时候打印错误如下:
I:2018-01-06 15:06:05 ms:887:nal_unit_type: 1, nal_ref_idc: 3
I:2018-01-06 15:06:05 ms:888:non-existing PPS 0 referenced
I:2018-01-06 15:06:05 ms:888:decode_slice_header error
I:2018-01-06 15:06:05 ms:888:no frame!


当数据如下,可以正确的解析出一帧图像

00 00 00 01 67 42 00 2a 96 35 40 f0 04 4f cb 37 01 01 01 40 00 01 c2 00 00 57 e4  
01 00 00 00 01 68 ce 3c 80 00 00 00 01 06 e5 01 ef 80 00 00 03 00 00 00 01 65 b8  
00 00 52 58 00 00 27 f5 d4 48 7e b4 41 07 24 60 95 2c 92 37 68 75 63 4c ad 3f b1 

很显然,67是SPS,68是PPS,然后65是关键帧,开始出来图像

以上是关于FFmpeg AVPacket剖析的主要内容,如果未能解决你的问题,请参考以下文章

FFmpeg5.0源码阅读——AVPacket

FFmpeg AVPacket详解

FFmpeg: AVPacket 结构体分析

FFmpeg总结AV系列结构体之AVPacket

FFmpeg总结AV系列结构体之AVPacket

ffmpeg中AVPacket与AVFrame中数据的传递与释放