1. 程式人生 > >多人線上K歌房的實現難點解析

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

在今年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恤等聲網定製獎品。詳情請戳這裡