Compare commits

...

4 Commits
v4 ... aler9

Author SHA1 Message Date
dexter
fbc24a1253 Merge pull request #21 from ziminghua/aler9
增加SPS和PPS的重新发送
2022-03-02 21:07:26 +08:00
訾明华
e19b9a34ba 增加SPS和PPS的重新发送
当SPS和PPS发生变更时,每次I帧都重新发送SPS和PPS,组成IDR帧,用于客户端修正数据
2022-03-02 20:56:21 +08:00
dexter
e6d0489d9c Merge pull request #20 from ziminghua/aler9
解决发布超时后,重连RTSP,无法播放的BUG
2022-02-22 21:17:24 +08:00
訾明华
68d0d9aa08 解决发布超时后,重连RTSP,无法播放的BUG
清空rtsp.processFunc数据,避免接收到流时,指向旧的track,导致新stream无法播放
2022-02-22 21:15:35 +08:00
2 changed files with 9 additions and 0 deletions

View File

@@ -42,6 +42,7 @@ func (rtsp *RTSPClient) PullStream(streamPath string, rtspUrl string) (err error
time.Sleep(time.Second * 5)
}
if rtsp.IsTimeout {
rtsp.processFunc = nil
go rtsp.PullStream(streamPath, rtspUrl)
}
}()

View File

@@ -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 {