短視頻APP的用戶停留時間長、黏性大、使用頻次高,其第二天留存、7日留存甚至是月留存一樣也很是高,而大多數公司在進行本身產品APP的開發時,也會在其中集成垂直分類或一些社區化的短視頻功能。短視頻行業之因此如此火爆,就是由於它將手機的視頻錄製和碎片化時間這兩個特色都發揮到了極致,短視頻app開發業務也隨之變得被大衆熟知起來。
算法
短視頻APP開發錄製模塊的重點在於幀數據獲取,除了能夠經過攝像頭獲取視頻幀,還能夠經過屏幕錄製獲取視頻幀,而音頻幀數據主要仍是經過麥克風進行獲取;虛線部分的Filter模塊主要實現了內置美顏/濾鏡功能,另外由於有紋理和YUV數據的CallBack回調機制,因此也支持第三方庫的美顏、濾鏡、特效等功能;處理後的數據會通過OpenGL進行裁剪,縮放,旋轉等操做,這些工做雖然能夠由CPU來進行,可是會比較耗時,利用GPU是更明智的選擇;最後獲得紋理後,會被分紅兩路,一路渲染顯示,另外一路進行編碼封裝,這兩個線程共享同一個紋理,這樣的處理大大減小了資源的佔用,提升了SDK的工做效率。緩存
在短視頻APP開發業務服務器端,當生產者生產出一個視頻並將其上傳至業務服務器後,系統會入庫這條短視頻的Matedata並存儲到數據源中,真正的短視頻文件則會安放在存儲中。這裏須要注意的是,一些小運營商的DNS緩存會下降上傳成功率,咱們須要經過技術優化來克服此類問題。當某用戶消費此短視頻時,經過使用CDN對總體過程進行加速來提高消費體驗,同時CDN也幫咱們提升緩存命中率節省帶寬成本。而用戶常常消費的一些高質量視頻內容離不開可靠的運營後臺,運營後臺可幫助視頻生產者完成編輯、推薦、分類等工做。如今咱們平時用到的不少APP都會根據用戶行爲構造人物畫像並經過人工標註或算法生成等方式將這些內容進行標註,從而獲知用戶感興趣的內容並進行精準化推薦,人物畫像與智能推薦系統對大多數APP來講都是一個很是重要的系統,可有效增大用戶黏性。服務器
隨着短視頻APP開發的不斷的發展,以及實時直播的崛起,帶寬的壓力會愈來愈大,因此可以結合着P2P+CDN的方式來緩解服務端的帶寬壓力,不過P2P主要會面臨着防火牆的問題、以及節點網絡質量的影響,同時也依賴於視頻播放的熱度,這種對於效果都會有一些影響,同時爲了更好的播放流暢度,單一的P2P沒法知足需求,須要基於P2P和CDN的輔助進行。而帶寬的另一個節省之道,就是經過更好的編碼標準來進行優化,好比H.265的編碼標準,經過這個可以節省1半的流量,只不過目前H.265在硬編支持不是很好,只有個別手機機型支持,而軟編碼的方式相比與H.264,編解碼速度要慢個幾倍,這種對於能耗消耗比較高,處理也比較慢,不過隨着硬件的不斷升級,H.265將會是後續的一個趨勢,同時依託於這個之上的一些圖片編碼標準也可以獲得有效的應用,從而來節省帶寬。網絡