美文网首页实时音视频开发
多人线上K歌房的实现难点解析

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

作者: 声网 | 来源:发表于2018-05-07 13:42 被阅读26次

在今年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相关的开发经验博文,即有机会获得Cherry红轴机械键盘、T恤等声网定制奖品。详情请戳这里

相关文章

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

    在今年Facebook F8大会上,Facebook宣布了将在Instagram Direct上开放一对一与群组视...

  • 生活碎碎念(52)做任何事都要多动脑

    一 昨天晚上我们声乐班班长在全民开了一个歌房,邀请我们班的人进歌房联欢,我还是第一次在线上K歌...

  • 真心K歌房

    毕业好几年了,齐悠第一次参加同学会。这次同学会定在了一家新开的KTV,之前齐悠一直犹豫着去不去,作为一个标准的音痴...

  • Node.js源码解析-Buffer的8k池实现

    Node.js源码解析-Buffer的8k池实现 欢迎来我的博客阅读:《Node.js源码解析-Buffer的8k...

  • KVO 解析

    KVO解析(一) —— 基本了解KVO解析(二) —— 一个简单的KVO实现KVO解析(三) —— KVO合规性K...

  • 卡拉OK歌词着色原理

    与唱吧、全民k歌类似,需要实现卡拉OK歌词随歌曲播放进度而着色。这里不讲lrc,zerc等格式歌词解析,而是着重于...

  • 一个要强的女生

    今天是出去玩的好日子,朋友们已经定好了今天出去唱歌。我随后来到他们定好的K歌房间,与别的K歌房不同,这间房...

  • 全民K歌一键解析 - App

    “全民K歌一键解析 - App” K歌时遇到好听的小姐姐或者哥哥唱的歌想保存却又没法保存非要会员怎么办? 其实之前...

  • 技术解析:如何实现K歌App中的实时合唱

    之前我们解析过很多社交直播App中不同场景的开发,比如在线K歌、小程序直播、多人视频聊天、AR等。 我们最近在知乎...

  • 逸富手机软件的使用(二)

    第四章:k线 4.1K线解析 如图所示,从<自选合约>选择合约进入<分时图>然后点击,在K线上可以上下滑动...

网友评论

    本文标题:多人线上K歌房的实现难点解析

    本文链接:https://www.haomeiwen.com/subject/dowmrftx.html