9月9日,火山引擎增長沙龍-人工智能專場在上海舉行。會上,字節跳動相關工程師分享了在視頻創作場景下,火山引擎音視頻中臺如何在資源優化、問題治理、防劣化建設等維度上構筑起了移動端智能視頻創作體系化質量平臺,并保障音視頻SDK撐起了億級DAU產品的穩定性考驗。
眼下,移動端的視頻編輯面臨很多挑戰,視頻編輯業務對性能和資源的要求比較高,移動端在算力、資源方面又存在天然劣勢。同時,移動端場景的視頻創作,開發調試也有諸多不便。與此同時,如果視頻編輯質量不好、穩定性不佳,會極大影響用戶的視頻創作體驗。
針對這些挑戰,火山引擎采取了一系列手段對視頻編輯進行質量優化。
火山引擎發現,在視頻編輯場景中,80%的崩潰都發生在內存上,表現為內存顯存占用過大、內存泄漏、內存越界、野指針訪問等。
在過去,針對內存崩潰通常采用的是“頭疼醫頭,腳痛醫腳”的方法。也就是根據系統崩潰報過來的信息對它進行針對性的修復,但是火山引擎的技術人員在實踐過程中發現,這種方式只能解決小部分的崩潰,所以為了更好的解決內存崩潰的問題,火山引擎自研了一系列工具。
火山引擎首先明確了這樣一款內存工具需要滿足什么樣的目標。簡單來說主要有四點。一是權限要求低,二是需要精準定位,三是能實現自動化,四是性能影響低。
基于這樣的目標,火山引擎研發推出了一款名為VEHook的視頻編輯質量工具。
這一工具具備四項優勢。一是可以精準的跟蹤內存和顯存的申請,跟蹤系統里每一MB的內容由哪個代碼申請;二是基于申請的跟蹤可以精準定位是哪一塊代碼發生了內存泄漏;三是內存的越界能夠精準的定位,到底是哪一塊發生問題;四是工具無需root或者越獄。
除了內存崩潰之外,火山引擎還針對廠商驅動的bug、文件存儲導致的文件損害等崩潰問題提供了相應的解決方案。
比如針對前者,火山引擎可以基于Hook技術,注入保護性代碼,避免應用崩潰,同時和廠商展開合作,一起分析排查,在調用層面避免崩潰;針對后者,火山引擎給文件存儲做了多重備份,如安卓動態庫的損害,就有多種lod機制,通過云端實現線上下發。
此外,針對應用無響應、死鎖問題,以及低端機上經常出現的編輯交互卡頓等,火山引擎也都運用技術手段分別進行處理。火山引擎還會分析用戶的機器性能程度,并根據benchmark的檢測,自動降低創作分辨率,減輕CPU的負擔。如果是低端老舊機型,火山引擎則會提供基本的視頻編輯功能,并直接去除高端功能,最大化提升用戶體驗。
在本次活動之后,火山引擎增長沙龍的其他主題活動也在深圳、北京等地陸續展開。