CDN加速

推流器SDK

更新时间:2020-12-14 17:06:27

简介

云视频提供移动端推流器SDK,为移动端(包含iOS、Android)的互动直播提供数据采集、编码、传输等功能服务,并提供包括美颜、混音等在内的辅助功能。

下载地址

请联系网宿技术支持申请。

产品说明

框架

我们提供的网宿移动端推流器 SDK 压缩包里主要包含两大部分,一部分是核心的 SDK 层代码,作为黑盒代码部分是不可见的,另一部分是 Demo 层代码,作为白盒是可参考的。我们在 Demo 层展示了 SDK 层内部各个功能的调用逻辑,客户只需要在外层封装一层 UI 界面,并根据自身需要进行功能的设置,即可快速拥有一个高质量的推流器。

1

产品功能说明

数据采集

1. 摄像头

SDK 能获取到当前可用摄像头相关信息,妥善完成摄像数据采集工作。这些信息包括但不限于摄像头数量、像素、状态和权限情况。当未获取到摄像头权限时,依然可进行音频推流。当应用切换到后台时,由于系统的限制,摄像头将不再采集画面。

2. 麦克风

SDK 能获取到当前麦克风相关信息,完成音频采集工作。这些信息包括但不限于麦克风状态、权限。当未获取到麦克风权限时,依然可以进行单视频推流。当应用切换到后台时,可控制是否后台继续纯音频推流。

编码方式

移动端推流器双平台均支持硬件编码和软件编码,可由 App 厂商自定义需要选择何种编码方式****。一般当手机硬件不支持硬编时,会自动切换到软编。

硬编具备更好的编码效率,但兼容性不够优良,软编具备更好的兼容性,但同时也会更耗费性能。

1. 软件编码

2

由于软编的画质和性能消耗有较大关系,客户可能对功耗和画面清晰度的权重有不同的权衡,鉴于此种情况的考虑,我们针对软编开发了质量优先和码率优先两种不同的编码策略。两种策略对比如下。

3

2. 硬件编码

4

推流传输

SDK 在完成采集和编码工作后,根据传入的参数,将直播流推到服务器端。该部分功能作为推流器工作的最后一环,针对不同网络环境进行了优化,并且通过底层队列实现了对直播流数据的管理。

1. 帧率

帧率范围 iOS 支持10 - 30 帧,Android 支持15 - 30 帧。App 可根据需要设置初始的预览帧率值,没有绝对的最优值,较高的帧率画面越流畅,同时对机器性能和带宽要求也会同步提高。Android 同时支持可变帧率,当环境光线弱时,可通过增加曝光时间,降低帧率,保证预览效果。

2. 码率

在开启码率自适应的情况下,码率会存在自适应上下限,如下表。在码率自适应关闭的情况下,码率会以用户设置的为准,建议在300 - 1500 kbps 区间。

5

3. 分辨率

视频分辨率提供360P、480P、540P、720P,同时分辨率的比例提高16:9、4:3,在推流期间不支持改变采集的分辨率。

4. 后台推流

SDK 切后台支持继续推流,此时摄像头将被释放不再采集视频,音频可继续采集推流。如若音频也被其它程序占用,例如打电话等,则 Android 将不再推流,iOS 的处理机制是推空包以继续维持推流,但也只能坚持 10 分钟左右即被系统回收。

拓展功能

1. 美颜

支持原图、磨皮、美白、红润、全屏美白、美肤平滑共6种美颜模式,同时各模式支持美颜等级调节。

2. 滤镜

当前滤镜提供了20种效果,分别是

6

3. 水印

客户端支持添加水印功能,水印主要有图片和文字两种格式,Android 端还增加了 GIF 水印等扩展功能。

4. 镜像

镜像的定义先解释一下:照镜子时可以在镜子里看到另外一个“你”,镜子里的“人”就是你的“像”,在镜面成像中,你的左手你看到的还是在左边,你的右边你看到的还是在右边。举例,当用 iPhone 手机使用前置摄像头拍照时,拍出的照片是非镜像的。

明确镜像的概念后,再说明下当前 SDK 支持的镜像模式。支持预览画面镜像 开/关,和 编码推流画面镜像 开/关,并且没有限制前后摄像头。

5. 混音

支持从本地获取音频文件,包括但不限 于MP3/WAV 格式,为直播的用户实现音乐伴奏的混音效果。并且提供音乐播放中的各种状态回调。

6. 混响

支持混响等级调整,使直播音效呈现录音棚、演唱会、KTV、小舞台、大礼堂等等音响效果。

7. 耳返

在插耳机的情况下,将主播的声音从耳机再播放给主播的功能,不插入耳机,耳返将不生效。目前只提供了有线耳机和蓝牙耳机的耳返功能。

8. 录制

视频录制是录制的主播流,因此无法录制到客户自己加的特效评论等内容,对应支持格式、时间长度等如下:

  • 支持 MP4/FLV/GIF 格式
  • 录制时间,
  1. MP4/FLV 格式:SDK 提供录制短视频时间范围 [3s,60s]
  2. MP4/FLV 格式:SDK 提供录制长视频的最大文件大小
  3. GIF 格式:SDK 提供录制 GIF 时间范围 [100ms,5s]
  • 录制结束,视频保存到本地文件夹

9. 截图

截图格式为 JPG 。iOS 截图内容为全屏,Android 截图内容为全屏或视图截图。

10. 代理

对于需要使用代理服务器的客户,SDK 可提供 IP、端口、用户名及密码的设置,来连接代理。目前代理协议支持 SOCKS5。

11. 自定义 SEI 扩展字段

目前仅软编支持,推送 json 字段,可自定义内容,与网宿播放器配套使用即可实现答题等需求场景。

12. 模块分层

为了满足客户对于直播推流的需求个性化,如客户可能想使用第三方的美颜方案,或只使用网宿推流等。我们支持采集、预处理、编码、推流进行自由耦合, 但需注意,当使用自定义视频源后部分功能可能会失效。

Demo 使用说明

7

注意事项

移动端推流器 SDK 基于 ID 和 AuthKey 进行鉴权,不具备相应 SDK 权限的客户无法使用该服务。若使用我司多款 SDK,需要分别进行鉴权。鉴权操作在每个自然日内只需成功联网校验一次,之后将在本地执行校验,减少对网络的依赖性。