1. 程式人生 > >展望2018音視訊技術:AV1,AI,區塊鏈,WebRTC

展望2018音視訊技術:AV1,AI,區塊鏈,WebRTC

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

編者按:音視訊技術的歷史可能要追溯到19世紀末——特斯拉與愛迪生的偉大時代。直到今天,他們的發明依然伴隨我們生活的每時每刻。2018年音視訊技術將有哪些突破?來自學霸君的資深架構師袁榮喜從編解碼器、客戶端、傳輸網路、動態緩衝區以及媒體處理技術幾個方面解析實時音視訊技術。展望2018,區塊鏈、AI、WebRTC、AV1將成為關鍵詞。

本文由LiveVideoStack與《程式設計師》雜誌聯合策劃,並將在《程式設計師》雜誌2018年1月刊釋出。最後,感謝《程式設計師》雜誌主編盧鶇翔的建議與高效配合。

文 / 袁榮喜

策劃 / LiveVideoStack,《程式設計師》雜誌

責編 / 盧鶇翔

實時音視訊技術是源於早期的VoIP通訊,隨著後來網際網路的發展程序,這項技術2003年被Skype引入到PC桌面系統,開啟了整個實時音視訊技術新紀元。經過15年的進化,基於PC上的實時音視訊技術日漸成熟,也湧現了像WebRTC這樣的開源專案。但隨著近幾年移動網際網路和4G的興起,實時音視訊領域有了更廣泛的應用,引來了新的技術難題和挑戰。經過2016年直播大戰後,音視訊應用得到了使用者的認可,直接促成了2017年實時音視訊應用的大爆發,在娛樂方面出現了像狼人殺、陌生人視訊社交、線上抓娃娃等風口;在協作應用領域出現了Slack和Zoom等多人遠端協作應用;在行業應用上也有很大的突破,例如像VIPKID、學霸君1V1等強勁的線上教育產品。在蘋果8月份宣佈新一代iOS瀏覽器Safari支援WebRTC後,實時音視訊技術成為了時下熱門技術體系。

但實時音視訊相關技術門檻非常高,很多細節並不為人所知,其中涉及到平臺硬體、編解碼、網路傳輸、服務併發、數字訊號處理、線上學習等。雖然技術體系繁多,但總體上歸納兩類:1對1模式和會議模式。我從這兩個分類對實時音視訊相關技術做簡單介紹,主要有以下幾方面: 

  • 編解碼器

  • 客戶端上傳

  • 實時傳輸網路

  • 動態緩衝區

  • 媒體處理技術

編解碼器

談到視訊編碼器,就會想到MPEG4、H.264、H.265、WMA等等,但不是所有的視訊編碼器都可以用來作為實時視訊的編碼器,因為實時視訊編碼器需要考慮兩個因素:編碼計算量和位元速率頻寬,實時視訊會執行在移動端上,需要保證實時性就需要編碼足夠快,位元速率儘量小。基於這個原因現階段一般認為H.264是最佳的實時視訊編碼器,而且各個移動平臺也支援它的硬編碼技術。

  • H.264/ AVC 

H.264是由ITU和MPEG兩個組織共同提出的標準,整個編碼器包括幀內預測編碼、幀間預測編碼、運動估計、熵編碼等過程,支援分層編碼技術(SVC)。單幀720P解析度一般PC上的平均編碼延遲10毫秒左右,位元速率範圍1200 ~ 2400kpbs,同等視訊質量壓縮率是MPEG4的2倍,H.264也提供VBR、ABR、CBR、CQ等多種編碼模式,各個移動平臺相容性好。

  • VP8/VP9 

