麼麼直播的音視頻技術實踐和優化

2021-01-21 即構科技ZEGO
2018年3月31日,「ZEGO Meetup 視頻直播+的技術實踐之道」第三期在上海成功舉辦,現場吸引了滿堂的直播行業從業者到場聆聽。會上,如預期一樣,麼麼直播前端團隊負責人黃銘新、即構科技資深技術專家和架構師冼牛、滬江CCTalk 音視頻架構師武海濱和塗圖TuSDK 研發技術總監王勝,這4位直播行業大咖給大家做了精彩分享。其中,麼麼直播前端團隊負責人黃銘新老師主要給我們分享了麼麼直播這4年來,在移動端和Web端兩大平臺上踩過的坑以及優化經驗。本文是對他演講內容的整理。


黃銘新,麼麼直播前端團隊負責人

 

嘉賓簡介:曾就職於天天動聽、英語流利說,現在麼麼直播負責前端開發團隊的team leader相關工作。技術上主要偏向於JS、Node全棧式開發,主要負責公司內的主站、內部服務和部分微服務的開發和管理。


-正文---


麼麼直播團隊是在2012年底進入直播行業的,那時直播還處於混沌期,不像現在有這麼多第三方直播技術解決方案商。麼麼直播平臺一切從零開始,和很多C端廠商一起,一點點地研究一步步地推演直播技術,走了很多彎路。


近兩年直播火爆後,湧現出了非常多的第三方直播解決方案。有些廠商專注於做類似雲端的解決方案,提供一些比較好的伺服器和算法,來提高流傳輸的速度;還有一些是只做客戶端的SDK,幫助企業更快速地接入到直播業務中去;還有像即構科技這樣的廠商,把兩部分結合在一起,推出一整套解決方案,讓想立即接入視頻直播這個行業的公司和項目可以迅速啟動。


會上,黃銘新重點與我們分享了麼麼直播在移動端和Web端推拉流研發中踩過的坑和優化經驗。


麼麼直播前端技術負責人 黃銘新




早期安卓手機整體性能偏弱,麼麼直播在移動端採用的是硬體編碼+rtmp dump的推流方式。


硬體編碼啟用了GPU,解放了部分CPU的計算能力,能夠支持業務上的計算,同時還降低了整個手機的發熱量,間接延長了整個APP的使用時長,當時效果不錯。但隨著深入使用和測試,麼麼直播和其他競品比較還存在以下問題:


1)畫面比較模糊。


2)碼率偏大。

為了解決這一問題也進行了很多嘗試,但效果不甚理想,後來發現在Android內部,Google強制使用baseline的編碼方式,調整效果不好。


3) 硬體的兼容性差。

Android上的MediaCodec編碼器在不同手機和晶片平臺上的表現略有差異,各個硬體廠商對它的支持也不盡相同,導致兼容非常費時費力,而iOS就相對沒有這樣的問題。


4) 網絡推流不穩定。

針對直播端推流經常斷和觀眾端出現卡頓等問題,麼麼直播也做了一些優化。例如,當推流網絡堵塞時,會把還未發送的隊列內數據進行丟棄,以保證整體的延遲不會太大,同時也對播放器的緩存大小進行調整,以減小網絡不穩定造成的影響。


當時麼麼直播沒有專門從事音視頻研究的研發人員,做的以上努力使得性能效率有所提升,但和其他競品相比還是存在差距。


在那段時間,直播行業開始爆發性增長,慢慢湧現了一批第三方解決方案,麼麼直播決定去嘗試一些第三方的方案,希望能夠解決一些痛點。



移動端推流step2


在找尋第三方解決方案的過程中,麼麼直播團隊發現第三方提供商的一個共通點是——他們大部分採用軟體編碼+硬體編碼的解決思路。麼麼直播內部也開始按照這樣的思路進行嘗試,嘗試了一段時間後,整體性能有所提升,同時也發現了兩個問題:


