OBS如何支持直播多人连麦和BGM?比如SRS 4.0的多人连麦、多平台直播、多场景切换的在线发布会方案如何实现的?
废话不多说,直接上干货。我录制了3分钟的视频教程,使用起来很简单,3分钟就讲清楚了:
OBS-001-OBS连麦和多人连麦
Timmerse需要使用特殊版本,可以扫视频中的二维码加群获取。
一图胜千言,就是实现下图的能力,是用的OBS推的直播:
Why
为什么是OBS连麦,而不是各个直播平台的连麦,或者不是会议SaaS的连麦功能?
首先,OBS的用户还是很多的,大多数都是做直播的,单个主播做直播的方式。在娱乐直播、秀场、教育、活动、现场、电商、游戏等等,各种地方都可以用OBS做直播。
问题是为什么用OBS做直播?OBS和核心能力是直播推流吗?
不是!
OBS的核心能力是相对丰富的导播能力。这里说的相对,是对比起专业的广电级别的导播台来说,OBS肯定不行的。问题在于我们也不需要那么专业的导播台,对不对?现在直播是个大众能力,每个人都可以用直播,每个人未来也都会做直播,那每个人买个导播台么?!没必要啊。
导播能力到底指什么?比如场景切换,如下图所示:
左下角是Scenes(场景),直播活动一定有预告的,比如SRS每周六晚上20点直播,那不能等到20点了才能推流对不对?可能19:50就开始准备和推流,大约5到10分钟放预告,也可以放一些宣传片,或者活动的说明之类的,关键得有BGM。所以我定义了两个Scenes:
- WeeklyBGM:直播预告,这是会带BGM(背景音乐)的,一般我放的都是Victor(大师兄推荐的)。而且这时候是不能采集麦克风的,可能还不太方便采集,大家在调试之类的。
- WeeklyLive:正式直播,可以看到采集了连麦的窗口,在临时围观群二维码下面就是一个多人连麦的头像列表,这个是用响总推荐的Timmerse实现(可以用其他的方案,详细的我们在复刻视频中会说明)。
现在到了20点了,只需要点下两个场景中间的Transition
按钮,画面就会平滑的切换过去,而且可以设置切换时间之类的。这个是OBS的核心能力之一:多场景导播。
在直播中,有时候我们需要临时调整下直播间设置,比如临时需要看下嘉宾的作品,那可以先讨论其他话题,同时工作人员创建一个新场景,等准备好了就可以切换到新场景了。这个是我经常使用的功能,多方便啊!
OBS就这个场景切换能力么?还有非常多的源,比如视频文件、窗口、子场景、文本、VLC源、图片、图片集、视频设备、音频设备该有的都有了。而且这些上面都可以加滤镜。
滤镜是超级牛逼的功能啊。比如一个困扰就是电脑的麦克风会有风扇的噪声,这时候就可以用RNN降噪,只保留了人声。比如可以绿幕抠图,对的,OBS也可以绿幕抠图。比如可以裁剪窗口的大小,只显示某一部分,比如我经常把OBS自己的底部的状态条给抓进视频流,在直播间可以看到实时的直播码率。
这么好的一个直播神器,还是开源的,有非常丰富的插件,超级多的插件。有必要重复造个更圆的轮子么?有可能有必要重复造一个,但更圆就真的很难做到了。OBS是非常非常久的一个开源项目,33K star,8年时间,非常活跃,如下图:
好了,为什么要用OBS说清楚了,为什么要用OBS做连麦呢?因为有时候直播还是需要连麦的。而目前能连麦的直播,大多都是平台自己实现的,比如视频号连麦后,没法再推到B站上。或者用腾讯会议连麦后可推到其他直播平台,但是又用不了OBS的这些能力,也不能往多平台推。也就是目前的直播连麦,都没法在OBS中用起来,得自己倒腾,这也是为什么大家会很好奇SRS怎么做的。
但是,OBS还没有连麦能力,所以我们就想出一个方案,相对比较简单实现OBS的直播连麦。目标如下:
- 用OBS做直播,使用OBS强大的导播、丰富的功能和滤镜、大家很熟悉的工具。
- 要有BGM,要有连麦,要有混音,还要对电脑风扇的声音智能降噪,声音不能翻车。
- 连麦的嘉宾,最好能有视频头像,如果业务上只需要声音也行,能降低带宽消耗。
没有团队保障、成本不能高、还要直播多人连麦,要不翻车,还挺难的,哈哈哈。
PS: 由于使用OBS推流,所以多平台直播也是可以做的,这是直播中比较常见的功能,当然我们也有个开源复刻会给大家分享,参考 #2676
How
我会详细分享下具体的实现和Demo,当然也会安排答疑。
为了避免视频中的图片不清晰,或者更新不及时,我在这里把大概的技术方案描述下,在视频中会详细讲解。
总体的部署架构图,一个主播和一台电脑,就可以完成一次线上发布会了。当然需要一些辅助工具,包括SRS、FFmpeg、视频号账号、B站账号、连麦工具(Timmerse或腾讯会议或其他)。
详细架构图参考SRS 2021在线发布会技术方案
Air Pods
因为有直播和连麦,主播必须佩戴耳机,否则会造成各种声音问题。
主播的AirPods必须关闭入耳检测(Automatic In-Ear Detection),不然重新戴上耳机会导致Output切换,以至于直播可能没有声音。
Latency
直播连麦的延迟相对比较好测量,在用摄像头抓秒表后,播放每个环节,可以看到延迟对比。
每个环节都会增加一些延迟,最终到观众端总延迟大约在5~7秒左右。OBS采集(包括连麦)延迟大约800ms左右。OBS推流到本机SRS延迟大约200ms左右,包括编码和传输。FFmpeg转推云平台和播放,大约4秒左右延迟。
连麦延迟中,大约在800ms左右,包括RTC延迟和OBS采集延迟。RTC的延迟在200ms左右。OBS采集也是有延迟的,比如抓RTC的连麦窗口,大约会有600ms左右延迟。