1. 程式人生 > >視訊雲王海華:關於移動短視訊技術選型的那些事

視訊雲王海華:關於移動短視訊技術選型的那些事

摘要: 在短視訊時代,讓自己的產品提供短視訊能力,並擁有良好的使用者拍攝和觀看體驗,讓短視訊真正能夠幫助業務發展是每個產品都應該考慮的問題。如何讓自己的應用能夠快速擁有短視訊的能力,讓短視訊在你的應用裡能夠擁有更好的使用者體驗呢?今天我們從完整的技術鏈路上來梳理一下搭建一個完整的短視訊的服務我們需要考慮哪些技術相關的問題。

在短視訊時代,讓自己的產品提供短視訊能力,並擁有良好的使用者拍攝和觀看體驗,讓短視訊真正能夠幫助業務發展是每個產品都應該考慮的問題。如何讓自己的應用能夠快速擁有短視訊的能力,讓短視訊在你的應用裡能夠擁有更好的使用者體驗呢?今天我們從完整的技術鏈路上來梳理一下搭建一個完整的短視訊的服務我們需要考慮哪些技術相關的問題。首先我們來看一張圖:


上圖展示了一個移動短視訊的一個生命週期,在整個生命週期中包含了以下幾個關鍵的步驟:移動端適配拍攝+編輯,視訊檔案的上傳,視訊檔案處理(儲存,轉碼,視訊理解),視訊分發(CDN加速),短視訊的播放。
那麼下面我們分開來講講每個階段在短視訊場景裡需要考慮的一些問題。

一、如何選擇一個短視訊SDK

為什麼講如何選擇一個SDK而不是開發一個SDK?因為從零開始開發一個短視訊SDK對開發工程師音視訊專業能力有較高的要求,而今天在市面上可以找到很多非常成熟的短視訊SDK,所以不建議自研。但是面對眾多的SDK我們該如何選擇呢?我們可以從以下幾個方面去評價一個SDK的優劣:

1. 功能的豐富度

現在市場上提供的短視訊SDK上看像快手,抖音等主要功能基本已經對齊,各家都會提供一些各自特色的功能,比如阿里雲提供實時動態帖子,照片視訊混合匯入等。這塊大家可以根據自己的產品進行選擇;

2. 效能表現

說到移動端的效能大家通常會從CPU佔用,記憶體佔用,功耗等方面來做出自己的評估,但是對於短視訊SDK的特殊場景是使用者快速完成一個短視訊拍攝和編輯,我們需要充分利用手機的效能包括CPU,GPU等硬體資源來完成 最終視訊的合成,所以往往在真正合成的時候CPU佔用往往會比較高。 我們來衡量一個短視訊SDK的效能通常重點關注兩個問題:第一誰能拍攝出更大解析度,更高幀率的視訊,第二匯入合成一個相同解析度,相同時長,相同幀率的視訊誰花的時間更短?這裡就涉及到短視訊的解碼效能,渲染效能,編碼效能和整體多媒體框架排程效能誰更優秀;

3. 視訊質量

拍攝出一個清晰的,流暢的,檔案大小又足夠小的視訊是作為一個SDK或者一個產品需要去追求的。

4. 整體穩定性

移動的環境異常複雜特別在安卓平臺,SDK能在各個平臺,各種手機上的穩定執行是穩定性的一個重要指標,一般都會從Crash率來評價一個SDK的穩定性。現在市場上很少有SDK公佈自己的Crash率,使用者可以從SDK的所對接的APP上做一個評估。

5. 擴充套件性

是否有足夠豐富的API提供,能夠完成一些個性化的功能開發。

6. 包大小

整個應用安裝包的大小直接影響使用者下載,更新,安裝時間和使用者手機儲存空間,進而也影響了應用程式的推廣成本,所以引入的第三方SDK的包大小也是需要非常關注的。

現在有些SDK為了一味追求包大小直接在短視訊SDK中完全使用了硬編硬解,從而拋棄了ffmpeg等第三方包來減少包大小,我認為是不可取的,首先硬編硬解存在非常多的適配問題會引起使用者直接無法使用短視訊功能,另外在某些機型上硬編硬解的能力不一定比CPU的能力強,所以還是需要根據機型適配合理選擇編解碼器。