1)低端機器的整體性能偏弱,導致視頻下載幀率不太穩定,沒有辦法穩定在20、30幀,有時候直接跳到100或個位數;


2) 採用了軟體編碼後,低端機器的發熱量大。


「我們嘗試了軟體編碼+硬體編碼的這個解決方案,但發現這個方案也不成熟,然後我們遇到了即構科技的方案。我們在直播行業的前一到兩年裡摸爬滾打了很久,也嘗試了很多方案,可是畢竟沒有專門的音視頻人員去深入地研究音視頻技術的性能問題,市面上一般的解決方案也常是東補一塊牆、西補一塊牆,很難全面的解決問題。在接觸到即構科技後,我們發現即構可以完善地解決之前碰到的問題,無論是在畫質、兼容性、卡頓頻率,還是在加載速度、視頻的穩定程度上,直播的性能都得到了非常大的提升,的確做到了業界領先的水平。麼麼直播前端技術負責人黃銘新如是說。



 移動端拉流


移動端的拉流相對簡單。麼麼直播早期使用的是Ijkplayer進行視頻流的播放,基本穩定,不需折騰,使用起來也正常。但隨著各家直播平臺性能的提升,麼麼直播的首屏加載時間相比較長,體驗差。在同樣接入幾個機型對比後發現,麼麼直播發現在拉相同流的情況下,即構的播放器加載速度更快一些。所以最後,無論是推流還是拉流,麼麼直播平臺都替換成了即構的解決方案。



美顏


現在,美顏是直播平臺必備的功能。麼麼直播最早在開發美顏功能時,並沒有那麼順利。起初即構的SDK並沒有把視頻流的原始數據開放出來,而美顏的SDK需要使用視頻流原始數據,然後進行再加工,所以最初碰到了整合的問題。通過溝通,即構決定開放他們的視頻流原始數據,提供內存和textureID兩種形式暴露數據,而市面上大部分的美顏相關的SDK都支持這兩種方式,所以美顏問題也得到了順利解決。





Web端推流


web上主要有兩種推流方式,直接使用flash開播或者使用OBS軟體開播。麼麼直播沒有對OBS進行二次開發,所以在有限帶寬內,會給主播提供幾個碼率、解析度的配置,依據不同的網絡環境自行進行調整,可是主播相對來說不願使用。


黃銘新表示,很多平臺已經不太使用flash這種開播方式,但flash的推流方案在麼麼直播平臺是很多主播的選擇。麼麼直播平臺的主要業務集中在美女直播,相對鬥魚和其他遊戲平臺所需帶寬的量小一些。這種情況下,flash有先天優勢。它最主要的優點是方便,主播不需要進行額外的學習,直接上手,瀏覽器支持flash打開頁面就能用。不過這也帶來了另外的幾個問題:


1)flash自身的缺陷——對系統資源的消耗較大


2)flash不支持AAC編碼,只有Nelly Moser 和Speex 兩種音頻編碼格式,所以在同等的音視頻質量下,推流所需的帶寬較高。


針對這些問題,麼麼直播做了如下一些嘗試:


1、開發桌面端插件。簡單地說,就是開發一個第三方插件,主播開播的時候不走flash的推流流程,而是直接通過插件進行推流。這在一定程度上能解決上面的問題,但是不同PC的兼容性問題、開發成本以及主播的主觀能動性都使這一方案沒有繼續使用。


2、開發單獨的推流軟體。這點很多平臺都有在做。獨立的推流軟體穩定性高、性能好,並且可定製化程度也比較好,但是需要的研發資源和人力比較高,受制於當時團隊內部沒有這麼多的人力開發,最終否掉了這個方案。


3、服務端轉碼。在服務端對現有的流進行轉碼,這個其實已經應用得比較廣泛了。最常見的就是將一路高清或者大碼率的流進行轉碼,然後拆分出幾路低清的流,上來的是非AAC的流,通過轉碼最終下行拉流的時候拉取的是AAC流。目前我們也是使用服務端轉碼的解決方案。



