From 790c2f6a23714d14818b0a34fac195f5f1349e87 Mon Sep 17 00:00:00 2001 From: dexter <178529795@qq.com> Date: Fri, 3 Mar 2023 22:05:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E6=8E=89releaseStream=E7=9A=84?= =?UTF-8?q?=E5=9B=9E=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- client.go | 1 - media.go | 22 ++-------------------- server.go | 12 ++++++------ 4 files changed, 9 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index f4690d1..36ae52b 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ rtmp://localhost/live/test 例如通过ffmpeg向m7s进行推流 ```bash -ffmpeg -i [视频源] -f flv rtmp://localhost/live/test +ffmpeg -i [视频源] -c:v h264 -c:a aac -f flv rtmp://localhost/live/test ``` 会在m7s内部形成一个名为live/test的流 diff --git a/client.go b/client.go index 0983efa..0527f9a 100644 --- a/client.go +++ b/client.go @@ -112,7 +112,6 @@ func (pusher *RTMPPusher) Connect() (err error) { func (pusher *RTMPPusher) Push() error { pusher.SendMessage(RTMP_MSG_AMF0_COMMAND, &CommandMessage{"createStream", 2}) - defer pusher.Stop() for { msg, err := pusher.RecvMessage() if err != nil { diff --git a/media.go b/media.go index 4c41652..3adcf6f 100644 --- a/media.go +++ b/media.go @@ -121,20 +121,6 @@ type RTMPReceiver struct { NetStream } -func (r *RTMPReceiver) OnEvent(event any) { - r.Publisher.OnEvent(event) - switch event.(type) { - case IPublisher: - r.Publisher.OnEvent(event) - if r.AudioTrack != nil { - r.AudioTrack.SetStuff(r.bytePool) - } - if r.VideoTrack != nil { - r.VideoTrack.SetStuff(r.bytePool) - } - } -} - func (r *RTMPReceiver) Response(tid uint64, code, level string) error { m := new(ResponsePublishMessage) m.CommandName = Response_OnStatus @@ -150,9 +136,7 @@ func (r *RTMPReceiver) Response(tid uint64, code, level string) error { func (r *RTMPReceiver) ReceiveAudio(msg *Chunk) { if r.AudioTrack == nil { - if r.WriteAVCCAudio(0, &msg.AVData); r.AudioTrack != nil { - r.AudioTrack.SetStuff(r.bytePool) - } + r.WriteAVCCAudio(0, &msg.AVData, r.bytePool) return } r.AudioTrack.WriteAVCC(msg.ExtendTimestamp, &msg.AVData) @@ -160,9 +144,7 @@ func (r *RTMPReceiver) ReceiveAudio(msg *Chunk) { func (r *RTMPReceiver) ReceiveVideo(msg *Chunk) { if r.VideoTrack == nil { - if r.WriteAVCCVideo(0, &msg.AVData); r.VideoTrack != nil { - r.VideoTrack.SetStuff(r.bytePool) - } + r.WriteAVCCVideo(0, &msg.AVData, r.bytePool) return } r.VideoTrack.WriteAVCC(msg.ExtendTimestamp, &msg.AVData) diff --git a/server.go b/server.go index 8942a5c..e16390d 100644 --- a/server.go +++ b/server.go @@ -102,19 +102,19 @@ func (config *RTMPConfig) ServeTCP(conn *net.TCPConn) { delete(senders, cmd.StreamId) } case *ReleaseStreamMessage: - m := &CommandMessage{ - CommandName: "releaseStream_error", - TransactionId: cmd.TransactionId, - } + // m := &CommandMessage{ + // CommandName: "releaseStream_error", + // TransactionId: cmd.TransactionId, + // } s := engine.Streams.Get(nc.appName + "/" + cmd.StreamName) if s != nil && s.Publisher != nil { if p, ok := s.Publisher.(*RTMPReceiver); ok { - m.CommandName = "releaseStream_result" + // m.CommandName = "releaseStream_result" p.Stop() delete(receivers, p.StreamID) } } - err = nc.SendMessage(RTMP_MSG_AMF0_COMMAND, m) + // err = nc.SendMessage(RTMP_MSG_AMF0_COMMAND, m) case *PublishMessage: receiver := &RTMPReceiver{ NetStream: NetStream{