多人線上K歌房的實現難點解析

在今年Facebook F8大會上,Facebook宣佈了將在Instagram Direct上開放一對一與羣組視頻聊天功能,這種新功能能夠幫助用戶使用實時視頻聊天來相互鏈接,即便是他們沒能相聚在一塊兒。毫無疑問,社交領域的一線平臺開始愈來愈重視實時音視頻技術在社交領域的應用。html

不過,在Instagram正準備增長視頻社交功能以前,咱們國內的某款已上市社交應用,已經基於實時音視頻基礎能力,開始拓展新的玩法了。並且,聽說上線後,馬上成爲用戶們正向體驗的功能,用戶活躍與留存雙破新高。這個新功能就是「一塊兒KTV」。算法

熱門新功能如何玩?

在社交領域,有人是靠顏值上位,有人則是以聲線取勝,「一塊兒KTV」正是爲後者準備的。具體場景及功能以下:網絡

  • 房主創建房間後,開啓KTV功能,上麥;
  • 房主在線點歌,歌曲與KTV歌房中常見MV同樣,包括畫面、字幕伴奏;
  • 觀衆能夠申請上麥,進行點歌、演唱;
  • 上麥的觀衆在演唱時可自主調節伴奏與人聲音量;
  • 房主可控制歌曲暫停、切歌。

咱們能夠經過下面這個視頻,先來感覺一下什麼是一塊兒KTV。
優化

與直播秀場有什麼差異?

你可能想問:聽上去就是直播秀場,這有什麼差異麼?其實,二者之間在功能和體驗都存在差異。編碼

在功能方面如表格所示,秀場直播主播演唱時,觀衆能夠文字參與評論、互動,也能夠上麥。但觀衆上麥後只能聊天,不能上臺演唱。而一塊兒KTV的伴奏曲庫存放於線上,任何觀衆均可以在線點歌、演唱。spa

從體驗角度講,秀場直播只是主播的我的秀。秀場至關因而主播的「獨樂樂」。而一塊兒KTV更接近線下KTV體驗。每一個人均可以點歌,都有機會演唱,是一種互動體驗的升級。orm

實現一塊兒KTV須要邁過的門檻

一塊兒KTV與咱們曾分享過的「賽事直播」場景很像,都是基於實時音視頻技術的基本能力拓展而來的。從表面來看,一塊兒KTV功能很簡單,但其中存在一些難點:視頻

歌曲控制同步htm

「一塊兒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場景解決方案已經上線,歡迎進入聲網開發者社區瀏覽詳細開發文檔。

相關文章
相關標籤/搜索