除H.264以外,適合用於實時視訊的編碼器還有Google提供的VP8,VP8採用了H.264相似的編碼技術,計算複雜度和H.264相當,不支援SVC,相同視訊質量的壓縮率比H.264要小一點,不支援B幀。而後Google又在VP8的基礎上研發了VP9,官方號稱VP9在相同視訊質量下壓縮率是VP8的2倍,對標的對手是H.265,VP9已經嵌入到WebRTC當中,但VP9編碼時CPU計算量比較大,對於VP9用於實時視訊我個人持保留意見。不管是VP8還是VP9硬編方式只有Android支援,iOS和其他的移動平臺並不支援。

  • 音訊編碼器

實時音視訊除了視訊編碼器以外還需要音訊編碼器,音訊編碼器只需要考慮編碼延遲和丟包容忍度,所以一般的MP3、AAC、OGG都不太適合作為實時音訊編碼器。從現在市場上來使用來看, Skype研發的Opus已經成為實時音訊主流的編碼器。Opus優點眾多,編碼計算量小、編碼延遲20ms、窄帶編碼-silk、寬頻編碼器CELT、自帶網路自適應編碼等。

0?wx_fmt=png

圖1:語音編碼器編碼延遲與位元速率對比

客戶端推流

實時音視訊系統都是一個客戶端到其他一個或者多個客戶端的通訊行為,這就意味著需要將客戶端編碼後的音視訊資料傳輸到其他客戶端上,一般做法是先將資料實時上傳到伺服器上,伺服器再進行轉發到其他客戶端,客戶端這個上傳音視訊資料行為稱為推流。這個過程會受到客戶端網路的影響,例如:Wi-Fi訊號衰減、4G弱網、擁擠的寬頻網路等。為了應對這個問題,實時音視訊系統會設計一個基於擁塞控制和QoS策略的推流模組。

  • 擁塞控制

因為客戶端有可能在弱網環境下進行推流,音視訊資料如果某一時刻發多了,就會引起網路擁塞或者延遲,如果發少了,可能視訊的清晰不好。在實時音視訊傳輸過程會設計一個自動適應本地網路變化的擁塞控制演算法,像QUIC中的BBR、WebRTC中GCC和通用的RUDP。思路是通過UDP協議反饋的丟包和網路延遲(RTT)來計算當前網路的變化和最大瞬時吞吐量,根據這幾個值調整上層的視訊編碼器的位元速率、視訊解析度等,從而達到適應當前網路狀態的目的。

  • QoS策略

客戶端推流除了需要考慮網路上傳能力以外,還需要考慮客戶端的計算能力。如果在5年前的安卓機上去編碼一個解析度為640P的高清視訊流,那這個過程必然會產生延遲甚至無法工作。為此需要針對各個終端的計算能力設計一個QoS策略,不同計算能力的終端採用不同的視訊編碼器、解析度、音訊處理演算法等,這個QoS策略會配合擁塞控制做一個狀態不可逆的查詢過程,直到找到最合適的QoS策略位置,圖2是一個實時音訊的QoS策略遷移過程例項。

0?wx_fmt=png

圖2:實時語音的QoS狀態遷移

傳輸路徑技術

在前面我們對實時音視訊歸納為:1V1模式和1對多模式,這兩種模式其實傳輸路徑設計是不一樣的。1V1模式主要是怎麼通過路由路徑優化手段達到兩點之間最優,這方面Skype首先提出基於P2P的Real-time Network模型。而1對多模式是一個分發樹模型,各個客戶端節點需要就近接入離自己最近的server伺服器,然後在server與server構建一個實時通訊網路。

  • P2P前向收斂技術

對於1V1模式的實時音視訊通訊,很多時候我們以為兩點之間直連是延遲最小質量最好的通訊鏈路,其實不是。整個骨幹網的結構並不是網狀,而是樹狀的,這個從同城網通電信之間互聯的質量可以得出結論,如果涉及到國際之間互聯更是複雜無比。一個好的1V1實時音視訊系統會設計一個對等多點智慧路由的傳輸演算法,就是通過多節點之間的動態計算延遲、丟包等網路狀態來進行路徑選擇,這是個下一跳原則的選擇演算法,只要保證每個節點自己傳送包的下一跳的延遲和丟包最小,那麼整個傳輸路徑就是最小最優,一般TTL小於4。尋找下一跳的過程是一個P2P節點前向收斂技術,它需要一個函式f(x)來做收斂。圖3是一個傳統1V1和基於P2P relay的1V1對比示意圖。