Web端拉流


H5上使用的是hls進行拉流,通過轉碼就能夠做到。由於hls的特性,需要切片,所以延遲相對高。


pc端主要是使用rtmp和flv兩種流格式,麼麼直播平臺rtmp使用flash進行播放,flv使用js進行播放。


使用flash播放rtmp的流時,涉及到視頻的秒開時間、flash加載速度兩大性能指標。麼麼直播首先通過精簡播放器的體積,使其從原來的600多K減小到現在的19K;然後在前端頁面上採取分塊加載的策略,優先加載和播放相關的代碼或者文件。進行了這兩方面的處理後,視頻的秒開時間從原先的3-4秒降到了2秒內。


flv使用的是純前端js播放,通過使用最新的Media Source ExtensionsAPI,可以把flv的視頻流通過前端轉碼,直接在頁面上通過video標籤進行播放,使其無需flash。


rtmp跟flv流的性能相當,由於flv捨棄了flash,整體CPU消耗比原先降低了5%—10%左右,所以使用flv整體性能提升是較大的。並且,相對小的性能消耗可以得到和flash一樣的直播播放體驗。





即構科技於2015年由QQ前總經理林友堯創立,A輪獲得IDG投資,核心團隊來自騰訊QQ,匯聚了來自YY和華為等廠商的頂尖語音視頻人才。即構ZEGO致力於提供全球最清晰最穩定的實時語音視頻雲服務,助力企業業務創新,改變用戶線上溝通方式。即構ZEGO深耕視頻直播、視頻社交、遊戲語音、線上抓娃娃和在線教育等領域,贏得了映客、花椒直播、一直播、喜馬拉雅FM、陌陌遊戲、自由之戰2、和好未來等頂級廠商託付和信賴。

