实时音视频SDK功能介绍

音视频SDK可以嵌入App,Web应用及各种智能硬件中,帮助企业快速实现音视频功能,极大提高效率,让企业可以集中时间在业务上。即构实时音视频SDK经过多年开发积累,已广泛应用在各种领域和应用场景中。

大家可以从https://storage.zego.im/downloads/ZegoLiveRoom-iOS.zip下载SDK测试,iOS环境。如需要Android、Windows、小程序和web版本可到官网自行下载。

下面就来介绍即构实时音视频SDK基本功能:

● 支持推拉流

应用在直播场景中,有两种情况需要进行推流操作,一种是主播端推流;一种是主播和观众连麦后,观众推流。无论哪种情况,都是需要推送自己的画面,这是推流这一方面。拉流这一方面,如果想观看房间内其他成员推送的画面,都需要进行拉流操作。也是有两种情况,一是主播推流成功后,观众端拉流观看主播的画面;还有一种是主播与观众连麦成功后,主播端拉观众端的画面。即构ZEGO实时通讯网络和即构ZEGO实时分发网络能较好地实现推拉流功能。同时,即构实时音视频SDK支持多种协议的推拉流。即构的解决方案支持标准RTMP协议和基于UDP的私有协议进行连麦互动;如果终端是浏览器,那么可以通过RTMP协议、HTTP-FLV、HLS、WebSocket 从CDN拉流观看;如果终端是APP,还可以直接地通过基于UDP的私有协议从低延迟网络拉流观看。这几种协议即构都支持,客户在不同的场景下可以选择不同的协议。

● 支持全平台连麦

即构SDK提供主播和观众连麦的功能,支持主播与观众互动。而且即构SDK能实现全平台的互动连麦,不仅能在原生APP、Web/H5浏览器、微信小程序各终端上实现连麦互动功能,而且能实现不同终端间(APP、Web和小程序)的互通连麦。

● 支持混流

混流是把多路音视频流混合成单流的技术。主播端和观众端均可主动触发混流。即构SDK既支持音视频混流,也支持纯音频混流。

● 即时通讯功能

ZegoLiveRoom SDK内集成了即时通信功能,即 ZegoLiveRoomApi (IM),能实现直播间内的发消息、点赞、送礼物 等互动功能,也可选择直播间内的成员,发起会话。

● 打断事件的处理

在直播过程中,时常会碰到被来电、切后台等事件打断的情况,即构SDK提供了与音频打断事件相关的API,能较好处理打断事件。

● 支持混音

混音是指把两路或多路音频流混在一起。SDK从App获取一路音频数据,将其与采集的音频数据,整合为一路混音数据,进而推流。直播过程中的掌声、口哨、背景音等是比较常见的混音应用场景,全民K歌和酷狗直播其中就用到了即构的混音技术。

● 支持媒体通道同步传输数据

在主播端和观众端除了要传输音视频数据外,还要同步一些其它的信息,例如连麦时画面的精准布局,K歌时的歌词,以及在线教育场景里老师的板书数据等。

● 支持音频前处理

音频前处理技术一般用于去除语音中的干扰。但即构研发的SDK已经针对采集的音频数据进行了回声消除、噪声抑制等的处理,因此通常情况下,开发者无需再重复处理。

● 支持音频录制功能

音频录制是指,SDK将录制的音频数据,传递给App,App根据自身需求,对音频数据进行处理(例如存储等)。开发者可按需选择是否使用音频录制。

● 音频外部采集和渲染

当出现以下情况时,建议使用音频外部采集功能:

a)客户需要从现有音频流、音频文件、或者定制的采集系统中获得采集后输入,交给SDK传输。

b)客户有自己对PCM输入源做特殊的音效处理的需求,在音效处理后输入,交给SDK传输。

c)当客户有自己渲染的需求,例如对拉取到的原始PCM数据做特殊应用或者处理后再渲染,建议使用即构SDK的音频外部渲染功能。

● 支持虚拟立体声

在理解虚拟立体声之前,需要引入一个概念——双声道。双声道是指有两个声音通道,其原理是人的耳朵可以根据左耳和右耳对声音的相位差来判断声源的具体位置,即听声辨位。虚拟立体声的实现是基于双声道的原理,将单声道的声音经过算法处理,虚拟成双声道的声音,这样就可以听声辨位。iOS无法直接采集双声道,用户如果想实现播放的音频具有双声道效果,需要虚拟立体声。

● 外部渲染

当开发者在使用SDK过程中出现以下任意情况时,建议使用外部渲染功能:

a)SDK的渲染无法满足需求;

b)App使用了跨平台界面框架(例如QT)或游戏引擎(例如Unity3D、Cocos2d-x);

c)App需要获取SDK采集或拉流的视频数据进行特殊处理。

● 外部采集

当开发者业务中出现以下情况时,我们推荐使用 SDK 的外部采集功能:

a)普通摄像头的采集无法满足需求。例如,包含了大量的原有业务;

b)直播过程中,开发者需要使用摄像头完成的额外功能和 SDK 的默认逻辑有冲突,导致摄像头无法正常使用。例如,直播到一半,需要录制短视频;

c)直播非摄像头数据。例如视频播放、屏幕分享、游戏直播等。

● 外部滤镜

考虑到滤镜的性能问题和美颜厂商的多样性,即构SDK的视频外部滤镜采用面向对象设计,结合线程模型,帮助用户把外部代码封装成可替换的滤镜组件。当SDK自带的美颜无法满足需求,例如需要做挂件、贴纸,或者美颜效果无法达到预期时,建议开发者使用外部滤镜功能。

● 媒体播放器

即构ZegoLiveRoom SDK为开发者提供了播放器功能,目前支持的播放文件格式包括:mp3/mp4/m4a/mkv。播放器播放的音频既可以本地播放,同时也可以作为一路音频源混音到采集的音频数据中进而推流。播放器播放的视频既可以本地预览,也可以把视频数据通过callback的形式回调出来,如果要推送出去,可以采用外部采集的模式实现。播放器混音推流并不影响原有混音接口功能,二者可以同时并存(播放器混音一路,原有混音接口混音一路),或者使用其中一个功能。

● 支持音频加密与解密

推流时将编码后的音频数据加密,再发送到云端。拉流时将加密的音频数据解密,再进行解码、渲染。

写在最后,即构实时音视频SDK还在不断升级中,集成的功能也会越来越多,某些高级功能可自行定制。

猜你喜欢

转载自blog.csdn.net/sinat_20146421/article/details/82085061