7. 價格

現在市場上一般對短視訊SDK都會有自己的一些定價策略,主要有以下幾種:跟雲端繫結普通功能免費試用,高階功能收取一定的費用幾十萬不等。另外如果在雲端有較大的消費可以拿到一定的折扣。

經過以上這幾個維度的比較,我相信能夠很快確定一個合適的短視訊SDK的。

接下來我們看看在短視訊的場景裡面雲端服務我們如何選擇?在選擇的時候我們需要重點關注哪些問題?

二、雲端服務選擇

1. 儲存

容量和處理能力彈性擴充套件,安全可靠是作為一個儲存服務必須要具備的能力,所以選擇一個可靠的雲端儲存服務是首選的。

阿里雲OSS:海量、安全、低成本、高可靠的雲端儲存服務,提供99.999999999%的資料可靠性,使用 RESTful API可以在網際網路任何位置儲存和訪問,容量和處理能力彈性擴充套件,多種儲存型別供選擇全面優化 儲存成本。

2. 媒體處理

從客戶端產生的視訊為了讓視訊更加清晰加上手機端的處理能力畢竟有限,往往這個我們稱之為原片的視訊檔案相對比較大,當我們把檔案上傳到我們雲端提供眾多使用者進行觀看的的時候我們需要關注一下幾個問題:

  • 1.如何減低整體頻寬流量成本;
  • 2.環境複雜的移動端產生的視訊在播放的時候是否存在一些相容性的問題?
  • 3.在複雜行動網路下如何提升使用者的觀看流暢度體驗,降低卡頓率?
  • 4.如何降低終端使用者流量成本?
  • 5.......

所有的這些問題使得我們都需要在雲端對視訊做一次統一的處理保證視訊格式的統一從而提升播放的相容性,同時需要在保證清晰度不下降的情況下儘量壓縮檔案大小。

小貼士:一般視訊處理(轉碼)需要一定的耗時,根據視訊時長從幾秒鐘到幾分鐘不等,而在短視訊場景裡面往往需要快速消費,在這種場景裡面通常做法可以採用非同步處理的方式來做,先讓使用者觀看原片,等待轉碼完成後再把各種清晰度的視訊下發給觀眾。

在阿里雲點播放服務中只需要幾個簡單的配置就可以完成以上所有的能力,除了這些能力以外,點播服務是集強大的媒資管理能力,視訊編輯能力,詳細的資料統計能力,分發加速於一體的一站式音視訊點播解決方案。

三、播放器

視訊的最終的消費就是需要有一個優秀的播放器,選擇一個播放器的時候除了關注CPU佔用,記憶體佔用,功耗,以及一些傳統播放的能力以外在短視訊場景裡面會有自己比較特殊的幾個需求,主要有以下幾點:

  1. 像抖音這種沉浸是的播放體驗中離不開播放器的快速啟播的能力(秒開);
  2. 短視訊往往都會有較多的迴圈播放的需求,需要考慮首尾迴圈是否無縫和為了節省流量播放器有快取的能力;
  3. 播放行為資料是一個對視訊產品非常重要的,播放器是否提供行為資料埋點,上報,雲端分析,最終報表展示也是至關重要的;

小貼士:播放器有著名的開源的播放器ijkplayer,但是各種優化和功能的開發需要有專業開發資源。另外各大雲廠家也都提供了各自播放器。建議是端和雲能夠配套使用,這樣才能夠發揮出各自的優勢達到更好的播 放體驗;

解決上了以上的幾個技術問題以後,基本能夠完成整個短視訊產品的開發了。

四、視訊AI

很多短視訊場景都是UGC的業務場景,使用者可以任意拍攝和上傳自己的短視訊到平臺上。而在國內的大背景下視 頻涉黃,涉政,涉恐,廣告,重複視訊的稽核,為了做好視訊管理和推薦的基礎就是需要對視訊內容進行多維度的 理解和打標,這些問題是不得不考慮的問題,在產品前期視訊量較少的情況下可以有人工進行稽核和視訊運營人員 進行打標。隨著產品的發展海量的短視訊場景中通過純人工完成這兩項工作幾乎是不可能的。所以視訊AI是一個不得不考慮的一個問題。

原文連結