多人线上K歌房的实现难点解析

原创
2018/05/07 13:45
阅读数 2.9K

在今年Facebook F8大会上,Facebook宣布了将在Instagram Direct上开放一对一与群组视频聊天功能,这种新功能可以帮助用户使用实时视频聊天来相互连接,即使是他们没能相聚在一起。毫无疑问,社交领域的一线平台开始越来越重视实时音视频技术在社交领域的应用。

不过,在Instagram正准备增加视频社交功能之前,我们国内的某款已上市社交应用,已经基于实时音视频基础能力,开始拓展新的玩法了。而且,据说上线后,立刻成为用户们正向体验的功能,用户活跃与留存双破新高。这个新功能就是“一起KTV”。

热门新功能如何玩?

在社交领域,有人是靠颜值上位,有人则是以声线取胜,“一起KTV”正是为后者准备的。具体场景及功能如下:

  • 房主建立房间后,开启KTV功能,上麦;

  • 房主在线点歌,歌曲与KTV歌房中常见MV一样,包括画面、字幕伴奏;

  • 观众可以申请上麦,进行点歌、演唱;

  • 上麦的观众在演唱时可自主调节伴奏与人声音量;

  • 房主可控制歌曲暂停、切歌。

我们可以通过下面这个视频,先来感受一下什么是一起KTV。

与直播秀场有什么差别?

你可能想问:听上去就是直播秀场,这有什么差别么?其实,两者之间在功能和体验都存在差别。

在功能方面如表格所示,秀场直播主播演唱时,观众可以文字参与评论、互动,也可以上麦。但观众上麦后只能聊天,不能上台演唱。而一起KTV的伴奏曲库存放于线上,任何观众都可以在线点歌、演唱。

从体验角度讲,秀场直播只是主播的个人秀。秀场相当于是主播的“独乐乐”。而一起KTV更接近线下KTV体验。每个人都可以点歌,都有机会演唱,是一种互动体验的升级。

实现一起KTV需要迈过的门槛

一起KTV与我们曾分享过的“赛事直播”场景很像,都是基于实时音视频技术的基本能力拓展而来的。从表面来看,一起KTV功能很简单,但其中存在一些难点:

歌曲控制同步

“一起KTV”强调的是要“一起”唱,主播可以邀请多个听众上麦,你方唱罢,我登场,每个人都有机会站在聚光灯下。

在这个过程中,“话筒”会按顺序传递给不同连麦观众,主播仍然可以控制歌曲的播放,如切歌、暂停等操作。但如果采用RTMP传输,网络延时较高。那么网络情况较好情况下,当主播暂停歌曲或切歌后,可能连麦演唱的观众在3~4秒后才会发现,或者歌曲已经开始,下一个演唱者还没能开唱。如果网络情况差,延迟可能会超过10秒。

高音质、高画质

每个站上台演唱的人都想展现自己真正的技术。如果无法以高质量音质传输,无疑会影响用户体验。同时,该场景下的MV画面相当于连麦中的视频画面,卡顿、模糊等问题同样存在。开发者如果希望通过自研实现,需要基于UDP协议进行传输,并在边缘节点的部署、主干网络拥塞、弱网传输等方面做出优化策略。

与此同时,如我们在《实时音视频中的低延时》中所说,高音质、高画质与低延时是处于天秤两端的变量,开发者除了要对网络传输进行优化,还需要尽可能优化编解码算法,降低音视频在端上的延时。

声网如何实现?

声网已经推出 一起KTV场景解决方案,开发者可以点击这里查看详细开发文档。我们的 一起KTV场景解决方案实现逻辑如上图所示:

  • 房主开启“一起KTV”功能后成为演唱者;

  • 房主端从第三方在线曲库读取MV歌曲数据;

  • 观众上麦申请被房主通过后,可在线点歌,并开始排麦;

  • 通过声网SDK,房主的歌声与MV伴奏在本地经过混音、编码,基于私有UDP协议传输至Agora SD-RTN™;

  • Agora SD-RTN™通过私有UDP协议将房主K歌歌声与MV画面传输给观众;

  • 轮到播放上麦观众所点的歌时,观众成为演唱者,除了没有歌曲控制权限外,歌曲演唱、混音、编码、传输流程与房主一致。

声网Agora 一起KTV场景解决方案可以为开发者的优势包括:

高质量的音视频体验

在音频方面,声网SDK提供了自研的音视频编解码技术,支持192kbps 44.1KHz采样的高音质音频,如线下KTV一样,真实展现演唱者的歌声。在视频方面,声网SDK支持720p、1080p高清画质传输,保证MV画面在客户端上的清晰度。

低延时的音画同步

在声网Agora SD-RTN™实时通讯网络的支持下,音视频数据通过私有UDP协议以较低延时传输,实现房主、观众、连麦者之间的音视频同步。同时,SD-RTN™的软件定义优化路由选择最优路径,自动避免网络拥塞,并规避骨干网络故障的影响。

目前,SD-RTN™在全球部署近200个网络节点,并支持超过200个国家及地区,可以协助各类应用出海,参与全球市场竞争。

支持人声控制、伴奏控制

除了通过声网的实时通讯网络实现基础的KTV功能,基于声网的信令系统,一起KTV场景解决方案还可以提供包括音量调节、切歌、演唱者切换等主播控制功能。

更多开放性接口

基本的演唱功能已经不能满足产品经理的需求,怎么办?声网SDK提供了多个开放接口,开发者可通过他们与第三方或自研库结合,实现更多变的混响音效或其它特性。

目前,声网一起KTV场景解决方案已经上线。而且我们已经基于 Agora SDK 实现了一个 线上 KTV 场景的 Demo,并开源至Github,欢迎大家参考实现:https://github.com/AgoraIO-Usecase/Online-KTV

如果开发中遇到任何问题,可以访问声网开发者社区与我们的工程师交流。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部