前端工程师后端转型实录
采訪講師師
姜雨晴,MediaTrack音視頻研發負責人。畢業于Dalhousie University,曾任字節跳動高級前端開發工程師,熊貓直播音視頻研發負責人, 貓耳FM前端開發工程師。目前負責MediaTrack多端播放器研發、轉碼中心技術架構和研發、音視頻安全和音視頻質量保障。
LiveVideoStack:請您介紹一下自己以及您目前的工作。
姜雨晴:我目前就職于MediaTrack,為視頻制作者提供協作工具,主要負責MediaTrack音視頻相關的后端服務、前端播放器研發。
LiveVideoStack:您近期最關注的技術是什么?
姜雨晴:最近比較關注專業領域的視頻制作,和專業制作者的協作模式。最近幾年短視頻興起,短視頻制作也從原有的UGC制作,轉化為PGC制作。
長視頻領域則一向以專業制作為核心,這使得專業的視頻制作成為視頻市場的中堅力量。而視頻制作的理念也從原本的線下合作慢慢轉為線上,產生了各類融媒體產品。
在視頻制作過程中,視頻制作者往往難以高效地溝通協作,這也成為影響制作進度的一個重要因素。而為專業制作者提供的線上協作工具,現在還處于比較初級的階段。我認為在今后的幾年內,這一領域會有比較大的發展。
LiveVideoStack:加入MediaTrack與此前的工作有什么不同的體驗
姜雨晴:此前無論是在熊貓直播或是字節跳動,面對的主要服務對象都是C端用戶。他們對于視頻的理解和視頻控制精準度的要求并不是很高,視頻播放和控制的主要評價標準僅僅停留在卡頓、首開時間、清晰度這些層面。
而現在的用戶大多是專業視頻制作者,他們對于視頻本身的理解比較深,會要求控制的精準度達到幀的級別,轉碼流的顏色還原度要求也比較高。一些諸如視頻比對、多視頻時間軸控制也是比較通用的需求。不僅要保證播放視頻的基礎指標,還需要保證播控精準度,轉碼流的還原度,和一些不常見的視頻的支持程度。這些方面會有比較大的挑戰。
LiveVideoStack:全球疫情下,您對音視頻技術有哪些新的理解;MediaTrack在這期間歷經了怎樣的發展和變化?
姜雨晴:MediaTrack這個項目從19年3月份提出我就一直比較看好。因為從之前在熊貓接觸的主播和PGC節目來看,真正吸引C端用戶的視頻節目往往并不是UGC自然產生,而是有意識的在內容和編排上花了比較長的時間準備而來。而且這種UGC到PGC的轉變,在未來的一段時間內仍會持續。
但是當時給PGC節目創作者的協作產品非常少,這也使得PGC作品產量非常低,進一步造成了C端用戶對優質視頻需求的一個很大的缺口。
今年年初,隨著疫情的到來,C端用戶對娛樂產品(包括點播視頻、直播視頻、游戲、小說等等創作型領域)的需求越發高漲,視頻制作這個領域線下的協作模式也逐漸無法支持團隊創作,這個缺口就更為明顯。
疫情以前,視頻制作者主要是在線下集中制作;疫情之后,視頻創作者則主要是使用會議軟件進行同步協作。但在視頻創作的具體場景下,一般的會議軟件很難滿足視頻創作的遠程協作需求,這使得視頻創作的遠程協作需求進一步放大。疫情期間,MediaTrack也在探索更高效的視頻創作協作模式,讓線上協作更趨近于傳統的線下協作,提高專業視頻制作者的生產效率。
LiveVideoStack:您職業生涯中所參與的最難忘的項目是什么?
姜雨晴:其實難忘的項目挺多的。比如17年在大會上講過的熊貓直播的H5播放器以及后來在字節負責的西瓜播放器,又比如熊貓直播末期一系列的降成本項目:窄帶高清、H265Web端解碼播放、P2P等。
我覺得難點往往不在于項目的結構設計,而在于細節實現。項目的結構設計會隨著經驗和知識的增加有新的認知,也會趨于完善。但實現細節上的難點,有時確實比較難。
比如前些時候,在開發MediaTrack的標記功能的時,最初忽略了視頻的starttime 轉碼流和原視頻的starttime經常出現不一致的狀況,這就造成了標注的時間點誤差。這時,我將轉碼流和原視頻的starttime納入到時間點計算中,發現誤差依然存在。
聯系到之前做H5播放器的一些經驗,在實際播放過程中,為了減少首屏時間,視頻的首個PTS通常會和音頻首個PTS取一個最小值,然后每一幀做PTS矯正。此時在用戶界面上的starttime應該是矯正之后的,又經歷了一次修改之后,時間戳才趨于準確。當然,這是幀率固定的情況下。
有些用戶上傳的視頻資源并非從工作棧中獲取的固定幀率視頻,比如從直播視頻中截取。這些視頻經歷了第三方轉碼后,很多情況下就是非固定幀率,使用FPS計算得出的幀的時間戳并不準確。這時,需要記錄實際的幀的時間戳進行換算。而用戶的視頻源文件和MediaTrack的轉碼流的幀情況也存在著差異,需要分別換算準確的幀數,在標記時進行顯示。
LiveVideoStack:近幾年您遇到的最大的困難是什么,以及您是如何堅持下來的?
姜雨晴:應該是身體原因吧,由于常年高強度的對比視頻的一些細節,造成幾次角膜炎癥,現在角膜有損傷。其實長時間做音視頻類的開發工作挺困難的,尤其是端的音視頻展現。不過還是比較喜歡這個領域的開發,所以現在會接手不少后端開發。塞翁失馬,真正開始后端開發的時候,會發現之前不少前端播放器開發時候困擾的問題,在開發后端時,得到了解答。
LiveVideoStack:在您的技術進階之路上,給您啟發最大的是什么?
姜雨晴:應該是在熊貓直播的研發經歷吧。在到熊貓之前,其實并不是前端工程師,雖然在貓耳的時候也負責前端的播放器編寫,主要業務還在小型網站的整站建設上。那時候比較想做“用戶看得見的東西”。
真正到了熊貓開始專門搞前端開發之后,期初也就是學習JS的一些語言特性,前端的設計模式等等。當時的領導對于前端項目要求非常高,每一個細節都會要求,小到一像素的對齊,大到每個模塊的內存占用、渲染效率等等。不僅是實現,還需要考慮用戶和主播瀏覽頁面時的電腦運行狀態。
例如主播需要打游戲、推流,那么彈幕渲染就不能占用太多的GPU性能,否則會影響主播的游戲渲染。這個時候才發現,“用戶看到的東西”僅僅停留于表層,“用戶覺得好用”則需要我具有更多的知識儲備,并且真正花時間去推敲代碼,每行代碼每個細節都可能對最終的體驗產生影響。在這之后,我才開始當一個”真正“的程序員,深究代碼背后的東西。
Q
如果此時此刻您可以做任何事、可以成為任何人,您最想做什么、最想成為什么樣的人?
“其實這個問題自己也想過很多次,但是答案其實一直都是,我最想成為的還是現在的自己。大約14、15年的時候,在校期間曾經很想成為專業的內容創作者,學習了不少視頻制作的專業軟件,專業知識。這幾年在平臺,在MediaTrack接觸了大量的內容創作者之后發現,他們每個人都有很多奇思妙想,但是真正能表達出來,展現給觀眾,且觀眾買賬,又是另外一回事兒。
從在熊貓直播、字節跳動優化視頻播放,到現在在MediaTrack開發生產力工具,其實都是在助力視頻創作者做出更有價值的內容。如果當初真的成為了職業的內容創作者,也只能是表達我一個創作者腦中的想法,如今卻可以幫助更多的創作者表達他們的思想。我認為是比成為內容創作者更有意義的事。所以對于自己的現狀還是很滿意的。
LiveVideoStack:能透露一下您在這次LiveVideoStackCon會帶來哪些獨家內容嗎?
姜雨晴:十月份的LiveVideoStackCon我會帶來MediaTrack開發中的一些細節。首先是非標準視頻的處理,我們很多用戶的待發布成片實際是會有單路視頻、多視頻Stream多音頻stream的內容,本次會介紹對于這部分視頻的前后端處理。
其次,我們在音視頻控制的精準度上做了比較多的優化,這次大會也會著重講這部分。第三,由于視頻處于生產制作環節,對于視頻防“跑版”的需求比較多,這次大會稍微介紹一下視頻安全的內容。最后,疫情期間MediaTrack對更高效的視頻協作做了很多探索,本次大會也會把新的協作形式的開發進行簡要說明。
LiveVideoStack:您眼中當前國內的視頻生產環境是什么樣的?
姜雨晴:目前國內專業的視頻創作團隊還在使用比較傳統的創作方式。新媒體的興起,給這些生產者帶來了一些新的思路,卻沒有把他們從傳統的制作方式中帶出來、擁抱互聯網。新媒體的興起給了很多UGC用戶舞臺創作視頻,甚至有些視頻不用專業的工作棧就可以制作出來。
過去的幾年內,我們在很多新媒體、短視頻平臺上看到了大量這樣的作品。但隨著專業制作團隊的引入,受歡迎的作品逐漸被專業制作團隊的產出占據。目前的環境,基本就是會用互聯網工具協作的人,做不出專業的作品。而制作的出專業作品的人卻無法用互聯網協作。當然,這并不是創作者的問題,而是目前的創作工具大多偏向于非專業用戶。要想改變這一現狀,需要有能夠滿足專業場景的互聯網工具。
LiveVideoStack:視頻播放體驗優化面臨的普遍問題是什么,有哪些解決方案?
姜雨晴:首先清晰度和卡頓這兩件事,從來就是互斥的。高碼率高清晰度的視頻往往伴隨著對網絡條件的更高要求。5G的到來為我們解決掉了部分這樣的問題。場景化、用戶需求化的轉碼策略和新的轉碼技術也可以解決這個問題。
其次是C端用戶要求比較高的首屏時間。但是在我們的場景中,秒級以內的優化并不是用戶剛需,更需要的其實是對一些常見的視頻格式,可以快速在多端播放,這才是用戶真正關心的“首屏”。也就是從上傳完成到各個端都可以播放視頻的時間。這仍然是依賴轉碼,此時轉碼策略尤為重要。
最后是畫面。視頻生產與視頻觀看不同,哪怕是邊角的水印都有可能影響制作者對畫面的理解,視頻生產環節十分注重視頻的安全性,這兩者之間產生了很大的矛盾。數字水印等策略可以部分解決這一問題。
LiveVideoStack:MediaTrack解決方案的亮點及其具體考量是什么
姜雨晴:我個人覺得,最大的亮點其實在于深入用戶場景。對于不同場景下的文件處理用的是不同的策略:比如音頻制作環節,音頻制作者關心的其實是音頻本身的一些數據,比如看波形數據判斷音頻是否過載等等,而單條音頻制作之后,在混音的環節,制作者關心的又是多條音頻軌道的搭配問題;在視頻創作環境中,創作者關心的是畫面、調色是否準確,轉場是否在指定的位置,甚至是某一幀不該出現的穿幫鏡頭等等。
實際視頻創作者分很多不同的工種,他們對于同一個視頻或者音頻表現出來的要求也不一樣。這需要深入用戶場景在服務端和播放端做不同的策略,才能讓各個工種的用戶都得到滿足。所以在開發過程中,看到的雖然是一個播放器,但實際是很多不同的播放器根據策略展現。
LiveVideoStack:您現階段正在解決的問題以及您下一個階段的研發目標是什么
姜雨晴:現階段其實有幾個研發目標,首先就是實現MediaTrack對新的協作模式的創新。其次,我們需要更加深入用戶的制作場景,開始PC客戶端、工作棧插件和音視頻生產制作過程中一些實用工具的研發。
于我個人而言,下一階段需要兼顧網頁、小程序、PC客戶端和服務端的研發,在不同的思維模式中進行轉換。
總結
以上是生活随笔為你收集整理的前端工程师后端转型实录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【线上分享】边缘云跨区域超低延时架构设计
- 下一篇: 【今晚七点半】:主编对话李宇翔——我所经