鵝廠優文|主播pk,如何實現無縫切換?

歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~小程序

本文做者,rexchang(常青),騰訊視頻雲終端技術總監,2008 年畢業加入騰訊,一直從事客戶端研發相關工做,前後參與過 PC QQ、手機QQ、QQ物聯等產品項目,目前在騰訊視頻雲團隊負責音視頻終端解決方案的優化和落地工做,幫助客戶在可控的研發成本投入之下,得到業內一流的音視頻解決方案,目前咱們的產品線包括:互動直播、點播、短視頻、實時視頻通話,圖像處理,AI等等。

最近騰訊雲移動直播團隊一直在「遊手好閒」的打造小程序音視頻解決方案,咱們一直以來的主營業務之一——秀場直播,在過去幾個月的時間裏則有點「不思進取」。不過隨着近期人力的補充,以及微信版本的逐步穩定,咱們在直播方案裏的步伐也會進一步加快,盼你們可以繼續保持對咱們的承認。服務器

今天要介紹的就是主播連麥PK方案,經過這篇文章,咱們將一塊兒來了解什麼是主播連麥PK?以及怎麼快速實現主播間的連麥PK?微信

什麼是連麥PK?

clipboard.png

連麥PK就是正在直播中的兩個主播,經過相互協商或者後臺匹配的方式進入PK狀態。一旦進入PK狀態,本來獨自直播的兩個主播,就能夠相互視頻通話。與此同時,觀衆端能看到的畫面也一分爲二,從原來的一個主播變成左右兩個主播。這種直播模式能夠增長直播間的活躍氣氛,爲平臺帶來更多的互動性。網絡

  • 進入 PK 前:兩個主播各自獨立推流,每一個主播都有本身的觀衆,每一個觀衆看到的畫面中都只有本身當前直播間的一個主播。
  • 進入 PK 後:兩個主播之間能夠視頻通話,本來觀衆只能看到一個主播,如今能夠看到兩個主播在相互PK(視頻通話)。

clipboard.png

如何實現連麥PK

咱們先從最初的需求入手,看看最簡單的實現方案是什麼。從前面一張圖咱們就能夠看出,要想實現連麥PK,最簡答的辦法就是兩個主播各自把兩路畫面混在一塊兒,以下圖所示:併發

clipboard.png

主播 A 把本身手機攝像頭的畫面 local(A) 和來自網絡上的主播 B 的畫面 remote(B) 混合在一塊兒,再次進行編碼和壓縮並推送到雲端。這樣一來,本來主播 A 的觀衆就能夠看到畫面中多出了主播 B 的畫面。與此同時,若是主播 B 也進行相似的操做,就能夠把本身攝像頭的畫面 local(B) 和 來自於網路的主播 A 的畫面 remote(A) 混合在一塊兒。這樣,主播 B 的觀衆也就能同時看到 A 和 B 的畫面了。性能

可是這種方法有個小問題 —— 主播的手機要作的事情太多優化

  • 工做一:主播的手機要編碼和壓縮一路本地攝像頭的畫面,這一路畫面是傳給另外一個主播的;
  • 工做二:主播的手機要解碼和渲染一路來自網絡的對端畫面,這一路畫面是來自另外一個主播的;
  • 工做三:上述的兩路畫面要疊加在一塊兒,進行畫面的拼接。
  • 工做四:拼接好的畫面還要再編碼一次,推給觀衆,這樣觀衆才能看到兩路畫面。

如何解決性能問題?

爲了解決性能問題,咱們須要作的是給主播減負。ui

那要怎麼減負呢?是否是能夠把工做一和工做二,這兩項工做去掉?編碼

不行不行,這兩項工做是用來作視頻通話的,若是減掉了,那主播的 PK 就無從談起。spa

工做三和工做四是否是能夠減掉?

其實也是減不掉的,不過咱們能夠把它搬到雲端,在服務器上完成畫面的拼接和計算,而不是在終端完成這些工做。

clipboard.png

如上圖:當主播 A 和主播 B 開始 PK 後,兩邊的觀衆就再也不繼續從原來的線路上拉流觀看了,而是重新的實時音視頻雲端拉流觀看(上圖中橙色箭頭所示的部分)。這樣一來,咱們就能夠把畫面的混合和再次編碼的任務放在雲端進行。

可是這種方案也不是最完美的,由於從普通直播進入到 PK 狀態的過程當中,觀衆端的畫面會因爲線路切換的緣由,出現一段時間的卡頓。

騰訊雲連麥PK方案

騰訊雲的連麥PK方案則很好的解決了線路切換問題:

因爲騰訊雲自己既有支撐鬥魚、虎牙的常規直播解決方案,又有多年的QQ視頻通話技術積累,因此騰訊的視頻雲自己就是一個混合雲,自己既能夠實現常規的直播CDN分發,又能支持高質量低延時的實時音視頻線路。所以,咱們的方案很是清晰簡單:直接在原來的直播線路上疊加一路PK畫面:

clipboard.png

這樣一來,本來在觀看主播 A 和 主播 B 的觀衆,不會遭遇任何的畫面二次加載和卡頓等待,只是會看到本來一個畫面一分爲二,天然而然的進入到 PK 狀態。

方案背後的支撐技術

騰訊雲採用了兩套音視頻通道實現主播連麥PK功能,一套是標準直播採用的 CDN 線路,帶寬成本低廉且沒有併發限制。主播間 PK 所依賴的視頻通話,則採用私有的 UDP 傳輸協議,走專門爲下降通信時延而準備的專線線路。
clipboard.png
圖片描述

快速接入直播PK功能

若是您但願使用騰訊雲的直播PK功能,能夠參考咱們的接入文檔 LiveRoom(PK)。須要特別說明的是,這套方案還支持觀衆與主播的連麥,而且終端和後臺代碼均是開源的,支持自行部署,可以讓您擁有很是充分的定製空間。

clipboard.png

問答
小程序能夠實現哪些音視頻解決方案?
相關閱讀
楊春文:小程序在直播產品中的技術應用
如何實現直播中手繪禮物?
除了直播,VR+體育還有哪些打開方式?

此文已由做者受權騰訊雲+社區發佈,原文連接:https://cloud.tencent.com/dev...
圖片描述
歡迎你們前往騰訊雲+社區或關注雲加社區微信公衆號(QcloudCommunity),第一時間獲取更多海量技術實踐乾貨哦~

相關文章
相關標籤/搜索