短视频 SDK 6大功能技术实现方式详解

百家 作者:又拍云 2017-09-13 10:43:36

又拍云 Open Talk No.36(北京-中关村)


——BEGIN——  

第三方短视频解决方案作为快速切入短视频行业的首选方式,选择一款功能齐全、性能优异的短视频解决方案十分重要。

今天我们来谈谈短视频 SDK 3大板块的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 就近上传,全网分发以及云端处理。提供免费版、标准版和专业版三个不同版本,欢迎体验试用。

点击“阅读原文”体验又拍云短视频 SDK Demo。


关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接