Ell*_*llo 7 video ffmpeg video-streaming h.264 x264
我使用FFMpeg的api将图像编码为H.264流,代码就像这个编码代码.当我调用该函数时,avcodec_encode_video2我得到了一个AVPacket的数据,然后我将它保存到文件中.我使用几个图像来获取几个文件进行测试.根据起始码00 00 00 01或00 00 01,我发现第一和第二文件的数据都包含几个H.264 NAL UINT.但是从第三个文件开始,我找不到startcode.喜欢跟随图像.

我感到困惑.根据FFMpeg的代码,我认为一个AVPacket的数据应该包含至少一个NAL Uint,但结果是意外的.这是否意味着一个NAL Uint可能被划分为两个AVPackets的数据?AVPacket和H.264 NAL Uint之间的关系是什么?
经过一番测试,我发现这只是我的愚蠢错误。
我在 Qt 中获取了 avpkt 和setRawDataQByteArray,然后将字节数组保存到文件中。在保存之前,我打电话av_packet_unref重置了avpkt。我以为这setRawData会复制 avpkt 的数据,但实际上 QByteArray 只包含数据指针。所以一个AVPacket的数据至少包含一个完整的NAL Uint,这是正确的。
| 归档时间: |
|
| 查看次数: |
803 次 |
| 最近记录: |