0?wx_fmt=png

圖3:P2P多路徑傳輸示意圖

  • proxy傳輸技術

對於1對多模式的實時音視訊通訊,需要一箇中心server來控制狀態和分發流資料,但參與通訊的節點不都是對中心server網路友好,有可能某些節點連不上中心server或者丟包延遲很大,無法達到實時通訊目標需求。所以一般會引入就近proxy機制來優化傳輸網路,客戶端節點通過連線距離最近的proxy到中心server。這種方式不僅僅可以優化網路,還可以起到保護中心server的作用。

0?wx_fmt=png

圖4:proxy傳輸模式示意圖

  • 分段計算

不管是P2P relay模式的1v1,還是就近proxy的1V多模式,在資料傳輸過程會做各種傳輸補償來應對丟包,例如:FEC、ARQ等,如果進行ARQ還需要對重傳的資料做臨時儲存。這裡遵循的是分段計算的原則,這個原則大致是:每一段網路上一跳節點必須獨立計算到下一跳節點之間的丟包、延遲,並將接收到資料cache在記憶體中,根據這段網路的狀態啟用對應的FEC、ARQ和路由選擇策略,不影響其他分段傳輸策略。

 0?wx_fmt=png

圖5:分段計算與網路節點示意圖

  • WebRTC閘道器

在實時音視訊系統中需要在Web上進行實時通訊,各個瀏覽器都已支援WebRTC,所以WebRTC是Web上實時音視訊通訊的首選。但WebRTC是基於瀏覽器的客戶端點對點系統,並沒有定義多路通訊標準和服務中轉標準,不管是1V1模式還是1對多模式,需要引入WebRTC閘道器來接入自定義的實時系統。閘道器負責將WebRTC的SDP、ICE、STUN/TURN、RTP/RTCP翻譯成自定義系統中的對應協議訊息,實現無縫對接WebRTC。WebRTC很多類似的開源閘道器,例如:licode、janus等。

動態緩衝區

在實時視訊的播放端會有一個自動動態伸縮的JitterBuffer來緩衝網路上來的媒體資料,為什麼要這個JitterBuffer呢?因為TCP/IP網路是一個不可靠的傳輸網路,音視訊資料經IP網路傳輸時會產生延遲、丟包、抖動和亂序,JitterBuffer可以通過緩衝延遲播放來解決抖動亂序的問題。但JitterBuffer如果緩衝時間太長,會引起不必要的延遲,如果緩衝時間太短,容易引起音視訊卡頓和抖動。所以JitterBuffer在工作的時候會根據網路報文的抖動時間最大方差來動態確定緩衝時間,這樣能在延遲和流暢性之間取得一個平衡。

JitterBuffer除了緩衝解決抖動和亂序的問題以外,為了延遲和流暢性之間的制約關係,它還需要實現快播和慢播技術,當JitterBuffer中資料時間長度小於確定的抖動時間,需要進行慢播,讓抖動緩衝區資料時間和抖動時間齊平,防止卡頓,當JitterBuffer中的資料時間長度大於確定的抖動時間,需要進行快播,接近抖動時間,防止累計延遲。

媒體處理

  • 回聲消除

在實時音視訊系統中,回聲消除是一個難點,儘管WebRTC提供了開源的回聲消除模組,但在移動端和一些特殊的場景表現不佳。專業的實時音視訊系統會進行回聲消除的優化。回聲消除的原理描述很簡單,就是將揚聲器播放的聲音波形和麥克風錄製的波形進行抵消,達到消除回聲的作用。因為回聲的回錄時間不確定,所以很難確定什麼時間點進行對應聲音資料的抵消。在專業的回聲消除模組裡面通常會設計一個逼近函式,通過不斷對輸出和輸入聲音波形進行線上學習逼近,確定回聲消除的時間差值點。如圖6所示。

