From 16f1704d48696321b7df1991624fe13005f51df1 Mon Sep 17 00:00:00 2001 From: q191201771 <191201771@qq.com> Date: Tue, 26 Jul 2022 20:02:49 +0800 Subject: [PATCH] =?UTF-8?q?[patch]=20pr=E8=A1=A5=E5=85=85=EF=BC=8Crefactor?= =?UTF-8?q?=EF=BC=8CInit=E4=BF=9D=E6=8C=81=E5=8E=9F=E6=A0=B7=EF=BC=8C?= =?UTF-8?q?=E4=B8=8D=E8=A6=81=E4=BC=A0=E5=85=A5Feed=20#205?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/remux/avpacket2rtmp.go | 73 ++++++++++++-------------------------- 1 file changed, 22 insertions(+), 51 deletions(-) diff --git a/pkg/remux/avpacket2rtmp.go b/pkg/remux/avpacket2rtmp.go index e3212c9..4480203 100644 --- a/pkg/remux/avpacket2rtmp.go +++ b/pkg/remux/avpacket2rtmp.go @@ -100,64 +100,35 @@ func (r *AvPacket2RtmpRemuxer) InitWithAvConfig(asc, vps, sps, pps []byte) { return } - if !AvPacket2RtmpRemuxerAddSpsPps2KeyFrameFlag { - if r.audioType != base.AvPacketPtUnknown { - bAsh, err = aac.MakeAudioDataSeqHeaderWithAsc(asc) + if r.audioType != base.AvPacketPtUnknown { + bAsh, err = aac.MakeAudioDataSeqHeaderWithAsc(asc) + if err != nil { + Log.Errorf("build aac seq header failed. err=%+v", err) + return + } + } + if r.videoType != base.AvPacketPtUnknown { + if r.videoType == base.AvPacketPtHevc { + bVsh, err = hevc.BuildSeqHeaderFromVpsSpsPps(vps, sps, pps) if err != nil { - Log.Errorf("build aac seq header failed. err=%+v", err) + Log.Errorf("build hevc seq header failed. err=%+v", err) return } - } - if r.videoType != base.AvPacketPtUnknown { - if r.videoType == base.AvPacketPtHevc { - bVsh, err = hevc.BuildSeqHeaderFromVpsSpsPps(vps, sps, pps) - if err != nil { - Log.Errorf("build hevc seq header failed. err=%+v", err) - return - } - } else { - bVsh, err = avc.BuildSeqHeaderFromSpsPps(sps, pps) - if err != nil { - Log.Errorf("build avc seq header failed. err=%+v", err) - return - } + } else { + bVsh, err = avc.BuildSeqHeaderFromSpsPps(sps, pps) + if err != nil { + Log.Errorf("build avc seq header failed. err=%+v", err) + return } } + } - if r.audioType != base.AvPacketPtUnknown { - r.emitRtmpAvMsg(true, bAsh, 0) - } - - if r.videoType != base.AvPacketPtUnknown { - r.emitRtmpAvMsg(false, bVsh, 0) - } - } else { - // 通过FeedAvPacket 传入 合并到关键帧 - if r.audioType != base.AvPacketPtUnknown { - r.FeedAvPacket(base.AvPacket{ - PayloadType: base.AvPacketPtAac, - Payload: asc, - }) - } - if r.videoType != base.AvPacketPtUnknown { - if r.videoType == base.AvPacketPtHevc { - payload, err := hevc.BuildVpsSpsPps2Annexb(vps, sps, pps) - if err != nil { - Log.Errorf("build hevc seq header failed. err=%+v", err) - return - } - r.FeedAvPacket(base.AvPacket{ - PayloadType: base.AvPacketPtHevc, - Payload: payload, - }) - } else { - r.FeedAvPacket(base.AvPacket{ - PayloadType: base.AvPacketPtAvc, - Payload: avc.BuildSpsPps2Annexb(sps, pps), - }) - } - } + if r.audioType != base.AvPacketPtUnknown { + r.emitRtmpAvMsg(true, bAsh, 0) + } + if r.videoType != base.AvPacketPtUnknown { + r.emitRtmpAvMsg(false, bVsh, 0) } }