GB28181接入多slice编码流的处理逻辑
1、前言
在与各类厂商的对接中,碰到过很多种格式的视频流,有正常的,有标准理解不一样而导致流格式有所差异的,也有完全不符合标准的。
本文将介绍视频流是多slice编码时,视频流的处理流程。
2、正常流的处理逻辑
- 收到rtp包,解析成ps包
- 解析ps包,获取音视频的码流数据
- 将视频流(一般是H264、H265)切成帧
- 将切分好的帧数据进行rtmp、rtsp对应的格式进行封装
2.1 以封装flv为例
3、 多slice编码流的处理逻辑
多silice编码的流与正常流的处理逻辑大致相同,但是需要注意的地方是,由于多slice编码的一个帧是由多个slice nal组成的,切帧的时候,需要将同一帧的slice封装在一起。
3.1 错误的处理逻辑,以flv为例
这里将帧内的slice nal单独封装成了flv里的video tag,会导致rtmp,http-flv协议播放视频的时候花屏
3.2 正确的处理逻辑