0?wx_fmt=png

圖6:回聲消除模型與逼近函式

回聲消除整個過程對CPU計算有一定的要求,尤其是在移動端裝置上,所以在設計回聲消除模組的時候會將回聲消除演算法設定幾個計算等級,不同的等級不同的CPU計算量,根據執行裝置的效能來做策略調節。

  • 人臉與AI

直播時代人臉美顏和特效已經不再是稀奇的功能了,這得益於AI深度學習和神經網路的發展。值得一提的是,已經有通過對抗神經網路進行人臉替換的技術,這個技術是通過CycleGAN演算法模型將視訊中每個畫素替換成目標畫素,以此來達到偷樑換柱的目的。未來一個普通主播替換成明星臉的現象會越來越多。

總結與思考

實時音視訊領域涉及的技術眾多,有控制網路延遲的,有抗丟包的,有用於增強流暢度的,有用於減少成本的。這其中還有很多懸而未決的問題,例如跨國零延遲實時傳輸、大規模實時分發、超高清實時、實時VR/AR等。這個領域的技術還在不斷髮展,隨著硬體和演算法的不斷升級,這些問題正在逐步被解決。在這裡簡單對未來這方面技術做個展望。

2017年的新一代iPhone上已經嵌入了H.265的硬編模組,接下來很多手機廠商都會植入H.265的硬編模組來提高手機的競爭力。這一局面將加快H.265在實時音視訊的應用。除了H.265外,Google聯合各個瀏覽器廠商正在加緊研發AV1新一代網際網路視訊編碼器,預計在2018年放出alpha版測試,AV1在專利費和瀏覽器相容上有很大的優勢,這是個非常值得期待的事。

在實時音視訊傳輸方面也正在與當下流行的AI和深度學習結合,基於機器學習的擁塞控制演算法已經在實驗階段,基於大資料和神經網路的實時傳輸鏈路優化也在各大雲廠商中開展,我個人看好利用AI和深度學習技術來進行網路調優、傳輸路徑優化和時延控制,這塊在未來幾年會有相對應的突破。而與區塊鏈的結合可能更多是基於成本上的考慮,例如迅雷的玩客幣、賺錢寶等,這類技術方向會催生出新一代的CDN實時分發網路。

行業應用上,線上教育會繼續在師生注意力、教育效果上對實時音視訊上做深挖,很有可能會引入實時AR/VR來增強使用者體驗和認知感覺。實時音視訊正在成為計算機視覺的下一個發展方向,會持續輸出到IoT、毫秒級實時視訊監控等行業領域。

關於作者

袁榮喜,學霸君資深架構師,16年的C程式設計師,好求甚解,善於構建高效能服務系統和系統性能調優,喜好解決系統的疑難雜症和debug技術。早年痴迷於P2P通訊網路、TCP/IP通訊協議棧和鑑權加密技術,曾基於P2P super node技術實現了視訊實時傳輸系統。2015年加入學霸君,負責構建學霸君的智慧路由實時音視訊傳輸系統和網路,解決音視訊通訊的實時性的問題。 近幾年專注於儲存系統和併發程式設計,對paxos和raft分散式協議饒有興趣。尤其喜歡資料庫核心和儲存引擎,堅持不懈對MySQL/innoDB和WiredTiger的實現和事務處理模型進行探究。熱衷於開源,曾為開源社群提過些patch。業餘時間喜歡寫技術長文,喜歡讀唐詩。

LiveVideoStack招募全職技術編輯和社群編輯

LiveVideoStack是專注在音視訊、多媒體開發的技術社群,通過傳播最新技術探索與應用實踐,幫助技術人員成長,解決企業應用場景中的技術難題。如果你有意為音視訊、多媒體開發領域發展做出貢獻,歡迎成為LiveVideoStack社群編輯的一員。你可以翻譯、投稿、採訪、提供內容線索等。

