首幀秒開+智能鑒黃+直播答題,阿里雲直播系統背後技術大起底

摘要: 想要快速實現直播能力,並對原有業務不產生任何影響,依託如阿里雲一樣的直播平台,來搭建移動直播系統,將技術難題交給阿里雲,把更多的精力放在核心業務的本身,是最為穩妥和高效的選擇。本文介紹阿里雲直播系統架構、核心能力、技術實現和接入流程。

原文:click.aliyun.com/m/4086

關注直播行業的人都知道, 2016年是移動直播的元年,那一年,網紅被我們掛在嘴邊,直播平台數量呈大規模增長。模式從最開始的秀場直播,轉向UGC全民直播,內容從最開始的美女、色情,逐漸與各垂直領域進行探索與結合。最近,直播抓娃娃機和直播答題的接連風靡,也讓我們看到了移動直播場景延伸和創新的可能性。

移動直播的應用場景

直播是內容高級的展示手段,移動直播和垂直領域結合,會碰撞出更好場景,為原有業務增值。

比如一些常見的場景應用:

直播+電商:更容易很促成銷售,數據顯示超過6成的觀眾會瀏覽商品,而購買率達到2成;

直播+教育:可以使遠程教育更接近現場授課,並通過實時互動,能有效提升學習質量;

直播+金融:通過理財師分析大盤、實時資訊風向,可以實現從資訊到交易的全流程,促進理財產品的購買等等。

當然以上場景都是建立在穩定、完整、高性能、可擴展的直播系統之上。接下來,視頻雲產品經理弦望將為我們介紹阿里雲直播系統解決方案和背後的核心技術能力。

直播系統解決方案

阿里雲的直播技術架構,提供了從端到端的完整解決方案,可以助力用戶快速搭建直播系統,實現直播功能。

下圖中,左邊是推流端,有Android、iOS的推流SDK,也可藉助類OBS的推流工具和專業設備結合進行推流。直播流推上來後,會在直播中心進行實時處理,比如實時轉碼、截圖、錄製、水印、直播時移等,再通過CDN進行分發。播放端接收整個視頻流的播放,可以支持10萬以上路流輸出、1000萬以上觀眾同時在線。

(直播技術架構圖)

我們可以看到,整個鏈路上都有SDK或者OpenAPI開放給用戶使用,用戶只需要基於SDK做一些介面的對接,就可以完成整個直播系統的開發。

技術能力介紹

下面我們看下整個直播系統都涉及到哪些具體環節,每個環節都是怎麼實現的。

一、推流端

直播推流端即主播端,主要通過手機攝像頭採集視頻數據和麥克風采集音頻數據,經過一系列前處理、編碼、推流,直到CDN進行分發。

1、 高級美顏

前處理是對視頻進行渲染,比如美顏、水印、貼圖、混音、降噪等處理。其中直播平台必備的美顏功能,是通過演算法去識別人臉的皮膚部分,對皮膚區域進行色值調整從而實現的。現在,阿里雲以技術普惠大眾的價值觀將基於人臉識別的瘦臉、小臉、大眼、腮紅等高級美顏功能完全免費開放。同時,通過標準化封裝,推流SDK提供標準介面,可支持第三方美顏能力的接入,讓用戶基於自身業務做選擇。

2、 實時混音

在推流階段,阿里雲還開放了時下熱門的混音技術,它是將採集的人聲和音樂聲進行混合後輸出,並支持降噪和耳返功能。整個技術流程是:將背景音樂解碼成PCM音頻數據,同時,將麥克風采集的PCM音頻數據進行降噪處理,二者合成,在主播端直接播放PCM音頻,在觀眾端則先進行音頻編碼再通過RTMP推送音頻流並完成播放。

二、直播服務端處理

在推流完成後,直播服務端需要進行技術實現,包括實時轉碼,鑒黃,直播截圖,直播錄製,添加水印,時移觀看,直播答題等,同時確保穩定、流暢和實時數據可見性。

1、 實時轉碼

實時轉碼是將一路流轉成多路不同清晰度的流,在移動直播場景應用較少,但在PC端推上來的流一般是比較高清的,所以較為有效。阿里雲提供的窄帶高清技術,使用高配轉碼集群,高度複雜編碼演算法,在同等質量下提供更好的壓縮率,節省20%-30%的流量帶寬。

2、直播鑒黃

為了確保平台內容的合規,直播鑒黃是十分必要的一環。大型的直播平台通過人工鑒黃,成本高昂且不夠精準。所以,選擇人工智慧技術鑒別黃色內容,可以減少審核人力,有效降低平台涉黃風險。

在直播系統中接入API後,人工智慧技術可以對秒級截圖的甄別,判定這個直播的色情程度,進行合理打分,也會給出建議處理方式,幫助平台實現內容管控。

3、 直播時移

直播時移是一種點播和直播想結合的能力,簡單來說就是支持已經直播過的內容的實時回看。這個功能是結合播放器SDK,通過簡單的幾個介面調用就能實現。在網路電視、網路直播中,是十分常見的。

