短視訊 SDK 6大功能技術實現方式詳解

又拍雲發表於2017-09-14

第三方短視訊解決方案作為快速切入短視訊行業的首選方式,選擇一款功能齊全、效能優異的短視訊解決方案十分重要。

今天我們來談談短視訊 SDK 6大重要功能點及其技術實現方式。

短視訊拍攝

斷點續拍

指在拍攝過程中可以進行分段式拍攝,並將最終拍攝的所有內容合成一個視訊的功能。

通過斷點續拍功能可以輕鬆實現不同的視訊內容拼接,快速打造出視訊拼接功能,進一步強化平臺高質量的內容輸出。

△ 斷點拍攝功能

技術實現

斷點續拍功能實現需要在進行斷點拍攝時直接呼叫系統 API 或 第三方的相機庫,將每一段 mov 等格式的視訊片段,作為臨時檔案儲存,存放到沙盒目錄中。然後維護視訊片段地址列表,等到拍攝結束後,將地址列表中指向的每個視訊片段進行合成處理(如果不需實現回刪功能,可不必維護視訊地址列表,讀取所有單次錄製時儲存的臨時視訊片段,進行合成即可),最後生成一部完整的短視訊。

重拍(回刪)

指對拍攝的短視訊部分內容不滿意時,可以直接剪下掉這部分內容,進行重拍。

通過重拍功能配合斷點續拍,可以對短視訊進行多次剪輯、拍攝,增強視訊製作時的靈活性,方便性。

△ 重拍(回刪)功能

技術實現

短視訊重拍需在斷點續拍功能的基礎上實現,依據斷點續拍實現方式,我們講一下回刪功能實現的方式。

重拍功能需要維護一個視訊片段地址列表,進行回刪操作時只需要刪除視訊列表中相對應的視訊片段地址。最終只合成地址列表中指向的視訊片段,合成完成後,刪除該次錄製的所有臨時視訊片段即可。

短視訊美化

自定義背景音樂

指短視訊編輯功能中,使用者可以自由新增他喜歡的背景音樂,通常自定義背景音樂支援自己錄音或者選用 App 中已有的音樂。

△ 自定義背景音樂功能

技術實現

自定義背景音樂功能實現,首先需要將視訊源分離成兩個軌道:音訊軌道和視訊軌道。背景音樂素材剝離出音訊軌道,將背景音樂音訊軌道插入原聲的音訊軌道中。可以通過 AVMutableAudioMixInputParameters 來調整原聲和背景音樂的音量。背景音樂插入成功之後,再將得到的音訊軌道與之前的視訊軌道通過呼叫 AVMutableComposition 相關類進行合成,最後匯出為短視訊。

貼紙

貼紙是指短視訊拍攝完成後,可以自由選擇新增不同的貼紙,貼紙有場景貼紙和人臉貼紙兩種。

△ 貼紙功能

技術實現

貼紙功能需要使用人臉檢測功能,人臉檢測實現方式有兩種:

1.通過第三方資料庫 OpenCV 中開源的跨平臺計算機視覺和機器學習庫進行人臉識別;

2.通過系統自帶的 CoreImage 庫,由於 CoreImage 庫已經提供了 CIDetector ,所以它很適合用來進行人臉檢測。

這2種方法,更推薦 OpenCV,因為 CoreImage 庫只能定位人臉,鼻子、嘴巴、眼睛等五官位置,而 OpenCV 不僅可以實現人臉,五官的定位,而且還可以對眉毛、側臉、頭髮等位置進行識別定位,從而能支援不同部位的貼紙。

最後在成功定位貼紙之後,進行視訊影象處理即可。

有些實現中還會結合以上兩種方式,先用借用 CIDetector 出色的效能框出人臉位置,然後將這小片區域交給 OpenCV 識別模型以標出具體的人臉結構和輪廓位置。

濾鏡、水印

這兩項功能作為短視訊美化最核心的功能,由於它們的實現方式大同小異,所以將它們整合到了一起。

濾鏡是指拍攝的短視訊可以選擇不同的場景濾鏡,並且進行美化程度調整;水印是指短視訊拍攝完成後,可以在短視訊上新增不同的水印,保護短視訊的版權。

△ 濾鏡功能

技術實現

這兩個功能本質都是對視訊影象進行處理。

大部分短視訊 SDK 的濾鏡和水印使用的都是第三方影象處理庫 —— GPUImage 庫。使用 GPU 來處理影象,還自帶了大量高質量的影象處理濾鏡。當這些基本功能無法滿足實際開發中的需求時,GPUImage 還支援自定義濾鏡。
美顏濾鏡:它是一種濾鏡組合,可以通過組合亮度(GPUImageBrightnessFilter)和雙邊濾波(GPUImageBilateralFilter)這兩個濾鏡達到美顏效果。如果想達到更好的效果,可以額外新增需要的濾鏡或者調整濾鏡引數。

水印:水印實現主要通過 GPUImageUIElement 將水印轉成影象資料,再通過 BlenderFilter () 將兩個影象資料合併,其中可以通過 setFrameProcessingCompletionBlock 回撥動態的調整 View,從而實現水印動態改變的效果。

自定義介面佈局和 UI 樣式

自定義介面佈局和 UI 樣式是指 App 圖示和功能點位置可以移動轉換的功能,並且修改成不同的 UI 樣式。一般情況,短視訊 SDK 都會避免將 UI 邏輯和介面包含進去,保證滿足短視訊 App 開發者的設計互動、UI 需求,以及 App 的差異化。

技術實現

將 UI 和 SDK 高度分離的同時又保持兩者的實時性,細分 SDK 的功能邏輯和 UI 邏輯。這需要將 UI 部分程式碼放入 Demo 中,而功能邏輯放入 SDK 中。保證 SDK 提供完善的API 和 UI 層互動,使得 UI 層能及時根據 SDK 的回撥調整 UI 樣式。

總結

以上就是短視訊拍攝端 SDK 6項重要功能的分析及其技術實現方式。又拍雲短視訊拍攝端 SDK 整合14項拍攝功能,並且支援 CDN 就近上傳,全網分發以及雲端處理。提供免費版、標準版和專業版三個不同版本,歡迎體驗試用。

點選瞭解又拍雲短視訊一站式解決方案

 

相關文章