短視訊SDK架構設計,短視訊APP開發目標首選
短視訊 SDK 實踐中主要做的一些事情,這其中最重要的就是短視訊 SDK 的架構設計,包括架構設計理念、架構圖、整體資料流程、模組架構設計等。今天小編就簡單介紹一下短視訊APP開發中,選擇什麼樣的廠家,廠家SDK 架構設計理念。
第一點說到 SDK 的設計理念必定要提到命名規範,就跟騰訊的企業理念一樣,他們的命名規範是統一、簡單並且精煉的,比如他們將對外的核心類統一以 PLShortVideo 為字首,在錄製、編輯以及剪輯等模組的命名;引數配置類則均以 PLxxxSetting 為標準進行命名;介面回撥類則均以 PLxxxListener 為標準命名。
第二點他們遵循的是高模組化、模組可插拔的一個理念;高模組化必須要保證每個類每個方法都「名副其實」並「各司其職」,這樣才能編寫更清晰的邏輯;高模組化同時可以促進高複用,減少重複程式碼;在 SDK 內的轉碼核心類,因為編輯、剪輯在最後儲存的時候都需要一個解碼並重新編碼的過程,在這裡,轉碼核心類可以達到一個高複用。
短視訊 SDK 的包體劃分,他們的可以清晰地看到每個包體的功能劃分,不同的功能放在了不同的包體當中。他們並沒有使用 ffmpeg 的軟解軟編,而是儘量使用 Android 和 iOS 的系統 API 進行硬編硬解,這樣不僅減少了包體大小,而且速度要快很多,儘管在技術層面上會增加很多難度,會踩很多坑,但我們還是堅持選用這個方案。在引入第三方庫時,他們也都是會經過充分配置和裁剪去嚴格控制包體的大小,這樣一來,所有包體總和才能有現在「小而精」(1.5M)的成果。表中最後的內建濾鏡模組,其中的濾鏡資源可以選擇性拷貝,SDK 內部會自動判斷。這是關於模組設計方面的一些理念。
第三點是要和 UI 解耦,在從不同 App 中截圖得到的畫面,可以看出每一個App 都有各自的設計,作為一款短視訊 SDK,是絕對不可以在 UI 方面限制客戶發揮的。市面上有些短視訊 SDK 將 UI 寫死並作為 SDK 的一部分,這樣對於客戶在設計 UI 介面上來說,是非常不友好的;他們採用的是另一種方法,SDK 與 UI 進行解耦,客戶的 UI 是可自定義的,整個 SDK 中接受 view 的地方只有一處:
接著是擴充套件性這一塊,我們遵循高擴充套件,開放性的理念。在錄製以及編輯過程中,都會有資料的回撥並支援第三方庫進行美顏,濾鏡,貼紙,特效等功能。
最後是關於可配置引數方面的設計,除了常規引數,比如攝像頭解析度和幀率、麥克風取樣率等可以進行配置之外,包括美顏等引數也都是可以進行配置的。
只有選擇好科學合理的短視訊SDK,才能配合好短視訊APP開發出穩定的短視訊系統,短視訊APP開發結合短視訊SDK打造出一套完整的短視訊系統功能。