關注直播行業的人都知道, 2016年是移動直播的元年,那一年,網紅被我們挂在嘴邊,直播平台數量呈大規模增長。模式從最開始的秀場直播,轉向UGC全民直播,内容從最開始的美女、色情,逐漸與各垂直領域進行探索與結合。最近,直播抓娃娃機和直播答題的接連風靡,也讓我們看到了移動直播場景延伸和創新的可能性。
直播是内容進階的展示手段,移動直播和垂直領域結合,會碰撞出更好場景,為原有業務增值。
直播+電商:更容易很促成銷售,資料顯示超過6成的觀衆會浏覽商品,而購買率達到2成;
直播+教育:可以使遠端教育更接近現場授課,并通過實時互動,能有效提升學習品質;
直播+金融:通過理财師分析大盤、實時資訊風向,可以實作從資訊到交易的全流程,促進理财産品的購買等等。
當然以上場景都是建立在穩定、完整、高性能、可擴充的直播系統之上。接下來,視訊雲産品經理弦望将為我們介紹阿裡雲直播系統解決方案和背後的核心技術能力。
阿裡雲的直播技術架構,提供了從端到端的完整解決方案,可以助力使用者快速搭建直播系統,實作直播功能。
下圖中,左邊是推流端,有Android、iOS的推流SDK,也可借助類OBS的推流工具和專業裝置結合進行推流。直播流推上來後,會在直播中心進行實時處理,比如實時轉碼、截圖、錄制、水印、直播時移等,再通過CDN進行分發。播放端接收整個視訊流的播放,可以支援10萬以上路流輸出、1000萬以上觀衆同時線上。

