天天看點

小視訊程式開發掌握技巧才最重要

為了節省儲存空間,大部分視訊檔案在進行播放之前都會經過壓縮。相反,在播放的過程中就需要進行一個反射的解壓縮過程,最早這項工作是由CPU完成的,像一些普通分辨率的AVI、Rmvb等檔案,絕大多數CPU都可以勝任,但是發展到現在人們開始偏向于1080p超清視訊需求之後,資料解壓縮的工作量翻倍增長。再加上技術不斷發展,在小視訊程式開發過程中,經常會遇到關于硬編解和軟編解之間的選擇問題。至于如何選擇,根據情況才能做出選擇。

1.推流編碼

推薦Android4.3或以上使用硬體編碼,以下使用軟體編碼,ios使用全硬體編碼方案。

2.播放解碼

Android和ios播放器大都使用軟體解碼方案,雖然在一定程度上犧牲功耗,但是在細節方面表現還是不錯的。

3.軟編碼和寫死的作用

軟解碼:使用CPU進行編碼

寫死:使用非CPU進行編碼

小視訊程式開發掌握技巧才最重要

4.軟編碼和寫死的比較

軟編碼:實作直接、簡單和參數調整友善,但CPU負載較重,性能比起寫死來說較低,軟編碼可以在運作時确定,低碼率下的品質會比寫死的品質要好一些。

寫死:性能好,在低碼率下品質低于軟編碼器,而寫死是不能夠改變的,但是部分産品在GPU硬體平台上移植了優秀的軟編算法,品質基本等同于軟編碼。

視訊編解碼是一個非常消耗性能的操作,比如我們日常在用手機玩遊戲時,經常會遇到手機發熱發燙地問題。雖然分析了視訊編解碼的相關參數,但是實際情況最好的編解碼效果是根據機型進行适配的。由于ios的設别類型較少,可以做到每個機型針對性的測試和優化,但是對于Android來說,就很難做到将機型進行針對性調優,再加上安卓市場每年都會推出很多機型,如果在編寫代碼時固定之後,就會使得後期的維護和疊代困難。

軟編碼是一種設計,而寫死不過是一種具體的實作。小視訊程式開發不隻是需要一個軟體的實作,更加需要軟體能夠很好的修改進而友善擴充。我們常說的對程式進一步重構,目的就在于實作對象之間的松耦合,使程式能夠應對多種情況下的變化,具有一定的擴充性。寫死和軟編碼隻是一種表現在實際情況中的一種問題,而這種思想可以應用于多個方面。

本文聲明原創,轉載請注明出處。

繼續閱讀