通過[email protected]聯絡,或在LiveVideoStack公眾號回覆『技術編輯』或『社群編輯』瞭解詳情。

相關推薦

光明日報當教育遇上區塊會擦出什麼火花

說起現在最火的新興技術,區塊鏈必是處在風口上的答案之一。日前,京津冀大資料教育區塊鏈試驗區成立,為“區塊鏈+教育”的融合發展之路,提供了一個新的視窗。   當傳統的教育行業與區塊鏈相遇,究竟能為我們帶來什麼?又會擦出怎樣的火花?   推動科研共享和教育可持續發展

什麼是物聯網什麼是區塊什麼是大資料?

1.什麼是物聯網   物聯網就是利用區域性網路或網際網路等通訊技術把感測器、控制器、機器、人員和物等通過新的方式聯在一起,形成人與物、物與物相聯,實現資訊化、遠端管理控制和智慧化的網路。物聯網其實就是網際網路的延伸,它包括網際網路及網際網路上所有的資源,相容網際網路所有的應用

年薪 30W+ 的 AI區塊哪一個更適合你?

今年4月底,國內某知名招聘網站以4000萬中高階人才為樣本,時間跨度以2018年第一季度為主,釋

打造專遞課堂即構成為希沃專遞課堂實時視訊技術唯一提供方

日前,在南昌舉辦的第75屆中國教育裝備展上,希沃和即構zego打造的互動錄播方案亮相。現場將展廳設定為授課教室,廣州、贛州、南昌三個分會場為聽課教室,以每分鐘一場的高頻次互動演示,模擬了身處不同地區的4個教室的互動教學,現場效果令人震撼。 據瞭解,該方案也稱“專遞課堂”,目前已在江西、雲南

視訊通話小議音訊處理與壓縮技術

在視訊或者音訊通話過程中,一方面為了減小原始聲音資料的傳輸位元速率,需要進行音訊壓縮,另一方面為了得到更高質量的音質,需要進行音訊處理。那麼,如何處理好這兩方面,保證聲音傳播的高真性?本篇文章將會結合網易雲信在音視訊技術方面的實戰和經驗,小議音訊處理與壓縮技術。 推薦閱讀:

【雲棲TechDay】視訊技術開發實戰專場沙龍邀您參加

【時間】2018-12-20 下午13:40-18:00【地點】浙江省杭州市蕭山區啟迪路198號杭州灣資訊港A座負一樓國際報告廳【主辦單位】雲棲techday 阿里雲視訊雲團隊 簡介 音視訊技術是當前非常活躍、發展十分迅速的技術領域。近年來,數字化潮流正在迅猛衝擊模擬領域,數字技術促進了音視訊

LiveVideoStack視訊技術2018年度評獎揭曉

經過一個月的投票與評審,LiveVideoStack評出了音視訊技術2018年度獲獎者。 一個月前,LiveVideoStack啟動音視訊技術2018年度評獎,總共獲得393份有效問卷。考慮到一些故意的刷票行為,對這部分投票實行了降權處理。儘管如此,我

即構科技金健忠回顧20年視訊技術演進

多媒體技術是一個傳統行業,從模擬到數字,VCD到藍光,從窄帶到寬頻,標清到高清,技術演進讓人的視聽體驗發生了顛覆式的改變。LiveVideoStack採訪了即構科技CTO金健忠,他回顧了過去20年多媒體技術的發展,並展望了未來的技術趨勢。 文 / 金健忠 策劃 /

ZEGO 2018上海視訊技術嘉年華 活動回顧

9月15日,由即構科技ZEGO主辦的2018音視訊技術嘉年華在來到上海。這次,我們邀請到了即構科技、TutorABC、咪咕視訊、觸寶科技、Intel的5位音視訊技術專家,就音視訊圈熱議的WebRTC、Qos、AI、4K,以及新一代視訊技術,和現場70多名技術愛好者共同交流討論

