[feat] 所以输入流都支持叠加静音音频

pull/241/head
q191201771 2 years ago
parent b609e443bb
commit 1ed98b4f11

@ -43,19 +43,19 @@ import (
// | group.inSessionUniqueKey() | Y | Y |
// ---------------------------------------------------------------------------------------------------------------------
// 输入流到输出流的转换路径关系
// 输入流到输出流的转换路径关系一共6种输入
//
// customizePubSession.WithOnRtmpMsg -> OnReadRtmpAvMsg(enter Lock) -> [dummyAudioFilter] -> broadcastByRtmpMsg -> rtmp, http-flv
// -> rtmp2RtspRemuxer -> rtsp
// -> rtmp2MpegtsRemuxer -> ts, hls
// rtmpPullSession.WithOnReadRtmpAvMsg ->
// rtmpPubSession.SetPubSessionObserver ->
// customizePubSession.WithOnRtmpMsg -> OnReadRtmpAvMsg(enter Lock) -> [dummyAudioFilter] -> broadcastByRtmpMsg -> rtmp, http-flv
// -> rtmp2RtspRemuxer -> rtsp
// -> rtmp2MpegtsRemuxer -> ts, hls
//
// ---------------------------------------------------------------------------------------------------------------------
// rtmpPubSession和customizePubSession一样省略
//
// ---------------------------------------------------------------------------------------------------------------------
// rtspPubSession -> OnRtpPacket(enter Lock) -> rtsp
// -> OnAvPacket(enter Lock) -> rtsp2RtmpRemuxer -> onRtmpMsgFromRemux -> [dummyAudioFilter] -> broadcastByRtmpMsg -> rtmp, http-flv
// -> rtmp2MpegtsRemuxer -> ts, hls
// rtspPullSession ->
// rtspPubSession -> OnRtpPacket(enter Lock) -> rtsp
// -> OnAvPacket(enter Lock) -> rtsp2RtmpRemuxer -> onRtmpMsgFromRemux -> [dummyAudioFilter] -> broadcastByRtmpMsg -> rtmp, http-flv
// -> rtmp2MpegtsRemuxer -> ts, hls
//
// ---------------------------------------------------------------------------------------------------------------------
// psPubSession -> OnAvPacketFromPsPubSession(enter Lock) -> rtsp2RtmpRemuxer -> onRtmpMsgFromRemux -> [dummyAudioFilter] -> broadcastByRtmpMsg -> ...
@ -89,7 +89,7 @@ type Group struct {
rtmp2MpegtsRemuxer *remux.Rtmp2MpegtsRemuxer
// pull
pullProxy *pullProxy
// rtmp pub使用
// rtmp pub使用 TODO(chef): [doc] 更新这个注释,是共同使用 202210
dummyAudioFilter *remux.DummyAudioFilter
// ps pub使用
psPubTimeoutSec uint32 // 超时时间

@ -41,10 +41,6 @@ func (group *Group) AddCustomizePubSession(streamName string) (ICustomizePubSess
group.customizePubSession.WithOnRtmpMsg(group.OnReadRtmpAvMsg)
if group.config.RtmpConfig.AddDummyAudioEnable {
group.dummyAudioFilter = remux.NewDummyAudioFilter(group.UniqueKey, group.config.RtmpConfig.AddDummyAudioWaitAudioMs, group.broadcastByRtmpMsg)
}
return group.customizePubSession, nil
}
@ -72,10 +68,6 @@ func (group *Group) AddRtmpPubSession(session *rtmp.ServerSession) error {
session.SetPubSessionObserver(group)
if group.config.RtmpConfig.AddDummyAudioEnable {
group.dummyAudioFilter = remux.NewDummyAudioFilter(group.UniqueKey, group.config.RtmpConfig.AddDummyAudioWaitAudioMs, group.broadcastByRtmpMsg)
}
return nil
}
@ -97,10 +89,6 @@ func (group *Group) AddRtspPubSession(session *rtsp.PubSession) error {
group.rtsp2RtmpRemuxer = remux.NewAvPacket2RtmpRemuxer().WithOnRtmpMsg(group.onRtmpMsgFromRemux)
session.SetObserver(group)
//if group.config.RtmpConfig.AddDummyAudioEnable {
// group.dummyAudioFilter = remux.NewDummyAudioFilter(group.UniqueKey, group.config.RtmpConfig.AddDummyAudioWaitAudioMs, )
//}
return nil
}
@ -366,6 +354,10 @@ func (group *Group) addIn() {
group.rtmp2MpegtsRemuxer = remux.NewRtmp2MpegtsRemuxer(group)
}
if group.config.RtmpConfig.AddDummyAudioEnable {
group.dummyAudioFilter = remux.NewDummyAudioFilter(group.UniqueKey, group.config.RtmpConfig.AddDummyAudioWaitAudioMs, group.broadcastByRtmpMsg)
}
group.startPushIfNeeded()
group.startHlsIfNeeded()
group.startRecordFlvIfNeeded(now)

Loading…
Cancel
Save