短視頻app開發之ios小視頻開發經驗
視頻編碼
短視頻app中如果不進行視頻編碼的話,數據量就會非常大,造成存儲和傳輸困難,所以視頻文件通常都需要在錄制完成之后進行編碼。視頻編碼主要從兩個維度進行數據壓縮:
單張圖像某一區域相鄰像素相似,比如一片紅色只記錄紅色色值和區域,不用記錄這個區域的每一個像素點。
相鄰圖像之間內容相似,因為相鄰兩幀要制造連續的效果,所以兩幀之間的內容一般非常接近,目前主流的視頻編碼技術都是用圖像編碼方法對第一幀進行編碼。
視頻格式
視頻的封裝格式主要有MP4、MOV、AVI、RMVB等,除了RMVB以外,其它格式內封裝的視頻編碼格式都是采取H.264的編碼標準,這也是最常用的編碼標準,壓縮效率比MPEG-2提升了一倍多。但是相反,H.264的解碼難度提高了3倍。
視頻碼率
通常,視頻文件的大小/視頻的時長即定義為碼率。碼率和分辨率與視頻質量之間的關系可以理解為以下幾點:
1.碼率可以理解為取樣率,單位時間內取樣率越大,精度就越高,同時體積也越大。
2.當視頻沒有經過編碼時,如果分辨率越高,那么視頻圖像的細節越清晰。
3.但如果視頻經過編碼,被限制在一定碼率內,編碼器就必須舍棄掉一部分細節。
所以分辨率和碼率都與視頻的清晰度有關。
視頻質量
純粹的視頻(不包括音頻)實質上就是一組幀圖片,經過視頻編碼成為視頻文件再把音頻文件和字幕文件組裝在一起成為我們看到的視頻文件。1秒內出現的圖片數就是幀率,圖片間隔越小畫面就越流暢,所以幀率越高效果就越好,需要的存儲空間也就越多。
軟解碼和硬解碼
H.264的視頻解碼給CPU造成了很大負擔,所以通常會把這部分工作交給更善于進行處理簡單工作但是數據量較大的GPU。
1.GPU解碼就是所謂的硬解碼
2.CPU解碼就是軟解碼。
3.iOS提供的播放器類使用的是硬解碼,所以視頻播放對CPU不會有很大的壓力,但是支持的播放格式比較單一。
以上就是在短視頻app開發過程中,ios端的相關經驗分享。希望能給正在開發的朋友們提供一定的參考和幫助。如果有什么疑問或是需求,歡迎致電或在線咨詢優匠科技