From e19b9a34bacfa6e99364d84d61ebb4d16e51b455 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A8=BE=E6=98=8E=E5=8D=8E?= <565209960@qq.com> Date: Wed, 2 Mar 2022 20:56:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0SPS=E5=92=8CPPS=E7=9A=84?= =?UTF-8?q?=E9=87=8D=E6=96=B0=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 当SPS和PPS发生变更时,每次I帧都重新发送SPS和PPS,组成IDR帧,用于客户端修正数据 --- server.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server.go b/server.go index 5172541..64bb195 100644 --- a/server.go +++ b/server.go @@ -97,6 +97,14 @@ func (sh *RTSPServer) OnDescribe(ctx *gortsplib.ServerHandlerOnDescribeCtx) (*ba } var st uint32 onVideo := func(ts uint32, pack *engine.VideoPack) { + if pack.IDR { + for _, nalu := range sub.vt.ExtraData.NALUs { + for _, packet := range vpacketer.Packetize(nalu, 0) { + buf, _ := packet.Marshal() + stream.WritePacketRTP(trackId, buf) + } + } + } for i, nalu := range pack.NALUs { var samples uint32 if i == len(pack.NALUs)-1 {