去掉releaseStream的回复

This commit is contained in:
dexter
2023-03-03 22:05:08 +08:00
parent 70360518d4
commit 790c2f6a23
4 changed files with 9 additions and 28 deletions
+1 -1
View File
@@ -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的流
-1
View File
@@ -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 {
+2 -20
View File
@@ -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)
+6 -6
View File
@@ -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{