4、 直播答題

針對最近十分火熱的直播答題,阿里雲也推出了解決方案。在技術上是這麼實現的:主持人發出答題信號,現場導播人員通過接入方的AppServer,調用阿里雲的OpenAPI,在視頻幀中插入SEI信息,播放器在解析SEI幀 並回調給APP,在播放端上進行展示。這其中比較關鍵的點是,SEI信息在CDN分發和轉碼等處理過程中,是不會被丟掉的。這也確保了所有用戶端都能順利完成推題。另外,整個方案通過同步伺服器,進行同一傳輸通道同時傳輸,可實現高精度畫題同步,保證用戶體驗。

通常,直播答題場景都是通過現場人員在改造之後的OBS端,實現SEI信息插入的操作,同時,阿里雲直播答題解決方案也即將提供移動端出題的能力,滿足主播直接出題的業務場景需求。

三、拉流端

拉流端的核心處理在播放器端的解碼和渲染,在互動直播中還需集成聊天室、點贊和禮物系統等功能。

拉流端現在支持RTMP、HLS、HTTP-FLV三種協議,RTMP是Adobe的專利協議,開源軟體和開源庫都支持的比較好,延時一般在1-3秒。HLS是蘋果提出的基於HTTP的流媒體傳輸協議,優先是跨平台性比較好,HTML5可以直接打開播放,移動端兼容性良好,但是缺點是延遲比較高。FLV(HTTP-FLV)協議是使用HTTP協議傳輸流媒體內容的一個協議,不用擔心專利問題,直播延遲同樣可以做到1–3秒。

這三種播放協議都是可以支持的,我們可以根據自己的場景來選擇。比如說在端上播放可以使用FLV,如果將視頻流分享出去就建議使用HLS。

核心技術

那麼在整個阿里雲直播系統中,都有哪些移動端的核心技術呢。弦望認為:動態碼率、高級美顏、播放器首幀秒開三點非常重要。

一、 推流SDK——動態碼率

動態碼率技術實現原理是,首先在應用層配置時,設置一個最大的碼率和最小的碼率,圈定碼率的浮動範圍。然後通過實時上報當前碼率,根據帶寬的情況作出動態碼率調整,在網路情況良好的時候提高視頻清晰度,在網路情況不佳的時候則優先保證流暢度。這個技術可以讓視頻清晰度和卡頓做到一個平衡的狀態。

弦望表示,目前視頻雲正在探索動態丟幀的策略,在未來,可能編碼的幀率和解析度也可以是動態調整的。

二、推流SDK——實時美顏

阿里雲的實時美顏,其實是將美顏相關的演算法,比如線性濾波、非線性濾波、PS大法的圖像細節增強等等,做了融合與優化。最新的美顏演算法通過多種濾鏡的組合,已經達到了非常高的性能,總共耗時6毫秒。

通常視頻在移動端推流是每秒15-20幀,每幀50毫秒的處理時間,6毫秒的處理時間其實是基本不會產生性能瓶頸的。

三、播放器——首幀秒開

在播放端,首幀秒開決定用戶體驗的關鍵性技術。其基本原理是,當用戶在發起請求的點不是視頻的關鍵幀,沒辦法直接渲染和播放的時候,讀取已經在服務端緩存的最近一個GOP,在播放端讀取到關鍵幀就可以直接展示,再通過PTS校正、丟幀、追幀等策略,去動態的處理視頻流,降低延時。經過測試,秒開的時間在200毫秒-1秒之間。

接入流程

整個PC端直播的流程為:

首先,我們需要進行添加域名、綁定CNAME、配置鑒權等直播前籌備工作,然後使用第三方推流軟體,或者OBS進行推流,最後獲取播放地址,在web頁面或者VLC上進行播放預覽。

雖然背後的技術相對複雜,但是用戶端的操作是十分簡單方便的。

如果涉及到移動端推流和播放,可以參考如下文檔:

iOS推流SDK使用說明

Android推流SDK使用說明

iOS播放器SDK使用說明

Android播放器SDK使用說明

總結

想要快速實現直播能力,並對原有業務不產生任何影響,依託如阿里雲一樣的直播平台,來搭建移動直播系統,將技術難題交給阿里雲,把更多的精力放在核心業務的本身,是最為穩妥和高效的選擇。

為了方便用戶在接入前進行體驗,阿里雲也提供了產品DEMO,掃碼下載推流、播放器和短視頻等客戶端SDK,有任何的想法和建議,歡迎你在雲棲社區原文下方進行留言和互動。

更多技術乾貨敬請關注云棲社區知乎機構號:阿里云云棲社區 - 知乎

推薦閱讀:

用戶個人信息被泄露,比黑客更可怕竟然是「內鬼」
10 張圖秒懂UI和UX 到底有何不同?
如何自學用戶體驗設計(內附大量資源)
產品經理的用研手冊03 - 成也需求,敗也需求

TAG:算法 | SDK | 用户体验 |