(直播技術架構圖)
我們可以看到,整個鍊路上都有SDK或者OpenAPI開放給使用者使用,使用者隻需要基于SDK做一些接口的對接,就可以完成整個直播系統的開發。
下面我們看下整個直播系統都涉及到哪些具體環節,每個環節都是怎麼實作的。
直播推流端即主播端,主要通過手機攝像頭采集視訊資料和麥克風采集音頻資料,經過一系列前處理、編碼、推流,直到CDN進行分發。
前處理是對視訊進行渲染,比如美顔、水印、貼圖、混音、降噪等處理。其中直播平台必備的美顔功能,是通過算法去識别人臉的皮膚部分,對皮膚區域進行色值調整進而實作的。現在,阿裡雲以技術普惠大衆的價值觀将基于人臉識别的瘦臉、小臉、大眼、腮紅等進階美顔功能完全免費開放。同時,通過标準化封裝,推流SDK提供标準接口,可支援第三方美顔能力的接入,讓使用者基于自身業務做選擇。
在推流階段,阿裡雲還開放了時下熱門的混音技術,它是将采集的人聲和音樂聲進行混合後輸出,并支援降噪和耳返功能。整個技術流程是:将背景音樂解碼成PCM音頻資料,同時,将麥克風采集的PCM音頻資料進行降噪處理,二者合成,在主播端直接播放PCM音頻,在觀衆端則先進行音頻編碼再通過RTMP推送音頻流并完成播放。
在推流完成後,直播服務端需要進行技術實作,包括實時轉碼,鑒黃,直播截圖,直播錄制,添加水印,時移觀看,直播答題等,同時確定穩定、流暢和實時資料可見性。
實時轉碼是将一路流轉成多路不同清晰度的流,在移動直播場景應用較少,但在PC端推上來的流一般是比較高清的,是以較為有效。阿裡雲提供的窄帶高清技術,使用高配轉碼叢集,高度複雜編碼算法,在同等品質下提供更好的壓縮率,節省20%-30%的流量帶寬。
為了確定平台内容的合規,直播鑒黃是十分必要的一環。大型的直播平台通過人工鑒黃,成本高昂且不夠精準。是以,選擇人工智能技術鑒别黃色内容,可以減少稽核人力,有效降低平台涉黃風險。
在直播系統中接入API後,人工智能技術可以對秒級截圖的甄别,判定這個直播的色情程度,進行合理打分,也會給出建議處理方式,幫助平台實作内容管控。
直播時移是一種點播和直播想結合的能力,簡單來說就是支援已經直播過的内容的實時回看。這個功能是結合播放器SDK,通過簡單的幾個接口調用就能實作。在網絡電視、網絡直播中,是十分常見的。
針對最近十分火熱的直播答題,阿裡雲也推出了解決方案。在技術上是這麼實作的:主持人發出答題信号,現場導播人員通過接入方的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。
那麼在整個阿裡雲直播系統中,都有哪些移動端的核心技術呢。弦望認為:動态碼率、進階美顔、播放器首幀秒開三點非常重要。
動态碼率技術實作原理是,首先在應用層配置時,設定一個最大的碼率和最小的碼率,圈定碼率的浮動範圍。然後通過實時上報目前碼率,根據帶寬的情況作出動态碼率調整,在網絡情況良好的時候提高視訊清晰度,在網絡情況不佳的時候則優先保證流暢度。這個技術可以讓視訊清晰度和卡頓做到一個平衡的狀态。
弦望表示,目前視訊雲正在探索動态丢幀的政策,在未來,可能編碼的幀率和分辨率也可以是動态調整的。
阿裡雲的實時美顔,其實是将美顔相關的算法,比如線性濾波、非線性濾波、PS大法的圖像細節增強等等,做了融合與優化。最新的美顔算法通過多種濾鏡的組合,已經達到了非常高的性能,總共耗時6毫秒。
通常視訊在移動端推流是每秒15-20幀,每幀50毫秒的處理時間,6毫秒的處理時間其實是基本不會産生性能瓶頸的。
在播放端,首幀秒開決定使用者體驗的關鍵性技術。其基本原理是,當使用者在發起請求的點不是視訊的關鍵幀,沒辦法直接渲染和播放的時候,讀取已經在服務端緩存的最近一個GOP,在播放端讀取到關鍵幀就可以直接展示,再通過PTS校正、丢幀、追幀等政策,去動态的處理視訊流,降低延時。經過測試,秒開的時間在200毫秒-1秒之間。
整個PC端直播的流程為:
雖然背後的技術相對複雜,但是使用者端的操作是十分簡單友善的。
如果涉及到移動端推流和播放,可以參考如下文檔:
<a href="https://help.aliyun.com/document_detail/45263.html?spm=5176.doc45270.2.3.K8zqXd">iOS推流SDK使用說明</a>
<a href="https://help.aliyun.com/document_detail/45265.html?spm=5176.doc45263.6.723.FglwiU">Android推流SDK使用說明</a>
<a href="https://help.aliyun.com/document_detail/45284.html?spm=5176.doc29957.2.7.ZlUYVx">iOS播放器SDK使用說明</a>
<a href="https://help.aliyun.com/document_detail/45285.html?spm=5176.doc29957.2.6.2EMpRg">Android播放器SDK使用說明</a>
想要快速實作直播能力,并對原有業務不産生任何影響,依托如阿裡雲一樣的直播平台,來搭建移動直播系統,将技術難題交給阿裡雲,把更多的精力放在核心業務的本身,是最為穩妥和高效的選擇。
為了友善使用者在接入前進行體驗,阿裡雲也提供了産品DEMO,掃碼下載下傳推流、播放器和短視訊等用戶端SDK,有任何的想法和建議,歡迎你在雲栖社群原文下方進行留言和互動。
想要業務咨詢的使用者,也可掃碼加入釘釘群,與阿裡雲技術專家和産品經理面對面交流。
開年采購季,為了讓更多使用者能夠體驗和享受到視訊直播雲服務的便利與強大,視訊直播推出了0.1元體驗包,配置清單如下,最多可節省51.88元!