iOS 录制和编辑 SDK 开发指南

1 阅读对象

本文档为技术文档,需要阅读者:

具有基本的iOS开发能力,准备接入网易视频云或正在接入网易视频云。

2 文档概述

2.1 录制

针对iOS设备,采集摄像头和麦克风的音视频数据,最终录制为MP4文件,可以进行二次开发。给开发者提供一套编码参数集合,以便灵活调节相应的分辨率和码率。

2.3 编辑

针对用户输入的MP4格式文件,进行诸如:文件拼接、视频分辨率裁剪和缩放、添加水印和动态贴图、混音、音量调节、文件时长裁剪等操作。给开发者提供一套完整灵活的文件编辑参数集合,以便灵活的组合各种编辑参数实现丰富多彩的文件编辑功能。并且提供了对文件在指定时间截图的功能。

3 功能特性

3.1 录制SDK

3.2 编辑SDK

4 开发准备

4.1 开发环境配置

4.2 设备以及系统

设备要求:iPhone、iPad系列机型,支持的CPU架构:armv7、arm64 系统要求:iOS8.0及以上

5 集成SDK

本部分按照用户直接在自己的项目中集成SDK的方式进行介绍,如果用户参考Demo进行SDK接入,那么可查看xxxxxx来获得更多的实现细节。

5.1 链接系统库和第三方库

5.2 链接sdk静态库

5.3 拷贝Bundle

将NMCVideoFilter.bundle拖入项目中,勾选如下选项

5.4 其它链接选项

TARGETS - Build Settings - Other Linker Flags 添加如下选项

6 功能使用和API接口介绍

6.1 录制SDK功能使用和API接口介绍

录制类是LSMediaRecording

6.1.1 录制API

6.1.2 录制静态参数

静态参数是指,在初始化传入的参数类。录制参数类是LSMediaRecordingParaCtx, 定义在LSMediaRecordingDefs.h中,包括:

6.1.3 录制动态参数

动态参数是指打开预览之后,开启录制之前可以动态设置的参数。开始录制之后,不允许设置。

6.1.4 录制滤镜动态参数

6.1.5 录制伴音相关

6.1.6 录制通知和回调

6.1.7 日志和其他

6.2 编辑SDK功能使用和API接口介绍

录制类是LSMediaTranscoding

6.2.1 编辑API

6.2.2 文件路径设置

6.2.3 输出文件参数设置

6.2.3 贴图参数设置

###

6.2.4 第三方前处理接入

6.2.5 回调

6.2.6 日志和其他

8 补充知识与建议

8.1 码率、帧率、分辨率、清晰度及流畅度概念

录制过程中,视频码率、帧率和分辨率会影响视频清晰度和流畅度。其中,帧率代表单位时间内视频图像的数量,数量越多,视频越流畅;分辨率代表图像细节显示的程度,相同内容的画面,分辨率越高,显示的图像细节越丰富,清晰度越高;码率代表单位时间内压缩后的视频信息量大小,在相同帧率和分辨率的情况下,码率越高,图像清晰度越高。 综上所述,更高的码率和分辨率会带来更清晰的图像,更高的帧率会带来更流畅的视频。然而,由于网络带宽限制,实际使用中码率往往不可能太高,导致清晰度和帧率存在一个上限。

8.2 视频编辑的相关术语