From a60267f608ceeef7b84eba0ae8b51cd05495cf4f Mon Sep 17 00:00:00 2001 From: langhuihui <178529795@qq.com> Date: Mon, 28 Jun 2021 21:49:53 +0800 Subject: [PATCH] =?UTF-8?q?rtmp=E6=8B=89=E6=B5=81=E6=92=AD=E6=94=BE?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=88=B3=E9=97=AE=E9=A2=98=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- netStream.go | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/netStream.go b/netStream.go index 28526b0..c53388f 100644 --- a/netStream.go +++ b/netStream.go @@ -152,18 +152,18 @@ func processRtmp(conn net.Conn) { err = nc.SendMessage(SEND_PLAY_RESPONSE_MESSAGE, newPlayResponseMessageData(nc.streamID, NetStream_Play_Reset, Level_Status)) err = nc.SendMessage(SEND_PLAY_RESPONSE_MESSAGE, newPlayResponseMessageData(nc.streamID, NetStream_Play_Start, Level_Status)) vt, at := subscriber.WaitVideoTrack(), subscriber.WaitAudioTrack() - var lastTimeStamp uint32 - var getDeltaTime func(uint32) uint32 - getDeltaTime = func(ts uint32) (t uint32) { - lastTimeStamp = ts + if vt != nil { + var lastTimeStamp uint32 + var getDeltaTime func(uint32) uint32 getDeltaTime = func(ts uint32) (t uint32) { - t = ts - lastTimeStamp lastTimeStamp = ts + getDeltaTime = func(ts uint32) (t uint32) { + t = ts - lastTimeStamp + lastTimeStamp = ts + return + } return } - return - } - if vt != nil { err = nc.SendMessage(SEND_FULL_VDIEO_MESSAGE, &AVPack{Payload: vt.ExtraData.Payload}) subscriber.OnVideo = func(pack engine.VideoPack) { err = nc.SendMessage(SEND_FULL_VDIEO_MESSAGE, &AVPack{Timestamp: 0, Payload: pack.Payload}) @@ -173,6 +173,17 @@ func processRtmp(conn net.Conn) { } } if at != nil { + var lastTimeStamp uint32 + var getDeltaTime func(uint32) uint32 + getDeltaTime = func(ts uint32) (t uint32) { + lastTimeStamp = ts + getDeltaTime = func(ts uint32) (t uint32) { + t = ts - lastTimeStamp + lastTimeStamp = ts + return + } + return + } subscriber.OnAudio = func(pack engine.AudioPack) { if at.CodecID == 10 { err = nc.SendMessage(SEND_FULL_AUDIO_MESSAGE, &AVPack{Payload: at.ExtraData})