Support video-only streams if there is no audio in the inbound stream. (#401)

Closes #400
This commit is contained in:
Gabe Kangas
2020-12-02 00:19:55 -08:00
committed by GitHub
parent cdbfd89a0f
commit 0b66f3b79f
7 changed files with 28 additions and 5 deletions

View File

@@ -27,6 +27,7 @@ func setCurrentBroadcasterInfo(t flvio.Tag, remoteAddr string) {
AudioBitrate: int(data.AudioBitrate),
AudioCodec: getAudioCodec(data.AudioCodec),
Encoder: data.Encoder,
VideoOnly: data.AudioCodec == nil,
},
}

View File

@@ -70,6 +70,7 @@ func HandleConn(c *rtmp.Conn, nc net.Conn) {
if t.Type == flvio.TAG_AMF0 {
log.Tracef("%+v\n", t.DebugFields())
setCurrentBroadcasterInfo(t, nc.RemoteAddr().String())
_setStreamAsConnected()
}
}
@@ -98,7 +99,6 @@ func HandleConn(c *rtmp.Conn, nc net.Conn) {
}
_hasInboundRTMPConnection = true
_setStreamAsConnected()
_rtmpConnection = nc
f, err := os.OpenFile(pipePath, os.O_RDWR, os.ModeNamedPipe)

View File

@@ -30,6 +30,10 @@ func getInboundDetailsFromMetadata(metadata []interface{}) (models.RTMPStreamMet
}
func getAudioCodec(codec interface{}) string {
if codec == nil {
return "No audio"
}
var codecID float64
if assertedCodecID, ok := codec.(float64); ok {
codecID = assertedCodecID