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


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

今天我們來談談短視頻 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 就近上傳,全網分發以及雲端處理。提供免費版、標准版和專業版三個不同版本,歡迎體驗試用。

點擊了解又拍雲短視頻一站式解決方案

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM