如何在直播平台搭建的直播应用中实现多人KTV?

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

不过,在Instagram正准备增加视频社交功能之前,我们国内的某款已上市社交应用,已经基于实时音视频基础能力,开始拓展新的玩法了。而且,据说上线后,立刻成为用户们正向体验的功能,用户活跃与留存双破新高。这个新功能就是KTV。我们也用电脑+手机录制了一段视频,大家可以感受下这款设计应用中的多人KTV功能(如果你只想听效果,请空降38秒处)。

在社交直播中,有人是靠颜值上位,有人则是以优美的声线取胜,KTV正是为后者准备的。从上面这个视频可以看出,具体功能如下:

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

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

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

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

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

与直播秀场有什么差别?

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

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

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

实现KTV功能需要留意哪些问题

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

歌曲控制同步

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

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

高音质、高画质

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

如我们在《详解音视频直播中的低延时》中所说,开发者除了要对网络传输进行优化,还需要尽可能优化编解码算法,降低音视频在端上的延时。

声网的实现思路

我们具体研究了该功能的实现方式,开发者们可以点击这里查看详细开发步骤,或者也可以通过Github直接获取 源码,自己动手尝试一下。我们的实现逻辑如上图所示,具体逻辑是这样的:

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

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

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

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

  • 然后我们通过UDP协议将房主K歌歌声与MV画面传输给观众;

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

除实现主要的功能之外,我们还需要支持传输720p以上的高清画面。这是为了保证在手机上MV(包含了歌词)的观看体验。同时,还需要额外开发包括音量调节、切歌、演唱者切换等主播控制功能。

如何在直播平台搭建的直播应用中实现多人KTV?相关推荐

  1. 网络直播平台搭建一个直播间的礼物系统

    网络直播平台搭建一个直播间的礼物系统 1. 所有直播间的礼物系统,第一步用户看到的无外乎都是礼物的列表界面 纵观主流直播间的礼物列表应该都是使用UICollectionView实现的,所以我也不例外, ...

  2. 直播平台搭建,直播间搭建中关于直播推流的三种常见协议

    直播行业经过爆发式增长后"荷尔蒙经济"逐渐减退,如今的直播行业商业模式已经趋于成熟,并开始进入发展的新阶段.直播平台搭建项目也早已成为热门开发项目,但是在进行项目开发之前,关于直播 ...

  3. 视频直播源码_直播平台搭建_直播程序源码——技术架构解析

    一.视频直播源码的技术架构: 直播视频采集SDK(PC/IOS/Anddroid)--直播CDN (直播流分发加速)--直播视频播放器SDK(PC/IOS/Android) 二.视频直播源码中音视频处 ...

  4. 带货直播平台搭建功能模块详细介绍

    从近几年开始,直播的发展可谓是越来越快,直播已经贯穿到生活的方方面面,大街上,公园里,景点前,随处可见都是主播的身影,到如今,直播已经注入了许多新的元素,比如:带货直播.带货直播是一种新型的零售方式, ...

  5. 带货直播平台搭建播放器端需要做哪些工作呢?

    4G时代已经过去,5G时代已然到来,互联网时代,直播已经成为了风口,在这个全民直播的时代,要想让自己的直播做得与众不同,或者要想要带货直播,那么就离不开带货直播平台搭建. 带货直播平台搭建成为直播系统 ...

  6. 直播平台搭建中你需要注意的小细节

    直播平台搭建的意义是为了实现完整的直播流程,为了完成直播平台搭建,就必须其中蕴含着那些步骤! 1.采集 采集又称数据获取,在直播流程的层面上来讲,是利用摄像头等工具,从系统外部采集数据并输入到系统内部 ...

  7. cdn搭建原理_直播平台搭建并不难,最难的是这两点

    直播依靠的是强大的数据处理与分发能力,所以市面上所有的直播平台需要利用各大运营商建立自己的CDN网络,或购买第三方的CDN加速网络.也可以说解决了直播平台搭建中的数据处理与分发,就解决了直播系统的开发 ...

  8. 基于微服务架构的直播平台搭建【一】

    一.摘要 自"十四五"计划提出以来,国家将"互联网+教育"列为工作重点.再结合后疫情时代的大发展背景,人们的需求已经从简单的"拥有一个线上平台&quo ...

  9. 直播平台搭建中使用Nginx推流多个直播平台解决方案

    直播平台搭建中使用Nginx推流多个直播平台解决方案 一.业务场景 最近公司的直播业务中,接入了多个第三方的直播服务(网易云信和腾讯云),公司使用OBS进行推流,需要同时推流到两个平台,但是一个OBS ...

最新文章

  1. leetcode-寻找两个正序数组的中位数
  2. MySQL高级show profile
  3. 手机python3l运行_Python3 os.lchflags() 方法
  4. 获取Django所有路由
  5. cad镂空图案切割_贺卡纸张卡片激光镂空雕花设备 激光打标机
  6. 分享这几天做seo优化的心得
  7. 微信小程序this.setData如何修改对象、数组中的值
  8. ORCLE conn连接报错
  9. IOS Dev Intro - NM OTool lipo
  10. 邮件、社交营销最全“勾搭”策略
  11. 摩尔投票(包含题目讲解)
  12. Python图像增强(翻转和旋转)
  13. 什么决定了你的职场天花板?
  14. 四面体的表面积_四面体表面积与体积的平分
  15. CA运作模式-认证与过期吊销
  16. (滁院20级计科专用)期末考试复习-计组
  17. 线性回归的补充与变量归一化
  18. 华为服务器euler系统,华为euler服务器
  19. 牛奶可乐经济学之Q14:为什么参加相亲不靠谱?
  20. [转]老(道)孔(儒)轮流做庄

热门文章

  1. BOE(京东方)柔性屏显示技术发展势头强劲,赋能应用场景创新
  2. 如何确定当前的S7-1200PLC使用的具体的博途软件
  3. 统计自然语言处理梳理四:篇章分析
  4. 领导力培养从特征入手
  5. html文档成品,html 成品代码
  6. 基追踪算法 matlab,什么是基追踪算法?基于改进基追踪方法的信号去噪 - 全文
  7. 东南大学苏州联合研究生院计算机考研科目,东南大学苏州联合研究生院计算机技术调剂信息...
  8. 8.4 小波变换分解与重构算法
  9. 视频剪辑软件Vegas音频编辑的使用教程
  10. 地图网站,二三维地图