摘要: 在短視頻時代,讓本身的產品提供短視頻能力,並擁有良好的用戶拍攝和觀看體驗,讓短視頻真正可以幫助業務發展是每一個產品都應該考慮的問題。如何讓本身的應用可以快速擁有短視頻的能力,讓短視頻在你的應用裏可以擁有更好的用戶體驗呢?今天咱們從完整的技術鏈路上來梳理一下搭建一個完整的短視頻的服務咱們須要考慮哪些技術相關的問題。緩存
在短視頻時代,讓本身的產品提供短視頻能力,並擁有良好的用戶拍攝和觀看體驗,讓短視頻真正可以幫助業務發展是每一個產品都應該考慮的問題。如何讓本身的應用可以快速擁有短視頻的能力,讓短視頻在你的應用裏可以擁有更好的用戶體驗呢?今天咱們從完整的技術鏈路上來梳理一下搭建一個完整的短視頻的服務咱們須要考慮哪些技術相關的問題。首先咱們來看一張圖:安全
上圖展現了一個移動短視頻的一個生命週期,在整個生命週期中包含了如下幾個關鍵的步驟:移動端適配拍攝+編輯,視頻文件的上傳,視頻文件處理(存儲,轉碼,視頻理解),視頻分發(CDN加速),短視頻的播放。
那麼下面咱們分開來說講每一個階段在短視頻場景裏須要考慮的一些問題。網絡
爲何講如何選擇一個SDK而不是開發一個SDK?由於從零開始開發一個短視頻SDK對開發工程師音視頻專業能力有較高的要求,而今天在市面上能夠找到不少很是成熟的短視頻SDK,因此不建議自研。可是面對衆多的SDK咱們該如何選擇呢?咱們能夠從如下幾個方面去評價一個SDK的優劣:框架
如今市場上提供的短視頻SDK上看像快手,抖音等主要功能基本已經對齊,各家都會提供一些各自特點的功能,好比阿里雲提供實時動態帖子,照片視頻混合導入等。這塊你們能夠根據本身的產品進行選擇;異步
說到移動端的性能你們一般會從CPU佔用,內存佔用,功耗等方面來作出本身的評估,可是對於短視頻SDK的特殊場景是用戶快速完成一個短視頻拍攝和編輯,咱們須要充分利用手機的性能包括CPU,GPU等硬件資源來完成 最終視頻的合成,因此每每在真正合成的時候CPU佔用每每會比較高。 咱們來衡量一個短視頻SDK的性能一般重點關注兩個問題:第一誰能拍攝出更大分辨率,更高幀率的視頻,第二導入合成一個相同分辨率,相同時長,相同幀率的視頻誰花的時間更短?這裏就涉及到短視頻的解碼性能,渲染性能,編碼性能和總體多媒體框架調度性能誰更優秀;性能
拍攝出一個清晰的,流暢的,文件大小又足夠小的視頻是做爲一個SDK或者一個產品須要去追求的。優化
移動的環境異常複雜特別在安卓平臺,SDK能在各個平臺,各類手機上的穩定運行是穩定性的一個重要指標,通常都會從Crash率來評價一個SDK的穩定性。如今市場上不多有SDK公佈本身的Crash率,用戶能夠從SDK的所對接的APP上作一個評估。阿里雲
是否有足夠豐富的API提供,可以完成一些個性化的功能開發。編碼
整個應用安裝包的大小直接影響用戶下載,更新,安裝時間和用戶手機存儲空間,進而也影響了應用程序的推廣成本,因此引入的第三方SDK的包大小也是須要很是關注的。spa
如今有些SDK爲了一味追求包大小直接在短視頻SDK中徹底使用了硬編硬解,從而拋棄了ffmpeg等第三方包來減小包大小,我認爲是不可取的,首先硬編硬解存在很是多的適配問題會引發用戶直接沒法使用短視頻功能,另外在某些機型上硬編硬解的能力不必定比CPU的能力強,因此仍是須要根據機型適配合理選擇編解碼器。
如今市場上通常對短視頻SDK都會有本身的一些訂價策略,主要有如下幾種:跟雲端綁定普通功能免費試用,高級功能收取必定的費用幾十萬不等。另外若是在雲端有較大的消費能夠拿到必定的折扣。
通過以上這幾個維度的比較,我相信可以很快肯定一個合適的短視頻SDK的。
接下來咱們看看在短視頻的場景裏面雲端服務咱們如何選擇?在選擇的時候咱們須要重點關注哪些問題?
容量和處理能力彈性擴展,安全可靠是做爲一個存儲服務必需要具有的能力,因此選擇一個可靠的雲存儲服務是首選的。
阿里雲OSS:海量、安全、低成本、高可靠的雲存儲服務,提供99.999999999%的數據可靠性,使用 RESTful API能夠在互聯網任何位置存儲和訪問,容量和處理能力彈性擴展,多種存儲類型供選擇全面優化 存儲成本。
從客戶端產生的視頻爲了讓視頻更加清晰加上手機端的處理能力畢竟有限,每每這個咱們稱之爲原片的視頻文件相對比較大,當咱們把文件上傳到咱們雲端提供衆多用戶進行觀看的的時候咱們須要關注一下幾個問題:
全部的這些問題使得咱們都須要在雲端對視頻作一次統一的處理保證視頻格式的統一從而提高播放的兼容性,同時須要在保證清晰度不降低的狀況下儘可能壓縮文件大小。
小貼士:通常視頻處理(轉碼)須要必定的耗時,根據視頻時長從幾秒鐘到幾分鐘不等,而在短視頻場景裏面每每須要快速消費,在這種場景裏面一般作法能夠採用異步處理的方式來作,先讓用戶觀看原片,等待轉碼完成後再把各類清晰度的視頻下發給觀衆。
在阿里雲點播放服務中只須要幾個簡單的配置就能夠完成以上全部的能力,除了這些能力之外,點播服務是集強大的媒資管理能力,視頻編輯能力,詳細的數據統計能力,分發加速於一體的一站式音視頻點播解決方案。
視頻的最終的消費就是須要有一個優秀的播放器,選擇一個播放器的時候除了關注CPU佔用,內存佔用,功耗,以及一些傳統播放的能力之外在短視頻場景裏面會有本身比較特殊的幾個需求,主要有如下幾點:
小貼士:播放器有著名的開源的播放器ijkplayer,可是各類優化和功能的開發須要有專業開發資源。另外各大雲廠家也都提供了各自播放器。建議是端和雲可以配套使用,這樣纔可以發揮出各自的優點達到更好的播 放體驗;
解決上了以上的幾個技術問題之後,基本可以完成整個短視頻產品的開發了。
不少短視頻場景都是UGC的業務場景,用戶能夠任意拍攝和上傳本身的短視頻到平臺上。而在國內的大背景下視 頻涉黃,涉政,涉恐,廣告,重複視頻的審覈,爲了作好視頻管理和推薦的基礎就是須要對視頻內容進行多維度的 理解和打標,這些問題是不得不考慮的問題,在產品前期視頻量較少的狀況下能夠有人工進行審覈和視頻運營人員 進行打標。隨着產品的發展海量的短視頻場景中經過純人工完成這兩項工做幾乎是不可能的。因此視頻AI是一個不得不考慮的一個問題。
本文爲雲棲社區原創內容,未經容許不得轉載。