提交需求
賽事與廣告咨詢合作,請?zhí)顚懶枨蟊韱?,我們?huì)在第一時(shí)間與您聯(lián)系!
疫情之后,各種在線項(xiàng)目迎來一個(gè)發(fā)展高峰,其中在線教育、在線診療、在線辦公、在線直播四大行業(yè),都需要 RTC(實(shí)時(shí)音視頻)技術(shù)”,有消息稱“ RTC 技術(shù)將迎來高速普及的拐點(diǎn)”。
本期【藍(lán)湖大咖訪談】有幸邀請到 LiveMe 的工程師李承均老師,為大家分享 WebRTC 的實(shí)踐經(jīng)驗(yàn)。
RTC 技術(shù)的普及
作為一個(gè)前端工程師來談?wù)?RTC 技術(shù),我并不算專業(yè),但身處實(shí)時(shí)音視頻(即直播)行業(yè),為大家分享一些親身體會(huì)。
RTC(Real-time Communications)直譯為實(shí)時(shí)通信,狹義的一般稱為實(shí)時(shí)音視頻。
一個(gè)完整的實(shí)時(shí)音視頻系統(tǒng)都包括七個(gè)部分:
1?? 音視頻采集
2?? 音視頻數(shù)據(jù)處理
3?? 音視頻編碼
4?? 音視頻數(shù)據(jù)的傳輸和分發(fā)
5?? 音視頻解碼
6?? 音視頻數(shù)據(jù)處理
7?? 音視頻的播發(fā)和渲染
在這七個(gè)部分中,音視頻的采集在高端智能機(jī)普及前,都是專業(yè)音視頻制作團(tuán)隊(duì)的工作。
隨著高端智能機(jī)的普及,UGC 時(shí)代隨之而來,短視頻應(yīng)用、直播應(yīng)用也相繼出現(xiàn)。終端的硬編解碼能力的提升對音視頻編解碼系統(tǒng)提供了推動(dòng)作用。
最重要的實(shí)時(shí)網(wǎng)絡(luò)傳輸技術(shù)(RTP/RTCP)和內(nèi)容分發(fā)技術(shù)(CDN)的進(jìn)一步提升,給多人實(shí)時(shí)音視頻應(yīng)用提供了較完善的技術(shù)支持。
因?yàn)橐咔榈年P(guān)系,在線教育,在線診療,在線辦公,在線直播等相關(guān)行業(yè)在今年都有質(zhì)和量的提升,隨著 5G 時(shí)代的到來與進(jìn)一步普及,實(shí)時(shí)音視頻數(shù)據(jù)的傳輸和分發(fā)將進(jìn)一步提升。
聲網(wǎng)的上市,我個(gè)人認(rèn)為,就是 RTC 技術(shù)普及的一個(gè)標(biāo)志事件。
RTC 技術(shù)的入門
WebRTC 也就是網(wǎng)頁及時(shí)通訊,WebRTC 是 RTC 的一部分,它是 Google 的一個(gè)專門針對網(wǎng)頁實(shí)時(shí)通信的一個(gè)標(biāo)準(zhǔn)及開源項(xiàng)目。
我最初開始研究這個(gè)技術(shù)方向是因?yàn)楣ぷ餍枰?/p>
自身在直播行業(yè),在 web 端,普通直播主流的媒體協(xié)議是 HLS 和 HTTP-FLV,前者是 Apple 系列,后者是 Adobe 系列,兩者都是基于 TCP 協(xié)議傳輸,使用 CDN 進(jìn)行內(nèi)容分發(fā),會(huì)有幾秒甚至更長的延遲,主播與觀眾只能通過文字消息或者禮物來互動(dòng)。
普通直播的延遲對觀眾端的影響大部分時(shí)候可以接受,但對于一些特殊場景,比如 PK、連麥,要求延遲低至幾百毫秒,這個(gè)時(shí)候幾秒的延遲就是致命的問題。
針對這個(gè)問題,目前常規(guī)的解決方案就是在流媒體服務(wù)中心將 PK的兩路流做合流操作,然后提供給 Web 使用。
當(dāng)時(shí)就是為了解決高延遲問題以及一些特定的應(yīng)用場景,開始關(guān)注 WebRTC 相關(guān)內(nèi)容。
WebRTC的架構(gòu)圖(圖片來自 webrtc.org)
在剛?cè)腴T的時(shí)候,最大的困難是 WebRTC 的各種技術(shù)名稱讓人迷惑,無法清晰定位到前端所能夠控制的部分。為了解決這個(gè)難題,我整理了即時(shí)通訊系統(tǒng)的各部分,對前端所能夠涉及的部分就清楚了,比如音視頻的采集和信令交互等。
RTC 技術(shù)的實(shí)踐
前端工程師在 WebRTC 的應(yīng)用中能夠做的事情并不多,主要精力是在獲取 MediaStream 和服務(wù)端做信令交互的部分以及瀏覽器的兼容處理相關(guān)的工作。
這部分內(nèi)容主要由以下三個(gè) Web api 接口來實(shí)現(xiàn):MediaSteam,RTCPeerConnection ,RTCDataChannel。
實(shí)時(shí)音視頻技術(shù)的自研工作并不是所有實(shí)時(shí)音視頻應(yīng)用公司都會(huì)做的,更多的是采用第三方實(shí)時(shí)音視頻技術(shù),這種情況下接入的成本相對較低,有比較成熟的接入流程,詳情見第三方網(wǎng)站,比如聲網(wǎng),即構(gòu)等。
如果是自研 WebRTC 項(xiàng)目,主要工程就在于封裝 SDK 和流媒體服務(wù)中心的建設(shè),包括音視頻系統(tǒng)的七個(gè)部分,傳輸與分發(fā)部署會(huì)使用第三方基建。
我們在自研 WebRTC 服務(wù)的過程中會(huì)產(chǎn)出 Web 端接入的 SDK,其中封裝了MediaStream 的采集和與流媒體中心信令交互的部分。
信令的部分內(nèi)容難在解析與調(diào)試過程,中間涉及大量的溝通環(huán)節(jié),當(dāng)然,如果只是使用第三方服務(wù),基本都不會(huì)涉及這部分內(nèi)容。
從擅長中找到熱愛
工程師中流行一句話“非熱愛不編程”,表達(dá)編程是一件枯燥的事,只有真正熱愛的人,才能從中發(fā)現(xiàn)樂趣并取得成就。
我認(rèn)為,做事的最佳選項(xiàng)是做自己熱愛的,其次是做自己擅長的。
國內(nèi)就業(yè)壓力大,少有人能從一開始就做自己熱愛的事,就連專業(yè)對口都無法完全滿足,在這種情況下,人們往往選擇做自己擅長的事情。在自己擅長的領(lǐng)域中發(fā)現(xiàn)自己的專長,你就有可能會(huì)愛上它。
我大學(xué)選擇了計(jì)算機(jī)專業(yè),主要方向是 Java,在實(shí)習(xí)期間才接觸到前端。2009 年的時(shí)候還沒有前端工程師這個(gè)崗位,或者說叫美工。后來,是因?yàn)?JSP 的編寫和維護(hù)成本較高,使用了和 Java 應(yīng)用很搭配的 GWT 前端框架,才搭上前端這列快速奔跑的火車。
前端工作能及時(shí)把代碼內(nèi)容呈現(xiàn)在眼前,因此帶來的成就感而使我開始深入了解,慢慢發(fā)現(xiàn),前端所覆蓋的范圍比想象中大得多,凡所可眼見的各種終端設(shè)備呈現(xiàn)的內(nèi)容都可以納入前端范疇。
從專攻技術(shù)的工程師成為需要帶領(lǐng)技術(shù)團(tuán)隊(duì)的管理者,我認(rèn)為,最大的區(qū)別是隊(duì)員與教練的區(qū)別。
· 隊(duì)員主要精力在于提升個(gè)人技能,進(jìn)而是團(tuán)隊(duì)配合,只對具體的需求或者區(qū)域負(fù)責(zé)。
· 教練需要考慮每一個(gè)人的情況,合理分配不同的位置及對應(yīng)負(fù)責(zé)的事,激發(fā)每個(gè)隊(duì)員的潛力,打造一個(gè)出成績的團(tuán)隊(duì),需要為整個(gè)團(tuán)隊(duì)負(fù)責(zé)。
多提問,多扛責(zé)任,多橫向溝通這三點(diǎn)的提升可以幫助一個(gè)工程師向管理者邁進(jìn)。
團(tuán)隊(duì)管理過程中,協(xié)作產(chǎn)品是必不可少的。藍(lán)湖幫助設(shè)計(jì)師與前端工程師高效溝通、協(xié)作,在我接觸的前端與設(shè)計(jì)師協(xié)同工具中,是目前最好用的一個(gè),解決了切圖,尺表,屬性,樣式等內(nèi)容的獲取問題。
又到了畢業(yè)季、招聘季, 為正在找工作的或即將換工作的同學(xué)們,分享我在互聯(lián)網(wǎng)圈里這 10 年的三點(diǎn)心得體會(huì):
1?? 主動(dòng)學(xué)習(xí)
互聯(lián)網(wǎng)技術(shù)日新月異,前端技術(shù)發(fā)展緊跟其后,學(xué)會(huì)如何學(xué)習(xí)是這些年最大的感悟。學(xué)生時(shí)代沒有做好的事情,工作后補(bǔ)上一課。作為一名互聯(lián)網(wǎng)工程師,學(xué)習(xí)不能停,停下就代表落后,落后就會(huì)被淘汰。
2?? 激情與責(zé)任心
要做就做最好,即使還存在差距,也要時(shí)刻激勵(lì)自己不斷優(yōu)化,需要有追求極致的激情。
關(guān)于責(zé)任心這一點(diǎn),是工程師往管理者改變道路上的一個(gè)重要指標(biāo)。換言之,你要有背鍋的心態(tài)與能力。
3?? 換位思考
全局最優(yōu)解是在遇見自己不能解決的問題的時(shí)候再思考的解決方案,不要局限自己的思路,換位思考能解決大問題。
WebRTC 技術(shù)作為瀏覽器及時(shí)通訊的解決方案,會(huì)隨著瀏覽器廠商進(jìn)一步的支持,以及 5G 網(wǎng)絡(luò)的普及而越來越好。目前,在線會(huì)議、在線教育等領(lǐng)域已經(jīng)出現(xiàn)優(yōu)秀的商用應(yīng)用,未來將會(huì)越來越好,感興趣的同學(xué)可以考慮加入我們的行列。
本期【藍(lán)湖大咖訪談】就到這里,通過李承均老師的分享,湖湖對 RTC 技術(shù)有了新的認(rèn)知,你學(xué)到了嗎?有什么問題想請教大咖,歡迎在評論區(qū)留言。
Powered by Froala Editor
大牛,別默默的看了,快登錄幫我點(diǎn)評一下吧!:)
登錄 立即注冊