短視訊app開發之ios小視訊開發經驗共享

xrdzj_2010發表於2019-01-23

移動端相比起PC端的優勢除了它便攜以外,還有一個比較明顯的優勢就是可以通過手機快速方便的創造各種多媒體作品。比如照片分享、視訊錄製等,目前大部分市面上的手機APP都存在這些功能。短視訊行業之所以如此火爆,就是因為它將手機的視訊錄製和碎片化時間這兩個特點都發揮到了極致,短視訊app開發業務也隨之變得被大眾熟知起來。本文主要給大家分享一下ios端的開發經驗。

視訊編碼

短視訊app中如果不進行視訊編碼的話,資料量就會非常大,造成儲存和傳輸困難,所以視訊檔案通常都需要在錄製完成之後進行編碼。視訊編碼主要從兩個維度進行資料壓縮:

  1. 單張影象某一區域相鄰畫素相似,比如一片紅色只記錄紅色色值和區域,不用記錄這個區域的每一個畫素點。
  2. 相鄰影象之間內容相似,因為相鄰兩幀要製造連續的效果,所以兩幀之間的內容一般非常接近,目前主流的視訊編碼技術都是用影象編碼方法對第一幀進行編碼。

視訊格式

視訊的封裝格式主要有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端的相關經驗分享。希望能給正在開發的朋友們提供一定的參考和幫助。

相關文章