版本记录
版本号 | 时间 |
---|---|
V1.0 | 2017.08.10 |
前言
针对短视频的上传、编辑等功能有很多的SDK,比如腾讯的SDK、七牛的SDK等,这里我就说一下我用过的美摄的SDK - 1.8.0,希望对大家有所帮助。
服务对象
美摄SDK可以帮助开发者快速的在APP中实现视频制作服务,包括视频、图片处理、视频基础编辑、快速包装渲染等等,开发者可以根据自己的创意创建APP,实现各种特色功能,美摄公司会随时根据手机系统、手机硬件、使用场景的变化,快速调整,完善,升级SDK工具包,保证SDK包的稳定性、高效率、高兼容性、给开发者带来良好的服务体验。有需要的可以参考美摄SDK的开发文档和官网。
能力与限制
- 支持的系统:
-
ios 7.0
以上系统 -
Android 4.1
以上系统
-
- 输入规范:
- 视频格式:
MP4、MOV、WMV、M2V、MPG
- 音频格式:
MP3、FLAC、AAC、M4A
- 图片格式:
JPG、PNG
- 视频编码:
H264、WMV、MPEG4
- 音频编码:
MP3、AAC、PCM、FLAC
- 视频格式:
- 输出规范:
- 视频格式:
MP4
- 视频编码:
H264
- 音频编码:
AAC
- 视频格式:
- 扩展包格式(扩展包是美摄用来承载扩展素材的内容包,包括主题、字幕、滤镜、贴纸等):
- 主题:
.theme
- 字幕:
.captionstyle
- 滤镜:
.videofx
- 贴纸:
.animatedsticker
- 转场:
.videotransition
产品特点
1. 实时特效、高清录制
SDK支持1080P高清视频录制,提供非常丰富的拍摄录制功能,在录制的同时可以叠加多种特效,并实时预览,最大程度满足不同场景的录制需求,具体特点如下:
- 最大录制1080P视频,并可设定720P、480P等多种质量
- 支持16:9、1:1等不同的画幅比例
- 支持多段视频录制
- 带有基础录制功能,例如对焦,镜头切换,曝光补偿、闪光灯等
- 自带美肤功能
- 自带滤镜功能,支持扩展
2. 支持多轨道、多段编辑
支持同时将不同格式的视频、图片、进行混合多段编辑。
- 视频支持多轨道(视频、图片)
- 支持多种画幅16:9、1:1
3. 制作特效实时预览
通过预览窗口(LiveWindow)
可以在制作的过程中实时预览制作效果,而不需进行预处理和打包,大大提升了制作的体验、降低了制作成本和时间。
4. 高清视频输出
SDK支持多种格式内容的输入,并最高支持到4K输入,同时最高支持1080P视频输出,并且开发者可以根据需求设定不同的输出级别(1080P、720P、480P等)。
5. 全能的基础编辑功能
美摄SDK包含市面上最为丰富的基础编辑功能,非常简单的调用方式,开发者们可以根据自己的需求进行灵活组合使用。基础功能包括:
- 视频裁剪、分割
- 视频变速
- 视频、图片插入
- 视频、图片排序
- 视频、图片删除
- 图片时长设定
- 图片画面裁剪
- 图片运动设定
- 画面参数调整(亮度、饱和度、对比度等)
- 画面旋转等
6. 视频实时美肤处理
SDK中自带视频实时美肤特效,可以在拍摄、编辑的过程中直接加入美肤效果,并进行实时预览,同时可以调节美肤处理的等级,美白参数等处理。
7. 绚丽的视频主题
SDK拥有一套强大的主题系统,每个主题都包含:片头尾、音乐、画面运动、前景动画、转场、字幕等,只需一键,就可以对视频进行智能处理,实现电影效果,具体特征如下:
- 拥有复杂的画面处理
- 配套片头尾、音乐、转场等
- 可嵌入配套字幕样式
- 支持3D场景
- 拥有150+已有主题可选
- 提供快速制作服务
8. 顶级字幕功能
SDK的字幕系统达到广电包装水准,不仅是添加一行文字这么简单,字幕功能可以实现一套非常绚丽的字幕包装效果,同时具有良好的扩展性,具体特征如下:
- 支持动画底图
- 支持文字运动,逐字运动
- 文字颜色、描边可调
- 支持透明度
- 支持多行字幕
- 支持载入字体
9. 多轨道音频编辑
SDK支持不限数量的音频轨道编辑,单轨道音频同时支持多段音频导入与编辑,同时具有多种音频处理方式,具体如下:
- 多轨道音频输入
- 支持多段音频
- 音频裁剪
- 多种音频处理(电音、娃娃音效果等)
- 音频转场(淡入淡出等)
- 音量独立控制
10. 画面前景滤镜
拥有独有的前景滤镜处理方式,整个滤镜由图像处理,边框处理,前景动画效果叠加组成,不仅可以完成简单的调色,还可以实现更多丰富的画面效果,同时还提供前景滤镜的定制服务,满足个性化需求。
11. 动画贴纸效果
SDK支持在制作过程中,向视频中加入动画贴纸进行修饰,同时可以对贴纸进行属性设置,达到美化视频画面的作品,具体如下:
- 支持复杂运动效果
- 支持有声贴纸
- 支持镜像
- 支持旋转
- 支持大小修改
- 支持贴纸扩展
12. 转场过渡效果
SDK支持在片段间添加转场,保证衔接的过程中达到平滑、出色的过渡效果,让视频间更加流畅,同时美摄提供非常多的预置转场效果,供开发者们进行选择,同时可以根据开发者的需求,提供定制化转场服务。
13. 丰富的素材库和定制化服务
SDK同时会提供丰富的素材库供开发者们选择使用,并且会定期更新一些新的内容进入素材库中,并会有一定比例的免费内容让开发者们无偿使用,同时提供个性化定制内容,只需少量花费,专业团队为开发者们定制个性化素材,当前素材库包含:
- 主题样式:150个
- 字幕样式:60个
- 贴纸:360个
- 滤镜:50个
- 转场:30个
具体素材库可以参考美摄官网。
名词解释
流媒体上下文
(Streaming Context)
包含时间线、预览窗口、采集、资源包管理等相关信息集合的对象,Context被销毁之后,SDk视频制作框架也随之不复存在。定位(Seek)
渲染出指定位置的画面,并更新时间线的时间戳。生成
(Compile)
以指定码率、帧速率和压缩格式输出文件。采集
(Capture)
捕获摄像头设备画面。录制
(Record)
输出采集画面到指定格式文件中。时间线
(Timeline)
编辑场景的时间轴实体,由轨道组成,可以有多个视频轨道和音频轨道,由视频轨道决定长度。轨道
(Track)
容纳片段的实体,分为视频轨道(Video Track)和音频轨道(Audio Track),可随片段的增加不断延展。片段
(Clip)
容纳音视频内容的实体,分为视频片段(Video Clip)和音频片段(Audio Clip),视频片段可以是图片或者视频。采集视频特效
(Capture Video Fx)
一种应用在采集中的视频特效。视频特效
(Video Fx)
一种视频图像的特殊效果,可能改变视频图像的整体或局部的颜色、亮度、透明度等信息,使视频显示特殊的效果。音频特效
(Audio Fx)
一种音频的特殊效果,可能改变音频的声调、速率等信息。视频转场
(Video Transition)
片段间切换的特效,从一个视频到另一个视频的播放衔接过渡效果。添加转场后,片段在转场时间内可能有重叠效果。主题
(Theme)
一系列特效应用的集合,包括片头、片尾、视频特效、视频转场、音乐、字幕样式等。字幕
(Caption)
视频上叠加的自定义文字,可以设置字号和颜色等样式。字幕样式
(Caption Style)
预定义字幕属性集合,包括字号和颜色等。动画贴纸
(Animated Sticker)
带有动画效果的贴纸,叠加在视频上产生一些特殊效果。预览窗口
(Live Window)
实时显示时间线或者采集图像的窗口。视频解析度
(Video Resolution)
视频的基本信息,包括图像宽高和像素横纵比等。音频解析度
(Audio Resolution)
音频的基本信息,包括采样率和声道数等。摇摄和扫描
(Pan and Scan)
一种调整图像适配的方法,可以横向剪切和纵向平移。资源包
(Asset Package)
一种需要安装的特效资源,安装后可以作为特效使用,包括视频特效、视频转场、主题、字幕样式、动画贴纸。资源包ID
(Asset Package ID)
资源包的唯一标识,安装资源包成功后获得,添加特效时使用。裁剪入点
(Trim In)
裁剪片段的起始点。对于裁剪入点,裁剪出点,入点,出点的详细解释,请参见裁剪入点与出点(trimIn and trimOut)专题裁剪出点
(Trim Out)
裁剪片段的终止点。入点
(In Point)
片段在时间线的起始点。出点
(Out Point)
片段在时间线上的终止点。播放速度
(Speed)
片段播放的速度,速度没有改变的情况下,(出点-入点)=(裁剪出点-裁剪入点),如果播放速度为2倍速,(出点-入点)*2=(裁剪出点-裁剪入点)。码率
(Bitrate)
每秒传送的比特数,码率越高,视频质量越好。采样率
(Sample Rate)
每秒从连续信号中采集的离散信号个数。帧速率
(Frame Rate)
每秒刷新图像的帧数,帧速率越高,视频的连续性越好。横纵比
(Aspect Ratio)
图像的横向尺寸与纵向尺寸的比例。像素横纵比
(Pixel Aspect Ratio)
一个像素点的宽与高的比例。SDK中仅支持1:1。
项目搭建指南
1. 新建工程
(a)选择File->New->Project来新建工程。
(b)在工程类型界面选择适合的工程类型,点击“Next”。
(c)输入工程名,点击“Next”。
(d)输入工程路径,点击”Create“。
2. 禁用Bitcode
(a)在工程设置界面,选择“Build Settings”。
(b)在搜索框输入“bit code”。
(c)在“Enable Bitcode”选项卡中选择“No”。
3. 添加SDK头文件和库文件的引用
(a)在工程设置界面,选择“Build Settings”。
(b)在搜索框输入“search Paths”。
(c)在“search paths”中输入SDK的头文件和库文件地址。
4. 添加库文件
(a)在工程设置界面,选择”General“。
(b)找到“Linked Frameworks and Libraries”。
(c)添加SDK库文件。
(d)添加framework库文件。
基础结构与概念
1. 模块结构
美摄SDK核心模块包括流媒体上下文、时间线、字幕、动画贴纸、轨道、音/视频片段等。流媒体上下文是SDK中最基础的模块,它负责生成、保存并维护SDK引擎运行时的上下文环境。时间线由流媒体上下文生成,包含字幕,动画贴纸以及多个音视频轨道,各模块协同工作以生成最终的视频效果。其中每条音/视频轨道上可以添加若干个音/视频片段,片段上可以添加各种特效,片段之间可以设置不同的转场效果。
2. 数据流
美摄SDK支持两种媒体输入方式,标准媒体文件与摄像头采集。
当输入为一个或多个媒体文件时,SDK会首先从文件中提取出对应的音频与视频片段,这些片段可以理解为对原音频流与视频流的裁剪与封装。以视频为例,在编辑过程中,用户可以对这些视频片段进行任意拼接,放到对应轨道上,轨道再放到时间线上。每一个轨道可以类比成一个图层,SDK引擎对轨道渲染的顺序是自下到上的,各层轨道之间可以通过设置透明度等参数来实现一些特殊的效果。SDK引擎支持对时间线、轨道与音/视频片段添加特效,包括音/视频特效、转场、字幕、动画贴纸以及主题等,其中主题可以当成是上述特效的一个闭包。SDK默认提供若干内置的编辑特效,更多的特效资源包可以在美摄官网下载。编辑后的视频可以通过SDK提供的预览窗口进行预览,或者直接打包生成媒体文件。
当使用摄像头设备作为输入时,SDK引擎只能对其添加采集特效与包特效,不能使用转场、字幕、动画贴纸等其他特效。生成的视频同样可以通过SDK提供的预览窗口进行预览,或者直接打包生成媒体文件。
后记
未完,待续~~