WebRTC實時視訊技術基礎基本架構和協議棧

概述 本文主要介紹WebRTC的架構和協議棧。 最基本的三角形WebRTC架構 為了便於理解,我們來看一個最基本的三角形WebRTC架構(見下圖): 在這個架構中,行動電話用“瀏覽器M”表示,膝上型電腦用“瀏覽器L”表示,通過Web伺服器將它們連線起來。要建立

視訊標準MEPG陣營(x264,x265等)和Google陣營(vp8,vp9等)中國標準(XAVS2)

  視訊標準:MEPG陣營和Google開源陣營。   MPEG-2,VC1,H.263,H.264/AVC,H.265/HEVC,VP9,AV1——所有這些標準都建立在基於塊的混合視訊編碼結構上。   通用視訊編碼標準(VVC,Versatile Video Coding)

視訊前沿新一代 AV1 視訊標準究竟是怎樣一種存在?

AV1是開放媒體聯盟Alliance for Open Media (AOM) 開發的第一代視訊編碼標準,自推出以來獲得了產業界巨大關注和支援。騰訊多媒體實驗室也加入進來和其他公司團隊一同積極推動AV1編碼器的優化和落地,為客戶提供高效能和高效率的雲端編碼服務。本文是對騰訊多媒體實驗室專家研究員趙欣老師在「

快手科技視訊技術亮相ChinaMM 首次公開多媒體傳輸協議KTP

在中國多媒體大會產業前沿論壇,快手科技演算法科學家周超博士發表題為《多媒體傳輸演算法應用和展望》的演講,首次對外公開了其多媒體傳輸協議KTP(Kwai Transport Protocol,快手傳輸協議),該協議解決了重要的內容傳輸問題。以下為周超博士演講的主要內容。 快手的核心理念就是記錄,力

開源實時視訊技術WebRTC中RTP/RTCP資料傳輸協議的應用

1、前言 RTP/RTCP協議是流媒體通訊的基石。RTP協議定義流媒體資料在網際網路上傳輸的資料包格式,而RTCP協議則負責可靠傳輸、流量控制和擁塞控制等服務質量保證。在WebRTC專案中,RTP/RTCP模組作為傳輸模組的一部分,負責對傳送端採集到的媒體資料進行進行封包,然後交給上層網路模組

LiveVideoStackCon視訊技術大會首次來到上海

音視訊技術生態盛宴——LiveVideoStackCon將在2019年來到上海,並從即日起開啟招募講師與出品人。 文 / 包研 2019年4月12-13日,將迎來LiveVideoStackCon上海大會。這是第三次LiveVideoStackC

視訊技術開發週刊 75期

『音視訊技術開發週刊』由LiveVideoStack團隊出品,專注在音視訊技術領域,縱覽相關技術領域的乾貨和新聞投稿,每週一期。點選『閱讀原文』,瀏覽第75期內容,祝您閱讀愉快。 架構 Netflix媒體資料庫:媒體時間線資料模

視訊技術開發週刊 74期

『音視訊技術開發週刊』由LiveVideoStack團隊出品,專注在音視訊技術領域,縱覽相關技術領域的乾貨和新聞投稿,每週一期。點選『閱讀原文』,瀏覽第74期內容,祝您閱讀愉快。 架構 VMAF:未畢之旅 本文來自N

LiveVideoStack線上交流分享 ( 五 ) —— 線上教育視訊技術探索與應用

為了給大家提供一個學習,交流的平臺,暢聊音視訊技術開發新趨勢,新實踐。我們推出了LiveVideoStack線上交流分享活動,在每週四晚19:30,邀請1名業內資深技術專家進行線上分享技術乾貨,解答熱點問題。你可以通過以下方式參與: 關注LiveVideoStack公眾號【