mirror of
https://github.com/Monibuca/plugin-rtmp.git
synced 2026-04-22 22:57:04 +08:00
去掉releaseStream的回复
This commit is contained in:
@@ -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的流
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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{
|
||||
|
||||
Reference in New Issue
Block a user