5G將開啟萬物廣泛互聯(lián)改變每個人的生活,短視頻也將不再受限與網(wǎng)絡(luò)環(huán)境的問題,開發(fā)短視頻APP也炙手可熱,現(xiàn)在如果開發(fā)短視頻系統(tǒng),有很多需要注意的問題,比如架構(gòu)問題,事先了解好短視頻APP開發(fā)架構(gòu)問題,避免日后走冤枉路。
短視頻APP系統(tǒng)開發(fā)中4個架構(gòu)問題
1.數(shù)據(jù)格式標(biāo)準的差異
與文本數(shù)據(jù)相比,短視頻屬于二進制數(shù)據(jù),擁有固定的編碼標(biāo)準。在短視頻app開發(fā)過程中比較常見也常用的有、等格式標(biāo)準。
2.數(shù)據(jù)大小的差異
(1)由于短視頻的數(shù)據(jù)量比圖片和文本都要大得多,所以在上傳、存放以及播放方面都是需要注意的。在網(wǎng)絡(luò)環(huán)境較差的狀況下上傳視頻,上傳的成功率普遍較低,特別是在晚高峰,也就是省際網(wǎng)絡(luò)比較擁塞的情況下就更加明顯。
針對視頻的上傳,需要基于CDN進行動態(tài)加速來優(yōu)化網(wǎng)絡(luò)鏈路,同時對于較大的視頻采取分片上傳的方式,以減少失敗重傳的成本和失敗率。不同的CDN的鏈路狀況在不同的地區(qū)和運營商表現(xiàn)不一,所以就需要選擇比較適合自己情況的CDN。
(2)由于數(shù)據(jù)相對較大,當(dāng)數(shù)據(jù)量達到一定規(guī)模時存儲容量也會面臨一些挑戰(zhàn)。目前市面上的APP視頻容量級別達到的規(guī)模要求存儲本身能具備較強的線性擴展能力,并且有足夠的資源冗余,但是傳統(tǒng)的Mysql等數(shù)據(jù)庫比較難支持,所以需要借助專用的分布式對象存儲,通過自建的服務(wù)或云存儲服務(wù)進行解決。
(3)在播放的過程中,有的視頻文件較大就很容易受到網(wǎng)絡(luò)環(huán)境的影響,為了避免卡頓就需要在一些細節(jié)上進行處理,比如通過網(wǎng)絡(luò)鏈路進行優(yōu)化或者通過多碼率的自適應(yīng)優(yōu)化。比如多路轉(zhuǎn)碼,然后再根據(jù)特定的算法模型量化用戶網(wǎng)絡(luò)情況進行選碼率,網(wǎng)絡(luò)環(huán)境較差的選擇低碼率。
3.數(shù)據(jù)處理需求
(1)由于視頻的本身可以承載大量信息,所以就需要處理大量的數(shù)據(jù)。比如視頻轉(zhuǎn)碼、視頻水印或者是視頻的鑒黃等。對視頻進行處理時通常分為兩個方面,一個是客戶端的處理,另一個是服務(wù)端的處理。
(2)客戶端的處理通常使用手機的處理性能來減少服務(wù)器的壓力,同時也容易面臨一些低端機型的處理效率問題。在客戶端主要是是對視頻美顏美化的算法、人臉識別或者是視頻的編解碼等進行處理。
目前客戶端的視頻編解碼主要分為軟編碼和硬編碼的方式,軟編碼的兼容性較好但是耗能高且慢。硬編碼低耗能且快但是兼容性較差。所以通常采取結(jié)合的方式進行處理。
(3)服務(wù)端的處理主要是進行視頻的一些審核和轉(zhuǎn)碼等工作。目前經(jīng)常使用ffmpeg來進行處理。但是服務(wù)端需要考慮的問題就是資源消耗方面比較高,使用的機器數(shù)也比較多,獨一在服務(wù)端做視頻處理操作需要控制在合理的范圍之內(nèi)。
4.審核問題
短視頻的內(nèi)容本身有多種多樣的表現(xiàn)形式,所以也容易出現(xiàn)各種涉黃涉恐的視頻信息,如果處理不好就會非常麻煩。視頻審核最大的問題就是會面臨視頻時間過長,造成人力審核成本的增加。
在這一方面可以采取一些技術(shù)手段,比如接入一些三方視頻識別模塊、抽取視頻中某幾幀進行檢查或者也可以通過大數(shù)據(jù)分析等方法進行審核。
短視頻APP開發(fā)已然成為大勢所趨,在開發(fā)過程中會出現(xiàn)很多問題,僅僅是文中所提到的架構(gòu)問題,還有很多需要解決的問題都值得注意,這些都關(guān)系著短視頻APP后期能否正常運行,運行會不會出問題等等。