# PLShortVideoKit **Repository Path**: LMGod/PLShortVideoKit ## Basic Information - **Project Name**: PLShortVideoKit - **Description**: PLShortVideoKit 是七牛推出的一款适用于 iOS 平台的短视频 SDK,提供了包括美颜、滤镜、水印、断点录制、分段回删、视频编辑、混音特效、视频剪辑、本地转码、视频上传在内的多种功能,支持高度定制以及二次开发。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-05-11 - **Last Updated**: 2021-10-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 1 产品简介 七牛短视频 SDK,方便开发者快速实现短视频拍摄、剪辑、编辑、合成、分发功能。我们提供 80+ 功能供开发使用,[点击此处](https://portal.qiniu.com/sdk/licenses?showDrawer&ref=www.qiniu.com) 即可获得 **0 元体验**。 # 2 多版本功能分布 短视频SDK主要区分精简版、基础版、进阶版、专业版 4 个版本,不同版本的功能区别见如下表格 | 功能 | 子功能 | 精简版 | 基础版 | 进阶版 | 专业版 | | :-------------------------- | :------------------------ | :------------------:| :---------------------: | :---------------------: | :----------------------: | | **用户交互界面** | **提供了一套完整的UI交互源码,可复用或自定义** | ✓ | ✓ | ✓ | ✓ | | **拍摄设置** | **摄像头采集** | ✓ | ✓ | ✓ | ✓ | | | **麦克风采集** | ✓ | ✓ | ✓ | ✓ | | | **视频采集参数定义**
*支持最高 1080P 拍摄,支持自定义视频采集源、采集画面的分辨率、采集画面的长宽比等参数* | ✓ | ✓ | ✓ | ✓ | | | **音频采集参数定义**
*支持自定义音频采集源、音频格式、音频声道、音频采样率等参数* | ✓ | ✓ | ✓ | ✓ | | | **视频编码参数定义**
*支持自定义编码视频的码率、帧率、分辨率、H.264 编码方式等参数* | ✓ | ✓ | ✓ | ✓ | | | **音频编码参数定义**
*支持自定义编码音频的码率、采样率、声道数、AAC 编码方式等参数* | ✓ | ✓ | ✓ | ✓ | | | **拍摄时长设置**
*支持设置实际拍摄过程中的最大、最小拍摄时长* | ✓ | ✓ | ✓ | ✓ | | | **前后台切换**
*根据监听到 Application 的前后台状态自动停止和开始录制视频,默认从后台进入前台自动开始录制* | ✓ | ✓ | ✓ | ✓ | | | **摄像头切换**
*支持切换前后摄像头进行拍摄* | ✓ | ✓ | ✓ | ✓ | | | **闪光灯设置**
*支持开关闪光灯用于拍摄时的补光* | ✓ | ✓ | ✓ | ✓ | | | **画面镜像**
*支持设置是否镜像预览画面和编码画面* | ✓ | ✓ | ✓ | ✓ | | | **画面对焦**
*支持手动对焦和自动对焦* | ✓ | ✓ | ✓ | ✓ | | | **焦距调节**
*支持手动调节画面焦距进行放大、缩小* | ✓ | ✓ | ✓ | ✓ | | | **曝光调节**
*支持调整曝光度参数* | ✓ | ✓ | ✓ | ✓ | | **拍摄模式** | **横屏拍摄**
*支持根据设备的方向自动确定竖屏、横屏拍摄* | ✓ | ✓ | ✓ | ✓ | | | **分段拍摄**
*支持拍摄过程中实现连续多次拍摄、断点续拍、回删* | ✓ | ✓ | ✓ | ✓ | | | **静音拍摄**
*支持静音拍摄* | ✓ | ✓ | ✓ | ✓ | | | **音频录制**
*支持纯音频录制* | ✓ | ✓ | ✓ | ✓ | | | **屏幕录制**
*支持对整个屏幕区域进行录制,实现整体的录制效果* | ✓ | ✓ | ✓ | ✓ | | | **变速拍摄**
*支持设置拍摄时的快/慢速率,目前支持 5 种拍摄速率(默认正常速率,只支持 2 的倍数,或 1/2 的倍数)* | ✗ | ✓ | ✓ | ✓ | | | **分屏拍摄(合拍)**
*可以根据素材视频(或图片)进行合拍,生成双画面视频* | ✗ | ✗ | ✓ | ✓ | | **实时处理** | **实时截图**
*支持拍摄时实时截图拍照保存到本地* | ✓ | ✓ | ✓ | ✓ | | | **实时预览**
*支持实时本地预览* | ✓ | ✓ | ✓ | ✓ | | | **实时美颜**
*支持拍摄时启用美颜功能,支持设置美颜、美白、红润 3 种效果并调节强度* | ✓ | ✓ | ✓ | ✓ | | | **实时滤镜**
支持*拍摄时启用滤镜功能,支持自由调节多种滤镜效果(33种)* | ✗ | ✓
提供 10 种滤镜效果 | ✓
提供 33 种滤镜效果 | ✓
提供 33 种滤镜效果 | | | **实时水印**
*支持拍摄时添加静态水印,支持设置水印位置、大小、透明度,设置作用时间范围* | ✗ | ✓ | ✓ | ✓ | | | **背景音乐**
*支持拍摄前选择本地文件作为背景音乐* | ✗ | ✓ | ✓ | ✓ | | **基础编辑** | **视频导入**
*支持本地视频快速导入后编辑* | ✓ | ✓ | ✓ | ✓ | | | **编辑预览**
*支持编辑时实时预览本地效果* | ✓ | ✓ | ✓ | ✓ | | | **时长剪裁**
*支持时长裁剪,按照给定的时间范围生成一个 mp4 文件* | ✓ | ✓ | ✓ | ✓ | | | **本地转码**
*支持按照给定的码率、帧率等参数,生成一个 mp4 文件* | ✓ | ✓ | ✓ | ✓ | | | **视频旋转**
*支持按照给定的目标旋转角度,生成一个 mp4 文件* | ✗ | ✓ | ✓ | ✓ | | | **画面剪裁**
*支持画面裁剪,按照视频画面大小(原比例、指定区域)精确裁剪视频生成一个mp4文件* | ✗ | ✗ | ✓ | ✓ | | **特效编辑** | **视频旋转特效**
*支持设置视频左右上下旋转,实时预览旋转效果* | ✗ | ✓ | ✓ | ✓ | | | **单音频混音**
*支持给视频文件添加单音频,实现混音效果* | ✗ | ✓ | ✓ | ✓ | | | **滤镜特效**
*支持给视频文件添加滤镜效果,默认支持 33 种滤镜效果* | ✗ | ✓
提供 10 种滤镜效果 | ✓
提供 33 种滤镜效果 | ✓
提供 33 种滤镜效果 | | | **涂鸦特效**
*支持画笔尺寸和颜色调整,支持设置特效显示的时间范围* | ✗ | ✓ | ✓ | ✓ | | | **字幕特效**
*支持给视频文件添加文字特效,支持设置文字内容,字体大小,字体颜色,透明度,旋转,位置等,支持设置特效显示的时间范围* | ✗ | ✓ | ✓ | ✓ | | | **水印特效**
*支持给视频文件添加静态、动态水印,并且能够自由设置水印的大小、位置、透明度、旋转角度,支持设置特效显示的时间范围,可以自定义素材或使用供应商提供的收费素材* | ✗ | ✓ | ✓ | ✓ | | | **贴纸特效**
*支持给视频文件添加静态贴纸,并且能够自由设置贴纸大小、位置、旋转角度,支持设置特效显示的时间范围,可以自定义素材或使用供应商提供的收费素材* | ✗ | ✓ | ✓ | ✓ | | | **时间特效**
*支持对视频文件进行整体变速、分段变速,支持5种变速效果(极慢、慢、正常、快、极快)* | ✗ | ✓ | ✓ | ✓ | | | **时光倒流**
*支持 1 种倒放操作(即时光倒流特效)* | ✗ | ✗ | ✓ | ✓ | | | **音乐唱片**
*支持音频录制的过程中,增加图片旋转效果,输出为 mp4 文件* | ✗ | ✗ | ✓ | ✓ | | | **多音频混音**
*支持给视频文件添加多个背景音乐,支持调整视频原声、背景音乐音量,支持设置多个背景音乐有效时间区域,支持自己录音或者选用本地音乐* | ✗ | ✗ | ✗ | ✓ | | | **MV 特效**
*支持给视频文件添加 MV 效果,默认提供 4 种 MV 特效,MV 特效素材需要客户自行按要求制作* | ✗ | ✗ | ✗ | ✓ | | **多素材编排** | **视频拼接**
*支持设置多个视频按照前后顺序导入拼接生成一个 mp4 文件* | ✗ | ✗ | ✓ | ✓ | | | **GIF 动画**
*支持基于多个图片或视频直接导出 GIF 动图* | ✗ | ✗ | ✓ | ✓ | | | **图片拼接**
*支持设置多个图片按照前后顺序导入拼接生成一个 mp4 文件* | ✗ | ✗ | ✓ | ✓ | | | **基础转场**
*支持在视频图片片段之间,增加淡入淡出效果* | ✗ | ✗ | ✓ | ✓ | | | **过场字幕**
*支持在视频之间增加转场字幕,支持定义转场字幕的背景色、持续时间、支持文字和图片特效,支持旋转、放大、位置移动、淡入淡出 4 种效果* | ✗ | ✗ | ✓ | ✓ | | | **视频合成**
*支持设置多个视频合并为一个视频,支持设置每一个视频的位置、大小、开始播放时间等* | ✗ | ✗ | ✗ | ✓ | | | **图片 & GIF 图 & 视频混拼**
*支持设置多个视频和图片按照前后顺序导入拼接生成一个 mp4 文件* | ✗ | ✗ | ✗ | ✓ | | **其他功能** | **草稿箱**
*支持将当前录制的片段与设置项存入草稿箱* | ✓ | ✓ | ✓ | ✓ | | | **接口扩展**
*扩展接口支持对接第三方美颜特效等增值能力* | ✓ | ✓ | ✓ | ✓ | | | **外部裸数据导入**
*支持外部音视频裸数据导入,生成 mp4 文件* | ✗ | ✗ | ✗ | ✓ | | | **View 录制**
*支持 View 录制* | ✗ | ✗ | ✗ | ✓ | | **视频播放** | **播放器 SDK** | ✓ | ✓ | ✓ | ✓ | | **上传分发** | **视频上传** | ✓ | ✓ | ✓ | ✓ | | | **断点续传** | ✓ | ✓ | ✓ | ✓ | | | **上传加速** | ✓ | ✓ | ✓ | ✓ | 增值能力方面,需要单独选购,在视频拍摄或视频编辑阶段增加,4个版本都支持相关开放接口。 | **功能** | | ---------------------------------------------------------------------------------- | | **高级美颜**
*拍摄设置大眼、瘦脸、V脸、下巴调整、短脸、小鼻效果,并支持调节强度* | | **人脸贴纸**
*支持人脸识别,进行人脸 2D、3D 贴纸操作* | | **手势识别**
*可以对拍摄的人物的特定手势进行识别,配合其他特效* | | **AR 特效**
*支持拍摄时设置 AR 特效* | | **变声混响**
*拍摄时对录制的人音进行变声(如萝莉、大叔)和混响效果等操作(如 KTV、会堂)* | | **类抖音特效**
*滤镜效果,支持抖动、幻觉、灵魂出窍等数种抖音特效* | | **背景抠图**
*将画面中的绿色元素(比如纯绿背景)抠除,替换成其他的元素,比如动态背景/ PPT 等* | # 3 设备以及系统要求 - 设备要求:搭载 iOS 系统的设备 - 系统要求:iOS 8.0 及其以上 # 4 安装方法 [CocoaPods](https://cocoapods.org/) 是针对 Objective-C 的依赖管理工具,它能够将使用类似 PLShortVideoKit 的第三方库的安装过程变得非常简单和自动化,你能够用下面的命令来安装它: ```bash $ sudo gem install cocoapods ``` ## 4.1 Podfile 为了使用 CoacoaPods 集成 PLShortVideoKit 到你的 Xcode 工程当中,你需要编写你的 `Podfile` ## 4.2 专业版安装 **如果你购买的是七牛专业版本的短视频 SDK,请使用下面的安装方式:** ### 4.2.1 Podfile 添加专业版 ```ruby target 'TargetName' do pod 'PLShortVideoKit' end ``` ### 4.2.2 Warnings **在使用了七牛的推流或连麦 SDK 的工程中,集成该短视频 SDK 会出现美颜库导致的符号冲突问题 duplicate symbol _OBJC_CLASS_ MuseProcessor,解决方法如下** ```ruby target 'TargetName' do pod 'PLShortVideoKit/ex-libMuseProcessor' end ``` ### 4.2.3 运行 pod 然后,运行如下的命令: ```bash $ pod install ``` ## 4.3 进阶版安装 **如果你购买的是七牛进阶版本的短视频 SDK,请使用下面的安装方式:** ### 4.3.1 Podfile 添加进阶版 ```ruby target 'TargetName' do pod 'PLShortVideoKit', :podspec => 'https://raw.githubusercontent.com/pili-engineering/PLShortVideoKit/master/PLShortVideoKit-Advanced.podspec' end ``` ### 4.3.2 Warnings **在使用了七牛的推流或连麦 SDK 的工程中,集成该短视频 SDK 会出现美颜库导致的符号冲突问题 duplicate symbol _OBJC_CLASS_ MuseProcessor,解决方法如下** ```ruby target 'TargetName' do pod 'PLShortVideoKit/ex-libMuseProcessor', :podspec => 'https://raw.githubusercontent.com/pili-engineering/PLShortVideoKit/master/PLShortVideoKit-Advanced.podspec' end ``` ### 4.3.3 运行 pod 然后,运行如下的命令: ```bash $ pod install ``` ## 4.4 基础版安装 **如果你购买的是七牛基础版本的短视频 SDK,请使用下面的安装方式:** ### 4.4.1 Podfile 添加基础版 ```ruby target 'TargetName' do pod 'PLShortVideoKit', :podspec => 'https://raw.githubusercontent.com/pili-engineering/PLShortVideoKit/master/PLShortVideoKit-Basic.podspec' end ``` ### 4.4.2 Warnings **在使用了七牛的推流或连麦 SDK 的工程中,集成该短视频 SDK 会出现美颜库导致的符号冲突问题 duplicate symbol _OBJC_CLASS_ MuseProcessor,解决方法如下** ```ruby target 'TargetName' do pod 'PLShortVideoKit/ex-libMuseProcessor', :podspec => 'https://raw.githubusercontent.com/pili-engineering/PLShortVideoKit/master/PLShortVideoKit-Basic.podspec' end ``` ### 4.4.3 运行 pod 然后,运行如下的命令: ```bash $ pod install ``` ## 4.5 精简版安装 **如果你购买的是七牛基础版本的短视频 SDK,请使用下面的安装方式:** ### 4.5.1 Podfile 添加精简版 ```ruby target 'TargetName' do pod 'PLShortVideoKit', :podspec => 'https://raw.githubusercontent.com/pili-engineering/PLShortVideoKit/master/PLShortVideoKit-Smart.podspec' end ``` ### 4.5.2 Warnings **在使用了七牛的推流或连麦 SDK 的工程中,集成该短视频 SDK 会出现美颜库导致的符号冲突问题 duplicate symbol _OBJC_CLASS_ MuseProcessor,解决方法如下** ```ruby target 'TargetName' do pod 'PLShortVideoKit/ex-libMuseProcessor', :podspec => 'https://raw.githubusercontent.com/pili-engineering/PLShortVideoKit/master/PLShortVideoKit-Smart.podspec' end ``` ### 4.5.3 运行 pod 然后,运行如下的命令: ```bash $ pod install ``` ## 4.6 Warning - Podfile 中添加 PLShortVideoKit 时如果不指定 podspec,默认安装的是 **专业版** 的短视频 SDK - 如果你安装的七牛短视频 SDK 版本和你购买的七牛短视频 SDK 版本不一致,比如购买的基础版,但是使用的是进阶版或者专业版的短视频 SDK,会引起你的 App 产生 crash 。**请一定安装和你购买匹配的短视频 SDK 版本** # 5 PLShortVideoKit 文档 请参考开发者中心文档:[PLShortVideoKit 文档](https://developer.qiniu.com/pili/sdk/3733/short-video-ios-sdk) *注意:GitHub 上出现无法 clone 时,可[点击下载](https://sdk-release.qnsdk.com/PLShortVideoKit-v3.1.1.zip)* # 6 声明 本短视频 SDK 需授权方可使用,可通过 400-808-9176 转 2 号线联系七牛商务咨询,或者 [通过工单](https://support.qiniu.com/?ref=developer.qiniu.com) 联系七牛的技术支持。 # 7 反馈及意见 当你遇到任何问题时,可以通过在 GitHub 的 repo 提交 issues 来反馈问题,请尽可能的描述清楚遇到的问题,如果有错误信息也一同附带,并且在 Labels 中指明类型为 bug 或者其他。 [通过这里查看已有的 issues 和提交 Bug](https://github.com/pili-engineering/PLShortVideoKit/issues)