0

我正在通过对来自 IP 摄像机的视频片段进行解包来创建 H264 字节流。

我正在使用以下语法:

0x000001[SPS] 0x000001[PPS] 0x000001[I slice]

解码这个字节流后,我得到了一个半模糊的图像。我假设这是因为缺少 P 片

如何在 I 帧之后附加 P 帧以获得正确的视频帧?应该如下所示:

 0x000001[SPS] 0x000001[PPS] 0x000001[I slice] 0x000001[P] 0x000001[P]. . .  

提前致谢!

4

1 回答 1

0

你在做什么看起来是对的。.h264 文件包含原始 H.264 NAL 单元,由等于 0x000001 的起始码前缀分隔。即 ISO/IEC 14496-10 附件 B 中定义的字节流格式。标准规定“字节流中字节流 NAL 单元的顺序应遵循字节流 NAL 单元中包含的 NAL 单元的解码顺序” . 所以你可以只附加你的 P 帧,因为你应该从你的相机按解码顺序收到它们。

可能您的问题有不同的原因。您如何处理仿真预防字节?“一个等于 0x03 的字节,可能存在于 NAL 单元中。仿真防止字节的存在确保 NAL 单元中没有连续的字节对齐字节序列包含起始码前缀。”

因此 .h264 文件必须包含仿真预防字节。但是您的视频片段是否包含它们?

于 2018-04-20T09:49:05.000 回答