From d2bca8d461c1800f9c146faf0813f6e8fe5450a5 Mon Sep 17 00:00:00 2001 From: Alexey Khit Date: Tue, 24 Jan 2023 17:47:26 +0300 Subject: [PATCH] Update processing HTTP-FLV without video or audio --- pkg/httpflv/httpflv.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/httpflv/httpflv.go b/pkg/httpflv/httpflv.go index f8a443fa..7c566838 100644 --- a/pkg/httpflv/httpflv.go +++ b/pkg/httpflv/httpflv.go @@ -128,8 +128,10 @@ func (c *Conn) Streams() ([]av.CodecData, error) { return []av.CodecData{video, audio}, nil } else if video != nil { c.videoIdx = 0 + c.audioIdx = -1 return []av.CodecData{video}, nil } else if audio != nil { + c.videoIdx = -1 c.audioIdx = 0 return []av.CodecData{audio}, nil } @@ -146,10 +148,12 @@ func (c *Conn) ReadPacket() (av.Packet, error) { switch tag.Type { case flvio.TAG_VIDEO: - if tag.AVCPacketType != flvio.AVC_NALU { + if c.videoIdx < 0 || tag.AVCPacketType != flvio.AVC_NALU { continue } + //log.Printf("[FLV] %v, len: %d, ts: %10d", h264.Types(tag.Data), len(tag.Data), flvio.TsToTime(ts)) + return av.Packet{ Idx: c.videoIdx, Data: tag.Data, @@ -159,7 +163,7 @@ func (c *Conn) ReadPacket() (av.Packet, error) { }, nil case flvio.TAG_AUDIO: - if tag.SoundFormat != flvio.SOUND_AAC || tag.AACPacketType != flvio.AAC_RAW { + if c.audioIdx < 0 || tag.SoundFormat != flvio.SOUND_AAC || tag.AACPacketType != flvio.AAC_RAW { continue }