現(xiàn)在人們的上網(wǎng)習慣已經(jīng)從PC端轉到移動端,移動端APP的開發(fā)已經(jīng)成了一個重要的開發(fā)項目,這也是對程序員的一個考驗,特別是現(xiàn)在流行的短視頻,讓短視頻APP開發(fā)成為重點,移動端目前有安卓和iOS兩大系統(tǒng),所以對于開發(fā)來說需要單獨進行開發(fā)。
短視頻成功的從人們碎片化的時間里找到突破口,占領了市場,在開發(fā)短視頻APP時iOS端開發(fā)經(jīng)常會遇到問題呢?今天主要分享一下iOS短視頻APP開發(fā)過程中的一些經(jīng)驗。
短視頻app中如果不進行視頻編碼的話,數(shù)據(jù)量就會非常大,造成存儲和傳輸困難,所以視頻文件通常都需要在錄制完成之后進行編碼。視頻編碼主要從兩個維度進行數(shù)據(jù)壓縮:單張圖像某一區(qū)域相鄰像素相似,比如一片紅色只記錄紅色色值和區(qū)域,不用記錄這個區(qū)域的每一個像素點。相鄰圖像之間內容相似,因為相鄰兩幀要制造連續(xù)的效果,所以兩幀之間的內容一般非常接近,目前主流的視頻編碼技術都是用圖像編碼方法對幀進行編碼。
視頻的封裝格式主要有MP4、MOV、AVI、RMVB等,除了RMVB以外,其它格式內封裝的視頻編碼格式都是采取H.264的編碼標準,這也是常用的編碼標準,壓縮效率比MPEG-2提升了一倍多。但是相反,H.264的解碼難度提高了3倍。
通常,視頻文件的大小/視頻的時長即定義為碼率。碼率和分辨率與視頻質量之間的關系可以理解為以下幾點:
1.碼率可以理解為取樣率,單位時間內取樣率越大,精度就越高,同時體積也越大。
2.當視頻沒有經(jīng)過編碼時,如果分辨率越高,那么視頻圖像的細節(jié)越清晰。
3.但如果視頻經(jīng)過編碼,被限制在一定碼率內,編碼器就必須舍棄掉一部分細節(jié)。
所以分辨率和碼率都與視頻的清晰度有關。
如果不包含音頻,視頻其實是一組幀圖片,經(jīng)過視頻編碼成為視頻文件再把音頻文件和字幕文件組裝在一起成為我們看到的視頻文件。1秒內出現(xiàn)的圖片數(shù)就是幀率,圖片間隔越小畫面就越流暢,所以幀率越果就越好,需要的存儲空間也就越多。
軟解碼和硬解碼問題:H.264的視頻解碼給CPU造成了很大負擔,所以通常會把這部分工作交給更善于進行處理簡單工作但是數(shù)據(jù)量較大的GPU。GPU解碼就是所謂的硬解碼;CPU解碼就是軟解碼;iOS提供的播放器類使用的是硬解碼,所以視頻播放對CPU不會有很大的壓力,但是支持的播放格式比較單一。
一個APP的出現(xiàn)是經(jīng)過設計,開發(fā)以及測試之后才會出現(xiàn)在大眾面前,看似簡單的一個短視頻APP其實需要多個部門相互配合才能出來,如果人力方面不足,小編建議還是找服務商開發(fā),省時省心,以上就是關于短視頻APP開發(fā)過程中iOS端的一些經(jīng)驗分享,有更多關于直播、短視頻、社交APP的問題,歡迎大家留言,我們一起討論。