相關焦點

  • ZEGO Meetup 上海站 | 視頻直播+的技術實踐之道
    2017年與2018年之交,直播行業又煥發了第二春,讓人憧憬是否還有第三春。起起伏伏的是行業的風口和趨勢,穩步前進的是技術的實踐之道。在剛剛結束了ZEGO Meetup 北京站後,我們決定繼續前往上海,與上海的夥伴們一起探討視頻直播的技術與最佳實踐。
  • 聚焦音視頻前沿技術,騰訊雲產品生態實踐與產業升級同行
    12月20日,在Techo Park開發者大會視頻通信雲分論壇上,騰訊技術專家及在線教育、電商、地產經紀、to B技術服務等行業領軍人物分享了音視頻領域前沿技術、行業應用實踐等內容。與此同時,現場還發布了騰訊雲音視頻通信技術產品。
  • 音視頻技術開發周刊|172
    攜程移動直播探索 本文從直播流的選擇、交互優化、快速迭代等方面介紹攜程直播技術。 OTT/短視頻/線上教育/遠程協作/雲遊戲... 雲剪輯/線上視頻製作/AI視頻製作...... 當新的標準被應用到新領域、新的應用配備了新的標準、新的領域衍生了新的應用......音視頻技術人會帶來怎樣的技術革新,多媒體行業的後疫情時代又會催生出怎樣的新創?
  • 螞蟻實時視頻通話技術和實踐
    技術選型場景和核心需求基本明確,該選擇什麼技術路線呢?我們先回顧連麥互動直播場景,主播在直播過程中,(可能多位)嘉賓連線主播,進入聊天室,與主播進行視頻通話,其他粉絲觀看主播和嘉賓實時互動的視頻畫面。
  • 網易雲信聯合浙江大學信電學院成立創新與實踐基地 探索音視頻前沿...
    為夯實音視頻技術研發能力,讓創新驅動發展,11月28日,在網易創新企業大會上,來自網易核心架構的通信與視頻雲服務商網易雲信與浙江大學信電學院達成戰略合作,成立浙江大學信電學院——網易雲信聯合創新與實踐基地,展開技術創新和高水平專業學位人才培養,在塑造科學探索和技術研究的全面專業人才的同時,提升網易雲信在視頻編碼與智能分析領域的技術實力。
  • LiveMe FE 李承均:RTC 技術的入門和實踐
    疫情之後,各種在線項目迎來一個發展高峰,其中在線教育、在線診療、在線辦公、在線直播四大行業,都需要 RTC(實時音視頻)技術」,有消息稱「 RTC 技術將迎來高速普及的拐點」。本期【藍湖大咖訪談】有幸邀請到 LiveMe 的工程師李承均老師,為大家分享 WebRTC 的實踐經驗。
  • 網易雲信流媒體首席架構師:新一代音視頻技術架構如何構建?
    前言5G 與 AI 時代已來,音視頻技術持續迭代升級,網易雲信推出了全新一代音視頻技術架構。新一代音視頻架構有哪些核心技術?各技術在線上場景又有哪些落地實踐方案?在 5G 和 AI 技術變革的推動下,網易雲信在原有音視頻架構的基礎上迭代升級,推出了新一代音視頻技術架構,對音視頻全流程都做了重大升級,主要包括三大架構升級,分別是:新一代音視頻融合通信服務端系統、新一代音視頻 SDK 以及新一代音視頻引擎。
  • 字節跳動千萬用戶量級直播活動技術保障實踐
    本次分享主要圍繞事件直播全鏈路窺探、字節跳動直播重保實踐、如何一天內讓清北網校擁有穩定直播能力等幾個部分進行展開。以下為分享內容:今天給大家帶來的分享是字節跳動千萬用戶量級直播活動技術保障實踐。我們先來看一下直播的全鏈路是什麼樣子的。
  • 蘑菇街直播實踐 架構師實踐日
    蘑菇街作為國內「直播+電商」模式的先行者,在七牛架構師實踐日上,帶來了他們從直播立項到開發上線全過程的經驗分享。下面就是對他此次演講內容的整理。嘉賓簡介:袁健吉,蘑菇街高級開發工程師,從事 iOS 移動開發,目前負責蘑菇街 iOS 客戶端直播業務的功能開發以及和各業務方溝通的相關工作,擅長 iOS 領域圖像、視頻、直播相關技術。
  • 騰訊雲發布多款音視頻通信技術產品,服務全球開發者
    隨著音視頻在線上會議、教學、商業、娛樂等場景的廣泛應用,藉助5G、雲計算、大數據、人工智慧技術,騰訊雲構建了一個完整的音視頻通信產品體系,覆蓋媒體內容生產和音視頻通信的各個環節。  除此之外,視頻雲還發布了視頻雲海外2.0版本,提升全球服務能力。  首款自研硬體編碼器瑤池V500亮相,助力雲遊戲、超清直播等  隨著5G時代的到來,雲遊戲、4K/8K高清直播等超高清流媒體應用越發增長迅猛,視頻編碼是決定體驗和成本的關鍵技術。不過,目前市面上的編碼器,通常會為了滿足實時編碼要求,而對編碼工具和算法做大量裁剪和簡化,最終導致壓縮效率低下。
  • 百度進軍 「直播圈」?百度雲布局音視頻通話
    10月31日下午消息,百度雲近日與實時雲項目聲網Agora.io宣布達成戰略合作,百度雲將整體接入聲網Agora.io的音視頻通話和全互動直播產品,並且在技術、產品,行業應用等方面開展合作。聲網agora.io成立於2014年,總部位於矽谷,在上海設有研發中心。
  • 發布新一代音視頻技術架構 網易雲信夯實頭部玩家地位
    推出新一代音視頻技術架構  優化底層技術服務開發者在此之前,網易雲信剛剛迎來五周年裡程碑,從最初的IM即時通訊基礎能力,已經擴展出包括音視頻通話、直播、點播等與音視頻相關的十餘種功能不過,市場的考驗和行業的革新隨時都在進行,一方面,新冠疫情對各行各業的衝擊極大地激發了包括音視頻行業在內的非接觸式經濟發展。另一方面,AI技術的發展和5G時代的正式來臨,讓音視頻行業呈現出更廣範圍、更深程度的融合趨勢。
  • 左手技術右手生態,騰訊雲持續深耕音視頻及通信賽道
    12月20日,在Techo Park開發者大會視頻通信雲分論壇上,騰訊技術專家及在線教育、電商、地產經紀、to B技術服務等行業領軍人物分享了音視頻領域前沿技術、行業應用實踐等內容。與此同時,現場還發布了騰訊雲音視頻通信技術產品。
  • 戰旗石碩:直播的用戶體驗體系與質量監控方案 | 又拍雲Open Talk 2018音視頻技術沙龍·上海站
    6月24日,又拍雲OpenTalk |2018音視頻技術沙龍·上海站順利落幕,這是又拍雲OpenTalk | 2018音視頻技術沙龍系列活動的第二站
  • 麼麼直播平臺
    麼麼直播,一個與真人美女主播在線視頻聊天的交友社區,支持百萬人同時在線視頻聊天交友、K歌互動。  直接觀看無需下載!
  • 騰訊多媒體實驗室的完整音視頻技術棧
    事實上,在音視頻技術的落地上,騰訊做了很多,雲視頻會議產品只是其中之一。而背後依傍的,就是騰訊多媒體實驗室,其專注於多媒體技術領域的前沿技術探索、研發、應用和落地,包含實時音視頻、編解碼和網絡傳輸,基於信號處理和深度學習的多媒體內容處理、分析、理解和質量評估,沉浸式媒體(VR、AR、點雲等)系統設計和端到端解決方案。
  • 音視頻直播平臺亂象侵害未成年人 專家建議加大內容風險審核力度
    中國青年報客戶端訊(張雨亭 張穭方 中青報·中青網記者 寧迪)直播間低俗表演、「誘導打賞」、封禁主播借殼復出······近日,在2020音視頻直播行業綠色內容生態共建峰會上,南都網絡內容生態治理研究中心發布了《音視頻直播平臺內容痛點及治理創新報告》(以下簡稱《報告》)。
  • 視頻直播技術詳解之推流和傳輸
    結合該實時流網絡LiveNet和直播雲解決方案的實踐,我們將用七篇文章,更系統化地介紹當下大熱的視頻直播各環節的關鍵技術,幫助視頻直播創業者們更全面、深入地了解視頻直播技術,更好地技術選型。本系列文章大綱如下:(一)採集 (二)處理 (三)編碼和封裝 (四)推流和傳輸 (五)現代播放器原理 (六)延遲優化 (七)SDK性能測試模型在上一期的處理篇中,我們介紹了講解編碼和封裝。本篇是《解密視頻直播技術》系列之四:推流和傳輸。
  • 首屆「馬欄山杯」國際音視頻算法優化大賽 馬欄山上綻放智能之花
    9月8日下午,首屆「馬欄山杯」國際音視頻算法優化大賽頒獎盛典暨高峰論壇在馬欄山舉行。該活動是2020網際網路嶽麓峰會的重要組成部分。前沿課題源自業界需求馬欄山視頻文創產業園聚集了大量音視頻相關企業。在一般人印象中,音視頻行業屬於文化創意範疇,但實際上它的發展也離不開科技支撐。
  • 體驗提升,成本下降:直播平臺的技術升級新神器
    產業的飛速增長為直播平臺的底層 IT 基礎設施帶來了許多全新的需求和挑戰。為了以更低的成本高效滿足不同直播場景的觀眾需求,行業開發了適合多種延遲指標的直播技術模式,並採取多種手段來提升直播畫面的編碼效率。但從實踐效果來看,傳統解決方案還存在著許多不足和空白,很難跟上快速發展的市場需求。