首帧秒开+智能鉴黄+直播答题,阿里云直播系统背后技术大起底
摘要: 想要快速實(shí)現(xiàn)直播能力,并對(duì)原有業(yè)務(wù)不產(chǎn)生任何影響,依托如阿里云一樣的直播平臺(tái),來(lái)搭建移動(dòng)直播系統(tǒng),將技術(shù)難題交給阿里云,把更多的精力放在核心業(yè)務(wù)的本身,是最為穩(wěn)妥和高效的選擇。本文介紹阿里云直播系統(tǒng)架構(gòu)、核心能力、技術(shù)實(shí)現(xiàn)和接入流程。
點(diǎn)此查看原文: https://yq.aliyun.com/articles/394552?spm=a2c41.11181499.0.0
關(guān)注直播行業(yè)的人都知道, 2016年是移動(dòng)直播的元年,那一年,網(wǎng)紅被我們掛在嘴邊,直播平臺(tái)數(shù)量呈大規(guī)模增長(zhǎng)。模式從最開(kāi)始的秀場(chǎng)直播,轉(zhuǎn)向UGC全民直播,內(nèi)容從最開(kāi)始的美女、色情,逐漸與各垂直領(lǐng)域進(jìn)行探索與結(jié)合。最近,直播抓娃娃機(jī)和直播答題的接連風(fēng)靡,也讓我們看到了移動(dòng)直播場(chǎng)景延伸和創(chuàng)新的可能性。
移動(dòng)直播的應(yīng)用場(chǎng)景
直播是內(nèi)容高級(jí)的展示手段,移動(dòng)直播和垂直領(lǐng)域結(jié)合,會(huì)碰撞出更好場(chǎng)景,為原有業(yè)務(wù)增值。
比如一些常見(jiàn)的場(chǎng)景應(yīng)用:
直播+電商:更容易很促成銷售,數(shù)據(jù)顯示超過(guò)6成的觀眾會(huì)瀏覽商品,而購(gòu)買率達(dá)到2成;
直播+教育:可以使遠(yuǎn)程教育更接近現(xiàn)場(chǎng)授課,并通過(guò)實(shí)時(shí)互動(dòng),能有效提升學(xué)習(xí)質(zhì)量;
直播+金融:通過(guò)理財(cái)師分析大盤、實(shí)時(shí)資訊風(fēng)向,可以實(shí)現(xiàn)從資訊到交易的全流程,促進(jìn)理財(cái)產(chǎn)品的購(gòu)買等等。
當(dāng)然以上場(chǎng)景都是建立在穩(wěn)定、完整、高性能、可擴(kuò)展的直播系統(tǒng)之上。接下來(lái),視頻云產(chǎn)品經(jīng)理弦望將為我們介紹阿里云直播系統(tǒng)解決方案和背后的核心技術(shù)能力。
直播系統(tǒng)解決方案
阿里云的直播技術(shù)架構(gòu),提供了從端到端的完整解決方案,可以助力用戶快速搭建直播系統(tǒng),實(shí)現(xiàn)直播功能。
下圖中,左邊是推流端,有Android、iOS的推流SDK,也可借助類OBS的推流工具和專業(yè)設(shè)備結(jié)合進(jìn)行推流。直播流推上來(lái)后,會(huì)在直播中心進(jìn)行實(shí)時(shí)處理,比如實(shí)時(shí)轉(zhuǎn)碼、截圖、錄制、水印、直播時(shí)移等,再通過(guò)CDN進(jìn)行分發(fā)。播放端接收整個(gè)視頻流的播放,可以支持10萬(wàn)以上路流輸出、1000萬(wàn)以上觀眾同時(shí)在線。
(直播技術(shù)架構(gòu)圖)
我們可以看到,整個(gè)鏈路上都有SDK或者OpenAPI開(kāi)放給用戶使用,用戶只需要基于SDK做一些接口的對(duì)接,就可以完成整個(gè)直播系統(tǒng)的開(kāi)發(fā)。
技術(shù)能力介紹
下面我們看下整個(gè)直播系統(tǒng)都涉及到哪些具體環(huán)節(jié),每個(gè)環(huán)節(jié)都是怎么實(shí)現(xiàn)的。
一、推流端
直播推流端即主播端,主要通過(guò)手機(jī)攝像頭采集視頻數(shù)據(jù)和麥克風(fēng)采集音頻數(shù)據(jù),經(jīng)過(guò)一系列前處理、編碼、推流,直到CDN進(jìn)行分發(fā)。
1、 高級(jí)美顏
前處理是對(duì)視頻進(jìn)行渲染,比如美顏、水印、貼圖、混音、降噪等處理。其中直播平臺(tái)必備的美顏功能,是通過(guò)算法去識(shí)別人臉的皮膚部分,對(duì)皮膚區(qū)域進(jìn)行色值調(diào)整從而實(shí)現(xiàn)的。現(xiàn)在,阿里云以技術(shù)普惠大眾的價(jià)值觀將基于人臉識(shí)別的瘦臉、小臉、大眼、腮紅等高級(jí)美顏功能完全免費(fèi)開(kāi)放。同時(shí),通過(guò)標(biāo)準(zhǔn)化封裝,推流SDK提供標(biāo)準(zhǔn)接口,可支持第三方美顏能力的接入,讓用戶基于自身業(yè)務(wù)做選擇。
2、 實(shí)時(shí)混音
在推流階段,阿里云還開(kāi)放了時(shí)下熱門的混音技術(shù),它是將采集的人聲和音樂(lè)聲進(jìn)行混合后輸出,并支持降噪和耳返功能。整個(gè)技術(shù)流程是:將背景音樂(lè)解碼成PCM音頻數(shù)據(jù),同時(shí),將麥克風(fēng)采集的PCM音頻數(shù)據(jù)進(jìn)行降噪處理,二者合成,在主播端直接播放PCM音頻,在觀眾端則先進(jìn)行音頻編碼再通過(guò)RTMP推送音頻流并完成播放。
二、直播服務(wù)端處理
在推流完成后,直播服務(wù)端需要進(jìn)行技術(shù)實(shí)現(xiàn),包括實(shí)時(shí)轉(zhuǎn)碼,鑒黃,直播截圖,直播錄制,添加水印,時(shí)移觀看,直播答題等,同時(shí)確保穩(wěn)定、流暢和實(shí)時(shí)數(shù)據(jù)可見(jiàn)性。
1、 實(shí)時(shí)轉(zhuǎn)碼
實(shí)時(shí)轉(zhuǎn)碼是將一路流轉(zhuǎn)成多路不同清晰度的流,在移動(dòng)直播場(chǎng)景應(yīng)用較少,但在PC端推上來(lái)的流一般是比較高清的,所以較為有效。阿里云提供的窄帶高清技術(shù),使用高配轉(zhuǎn)碼集群,高度復(fù)雜編碼算法,在同等質(zhì)量下提供更好的壓縮率,節(jié)省20%-30%的流量帶寬。
2、直播鑒黃
為了確保平臺(tái)內(nèi)容的合規(guī),直播鑒黃是十分必要的一環(huán)。大型的直播平臺(tái)通過(guò)人工鑒黃,成本高昂且不夠精準(zhǔn)。所以,選擇人工智能技術(shù)鑒別黃色內(nèi)容,可以減少審核人力,有效降低平臺(tái)涉黃風(fēng)險(xiǎn)。
在直播系統(tǒng)中接入API后,人工智能技術(shù)可以對(duì)秒級(jí)截圖的甄別,判定這個(gè)直播的色情程度,進(jìn)行合理打分,也會(huì)給出建議處理方式,幫助平臺(tái)實(shí)現(xiàn)內(nèi)容管控。
3、 直播時(shí)移
直播時(shí)移是一種點(diǎn)播和直播想結(jié)合的能力,簡(jiǎn)單來(lái)說(shuō)就是支持已經(jīng)直播過(guò)的內(nèi)容的實(shí)時(shí)回看。這個(gè)功能是結(jié)合播放器SDK,通過(guò)簡(jiǎn)單的幾個(gè)接口調(diào)用就能實(shí)現(xiàn)。在網(wǎng)絡(luò)電視、網(wǎng)絡(luò)直播中,是十分常見(jiàn)的。
4、 直播答題
針對(duì)最近十分火熱的直播答題,阿里云也推出了解決方案。在技術(shù)上是這么實(shí)現(xiàn)的:主持人發(fā)出答題信號(hào),現(xiàn)場(chǎng)導(dǎo)播人員通過(guò)接入方的AppServer,調(diào)用阿里云的OpenAPI,在視頻幀中插入SEI信息,播放器在解析SEI幀 并回調(diào)給APP,在播放端上進(jìn)行展示。這其中比較關(guān)鍵的點(diǎn)是,SEI信息在CDN分發(fā)和轉(zhuǎn)碼等處理過(guò)程中,是不會(huì)被丟掉的。這也確保了所有用戶端都能順利完成推題。另外,整個(gè)方案通過(guò)同步服務(wù)器,進(jìn)行同一傳輸通道同時(shí)傳輸,可實(shí)現(xiàn)高精度畫(huà)題同步,保證用戶體驗(yàn)。
通常,直播答題場(chǎng)景都是通過(guò)現(xiàn)場(chǎng)人員在改造之后的OBS端,實(shí)現(xiàn)SEI信息插入的操作,同時(shí),阿里云直播答題解決方案也即將提供移動(dòng)端出題的能力,滿足主播直接出題的業(yè)務(wù)場(chǎng)景需求。
三、拉流端
拉流端的核心處理在播放器端的解碼和渲染,在互動(dòng)直播中還需集成聊天室、點(diǎn)贊和禮物系統(tǒng)等功能。
拉流端現(xiàn)在支持RTMP、HLS、HTTP-FLV三種協(xié)議,RTMP是Adobe的專利協(xié)議,開(kāi)源軟件和開(kāi)源庫(kù)都支持的比較好,延時(shí)一般在1-3秒。HLS是蘋(píng)果提出的基于HTTP的流媒體傳輸協(xié)議,優(yōu)先是跨平臺(tái)性比較好,HTML5可以直接打開(kāi)播放,移動(dòng)端兼容性良好,但是缺點(diǎn)是延遲比較高。FLV(HTTP-FLV)協(xié)議是使用HTTP協(xié)議傳輸流媒體內(nèi)容的一個(gè)協(xié)議,不用擔(dān)心專利問(wèn)題,直播延遲同樣可以做到1–3秒。
這三種播放協(xié)議都是可以支持的,我們可以根據(jù)自己的場(chǎng)景來(lái)選擇。比如說(shuō)在端上播放可以使用FLV,如果將視頻流分享出去就建議使用HLS。
核心技術(shù)
那么在整個(gè)阿里云直播系統(tǒng)中,都有哪些移動(dòng)端的核心技術(shù)呢。弦望認(rèn)為:動(dòng)態(tài)碼率、高級(jí)美顏、播放器首幀秒開(kāi)三點(diǎn)非常重要。
一、 推流SDK——?jiǎng)討B(tài)碼率
動(dòng)態(tài)碼率技術(shù)實(shí)現(xiàn)原理是,首先在應(yīng)用層配置時(shí),設(shè)置一個(gè)最大的碼率和最小的碼率,圈定碼率的浮動(dòng)范圍。然后通過(guò)實(shí)時(shí)上報(bào)當(dāng)前碼率,根據(jù)帶寬的情況作出動(dòng)態(tài)碼率調(diào)整,在網(wǎng)絡(luò)情況良好的時(shí)候提高視頻清晰度,在網(wǎng)絡(luò)情況不佳的時(shí)候則優(yōu)先保證流暢度。這個(gè)技術(shù)可以讓視頻清晰度和卡頓做到一個(gè)平衡的狀態(tài)。
弦望表示,目前視頻云正在探索動(dòng)態(tài)丟幀的策略,在未來(lái),可能編碼的幀率和分辨率也可以是動(dòng)態(tài)調(diào)整的。
二、推流SDK——實(shí)時(shí)美顏
阿里云的實(shí)時(shí)美顏,其實(shí)是將美顏相關(guān)的算法,比如線性濾波、非線性濾波、PS大法的圖像細(xì)節(jié)增強(qiáng)等等,做了融合與優(yōu)化。最新的美顏算法通過(guò)多種濾鏡的組合,已經(jīng)達(dá)到了非常高的性能,總共耗時(shí)6毫秒。
通常視頻在移動(dòng)端推流是每秒15-20幀,每幀50毫秒的處理時(shí)間,6毫秒的處理時(shí)間其實(shí)是基本不會(huì)產(chǎn)生性能瓶頸的。
三、播放器——首幀秒開(kāi)
在播放端,首幀秒開(kāi)決定用戶體驗(yàn)的關(guān)鍵性技術(shù)。其基本原理是,當(dāng)用戶在發(fā)起請(qǐng)求的點(diǎn)不是視頻的關(guān)鍵幀,沒(méi)辦法直接渲染和播放的時(shí)候,讀取已經(jīng)在服務(wù)端緩存的最近一個(gè)GOP,在播放端讀取到關(guān)鍵幀就可以直接展示,再通過(guò)PTS校正、丟幀、追幀等策略,去動(dòng)態(tài)的處理視頻流,降低延時(shí)。經(jīng)過(guò)測(cè)試,秒開(kāi)的時(shí)間在200毫秒-1秒之間。
接入流程
整個(gè)PC端直播的流程為:
首先,我們需要進(jìn)行添加域名、綁定CNAME、配置鑒權(quán)等直播前籌備工作,然后使用第三方推流軟件,或者OBS進(jìn)行推流,最后獲取播放地址,在web頁(yè)面或者VLC上進(jìn)行播放預(yù)覽。
雖然背后的技術(shù)相對(duì)復(fù)雜,但是用戶端的操作是十分簡(jiǎn)單方便的。
總結(jié)
想要快速實(shí)現(xiàn)直播能力,并對(duì)原有業(yè)務(wù)不產(chǎn)生任何影響,依托如阿里云一樣的直播平臺(tái),來(lái)搭建移動(dòng)直播系統(tǒng),將技術(shù)難題交給阿里云,把更多的精力放在核心業(yè)務(wù)的本身,是最為穩(wěn)妥和高效的選擇。
為了方便用戶在接入前進(jìn)行體驗(yàn),阿里云也提供了產(chǎn)品DEMO,掃碼下載推流、播放器和短視頻等客戶端SDK,有任何的想法和建議,歡迎你在云棲社區(qū)原文下方進(jìn)行留言和互動(dòng)。
想要業(yè)務(wù)咨詢的用戶,也可掃碼加入釘釘群,與阿里云技術(shù)專家和產(chǎn)品經(jīng)理面對(duì)面交流。
總結(jié)
以上是生活随笔為你收集整理的首帧秒开+智能鉴黄+直播答题,阿里云直播系统背后技术大起底的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 他在阿里的逆袭,只因为想做个“锤子”
- 下一篇: 深入解读:获Forrester大数据能力