視頻已經成為當前各種互聯(lián)網產品的基礎功能之一,如何選擇合適的技術構建視頻能力也成為了互聯(lián)網團隊必須回答的一個問題。網易視頻云技術專家朱玲結合網易的研發(fā)實踐,介紹了視頻云技術的最新發(fā)展、技術挑戰(zhàn)所在以及突破方向,并分享了作為一名程序媛的工作和生活感悟。
視頻傳輸問題挑戰(zhàn)最大
能否先介紹您在網易的工作經歷,負責過哪些項目,目前主要關注哪些技術?
朱玲:我在2015年4月加入網易,一直從事視頻相關的開發(fā)工作,在視頻云產品部門,主要負責Windows端以及iOS端的直播推流/互動直播SDK的開發(fā);目前關注視頻編解碼,視頻傳輸,以及視頻處理相關技術。
您最近在北京參加了中國軟件技術大會,分享了我們最新的技術實踐心得,能否簡單解釋涉及哪些重要內容?哪些人應該了解這些內容?
朱玲:主要是給大家分享我們網易視頻云在互動直播產品開發(fā)過程中,對視頻傳輸解決方案的一些思考,以及一些實踐心得,涉及到我們傳輸的技術選型,框架設計,實踐過程中遇到的挑戰(zhàn),以及解決方案。
互動直播涉及到端到端一整套的解決方案問題,每個環(huán)節(jié)都很重要,譬如設備兼容性、音頻降噪、回音消除前處理、視頻編碼碼率控制算法、傳輸等等,其中傳輸問題尤為重要。為什么?當前是移動互聯(lián)網時代,大多數用戶都采用移動端體驗互動直播,移動端通過WiFi/4G等接入網絡,由于無線網絡固有的問題,比如隨機丟包、延時抖動不可避免,如何解決移動端網絡實時視頻傳輸問題,一直是學術界以及工業(yè)界的核心問題,傳輸性能直接決定了端到端的用戶體驗,因此,從我們產品開發(fā)初期,就將網絡優(yōu)化作為一個重點項目,投入較大的人力物力,包括弱網環(huán)境搭建、算法建模、數據分析、優(yōu)化調整等等,在這個過程中,我們也形成了自己的一套傳輸解決方案,并行之有效的集成在線上產品中。視頻團隊,尤其是實時音視頻應用開發(fā)者,我們面臨的問題其實是一樣的。希望通過這樣的分享,大家一起交流心得,切磋學習,對技術的發(fā)展起到一定的推動作用,最終讓用戶隨時隨地體驗到高清流暢的視頻服務。
根據您的研發(fā)經驗,視頻技術,包括剛才說的互動直播,最具挑戰(zhàn)的難題是哪一個?我們投入了多少資源和精力解決這個問題?
朱玲:視頻傳輸問題,如何在WiFi/移動端等較為復雜的網絡環(huán)境中保證穩(wěn)定流暢的傳輸以滿足用戶隨時隨地體驗高清流暢的視頻觀感,一直是我們的技術核心問題。從產品開發(fā)初期至今,我們一直在做這方面的優(yōu)化工作,并將持續(xù)優(yōu)化下去。
優(yōu)化工作是無限的
在互動直播體系中,抗丟包的冗余編碼和傳輸效率的優(yōu)化之間,折中的關鍵點是什么?
朱玲:互動直播對傳輸延時非常敏感,我們過濾掉ARQ(自動重傳請求)方案而采取FEC(前向糾錯編碼)來對抗網絡的隨機丟包問題。誠然,冗余包的添加會額外消耗一定的傳輸帶寬,因此,我們在設計冗余包添加策略時,要充分考慮其帶寬消耗與恢復能力的權衡,我們不僅根據網絡實時反饋的丟包率動態(tài)自適應調節(jié)添加冗余包的包率,還結合視頻包信息,采用Unequal Lelve protection FEC,對于關鍵幀關鍵信息添加更多的冗余包,以降低隨機丟包對視頻傳輸的影響。
您說傳輸需要持續(xù)優(yōu)化,那么如何評價目前整個互動直播領域的技術水平?
朱玲:從國外的Skype到我們的網易泡泡等實時通信產品,一開始較多的關注點在于短消息,音頻的互動,早期大都基于PC端開發(fā),一方面IM、音頻的傳輸碼率較低,另一方面有線寬帶網絡帶寬較為充裕,遇到的傳輸問題可能沒有那么明顯。
近年來,隨著移動互聯(lián)網的發(fā)展,互動直播類產品更多的實現在手機端,而手機其先天的優(yōu)勢視頻采集隨處可得,4G、WiFi網絡隨地接入,人們不再局限于文字、聲音,而更多的是利用視頻信息去進行互動,我們知道視頻信息量是很龐大的,對視頻信息傳輸需求的激增,無疑惡化了網絡的擁塞狀況,再加上移動網絡自身的問題,丟包抖動隨處可見,在這種復雜的充滿競爭的網絡情況下,實時通信就遇到了更多的挑戰(zhàn)。
目前市場上的互動直播產品雖然有不少,但大多采用一些大的平臺方提供解決方案,這些平臺方包括網易也就4~5家吧,盡管我們可以說:我們的互動直播在分辨率480p/WiFi條件下,抗丟包20%,延時200ms以內,那用戶會問了:傳輸720p呢?4K視頻呢?超清視頻體驗呢?延時100ms以內可以么?面對面說話那樣可以么?人們對于提高視頻通信的用戶體驗的追求是無限的,所以,我們的優(yōu)化工作也是無限的。
客觀地說,大家的互動直播產品都需要繼續(xù)優(yōu)化,這樣才能滿足人們日益增長的對于視頻多媒體實時信息交互的多種需求。
誠如您所說,需求是無限的,那么從您的角度來看,要打造滿足娛樂、電商、金融等行業(yè)需求解決方案,哪些方面的技術是必備的?
朱玲:這個問題不好回答,我認為要具備的技術太多了,包括前端、后臺、底層音視頻技術等等,建議大家直接整合網易云。
程序媛的工作與生活
作為一名程序媛,您喜歡被人稱呼為“玲哥”,但男性和女性的思維模式和優(yōu)勢其實是有差異的,猿和媛在研發(fā)工作中面臨的挑戰(zhàn)有什么不同?需要如何分工協(xié)作實現高效研發(fā)?
朱玲:“玲哥”只是聽上去好聽而已,“玲妹妹”有點凄慘,不是么?我并不覺得面臨的挑戰(zhàn)會因為性別而有所不同,也無需根據性別去做任何分工,程序開發(fā)不是生孩子,男性一定不行,也不是重體力活,女性一定有劣勢。我個人暫時還沒有想到,對于從事程序開發(fā)工作,性別會帶來什么差異。
有哪些會影響研發(fā)效率的不利因素是必須杜絕的?
朱玲:產品需求不明確,前期技術調研不充分,導致開發(fā)冷很多功能卻壓根沒有運用到實際產品中的或者說由于技術實現難度等問題,半途而廢的那些功能開發(fā),大大降低了研發(fā)效率。
我們經常能夠在論壇里面看到很多程序員,尤其是遠離故土的程序員表達他們的迷茫,比如壓力大、收入低,比如和產品、銷售部門在技術或者功能的選擇上存在較大的分歧,對于他們的這些問題,您有什么建議嗎?
朱玲:對于第一個問題,不光是程序員,大多數人尤其是年輕人都會有類似的焦慮。其實壓力大并沒有多么壞,還記得高考逼得我們上知中文,下知地理,而現在我們一無所知;收入低也只是相對而言,知足常樂。我也有情緒低落的時候,這個時候我一般會去看一場電影,吃一頓麻辣香鍋,或者去跑步,壓力每個人都有,我們要做到的就是找到一個合理合法的方式去釋放它!
對于開發(fā)與產品,銷售的分歧,這個就更不是問題了,一個好的團隊就是通過各種摩擦、碰撞(撕逼)來迸發(fā)火花的,大家都相敬如賓,很可能就是貌合神離。我個人非常推崇各抒己見,百花齊放的溝通方式,從別人的角度來看同一個問題,能更加開闊我們的思維,了解自身的不足。
技術學習心得
對于技術知識的學習和運用,您有什么經驗可以分享?
朱玲:關于學習,現在網絡信息很發(fā)達,經常會有各種“xx技術分享”“xx技術大揭秘”等文章推送,這種信息大多比較片面化,屬于一家之言,或者充斥著軟廣硬廣,只能作為一些參考,不應該浪費太多時間,否則就是知道了很多的大道理,也依然做不好開發(fā)。要學習,還是要系統(tǒng)化的理論化的,多讀書,讀好書。
運用方面,就是多寫代碼,熟能生巧。
來年技術展望
對于視頻云技術在新的一年的發(fā)展,您有什么樣的期待?您的研發(fā)重心會放在哪里?
朱玲:希望視頻云的產品更穩(wěn)定,功能更豐富,用戶接入更簡單,真正的做到用技術改變人們的生活。至于我個人,研發(fā)重心依然是視頻相關技術,包括最新的編碼標準之類。