当前位置: 首页 > 科技观察

踢部落直播第五课:如何使用InstantSDK搭建实时语音视频APP

时间:2023-03-21 21:29:55 科技观察

在线视频直播由来已久。随着移动上下行带宽的增加和资费的降低,视频直播具有更多的娱乐和社交属性,人们可以随时随地享受直播和观看。直播在语音社交、视频社交、互动直播、娃娃机直播等领域得到广泛应用。对于当下的直播领域来说,娃娃机已经成为了新时代的宠儿。如何同时推送两个流,低延迟等是大家想知道的重点。那么,如何使用instantSDK即时构建娃娃机视频应用呢?在此请来即时科技资深前端技术支持主管卢爱辉先生做直播分享。内容介绍:1.介绍即时音视频的整个架构1)应用场景介绍2)架构实现3)架构图说明2.如何接入即时音视频SDK(爬虫场景接入)1)起重机控制端接口call2)娃娃机APP端接口调用大家好,这次分享的话题是最近很火的一个直播话题,如何使用InstantSDK瞬间搭建一个实时音视频APP。下面简单介绍一下我们公司的背景,如下截图所示。众所周知,直播的领域非常广泛,适用场景也非常广泛,比如语音社交、视频社交、互动直播以及最近流行的吊机场景。在这里主要给大家分享一下如何使用zegoSDK做娃娃机直播。一、介绍即时音视频的整个结构1)场景介绍先看一下玩偶的线下部署:两个摄像头,对着一个摇臂机,娃娃机推两路。这样就可以在操作或者从两个角度看娃娃机的视角。客户端APP制作的效果示例:支持:2个视角,100毫秒超低延迟,视频和起重机实时同步,让玩家在操作过程中体验流畅,两个视角不会造成图片太多太平。2)架构实现下面给大家说说这个直播场景的架构实现。有两端说明:一端是娃娃机端,娃娃机上有一个芯片,这个芯片就是安卓系统,你可以理解为安卓小手机。从上面的娃娃机场景可以看出,娃娃机的侧面有两个摄像头,也就是说娃娃机需要推两路视频流。另一端是用户APP端,可以是移动端也可以是PC端。用户APP端:用户端需要拉两个流同时观看。一开始先隐藏一个view,大家看一张图。点击切换摄像头时,切换到另一个视图可以看到另一个视角。3)架构图说明这张架构图的意思是:娃娃机端推送两路推流,先推到zegoserver,再通过分发网络供普通玩家观看。此时的延迟大约为1-2秒。在客户端,当玩家要上电脑抓娃娃时,会上电脑,zegoSDK会切换到zegoServer拉流,实现低延迟,此时可以达到100-300ms时间。下面是整个架构图的流向。2、如何对接即时语音视频SDK(爬虫场景连接)下面介绍如何使用zegoSDK制作APP,涉及到sdk接口层面的调用。1)首先调用娃娃机控制端接口初始化SDK,登录房间:同时推送两条流:可以看到,在推送第一条流时,调用了enableMic和设置为假。这是因为娃娃机不需要设置音频Pushout,从而关闭麦克风。第二流默认不推送音频,无需继续调用该接口。2)娃娃机APP端接口调用并推送两个流后,客户端就可以进来观看了。客户也是如此。首先初始化SDK,登录房间。进入房间后,就可以开始观看了。一些用户进入房间后,想上机抓娃娃。界面调用:上机后,需要开始控制娃娃机的摇臂。然后开始抓,这个信令是通过我们的接口sendCustomCommand来实现的。玩家在电脑上抓到娃娃后,不管我们抓到没有成功,都该下电脑了。离机接口调用如下:如果玩家下飞机后不想继续观看,可以结束观看退出房间。3)娃娃机控制端接口调用用户端发送一些自定义消息给娃娃机端。娃娃机端收到后,会转换成芯片上的娃娃机可以识别的串口指令。爪机端接收这些命令的接口是onReceiveCustomCommand。说完APP端的接口调用,我们离娃娃机端的推送还差得远呢。SDK接口调用如下,因为娃娃机推的是两种方式,所以结束的时候也需要结束两种方式,最后退出房间。总结一下调用的主要流程:娃娃机:1.初始化SDK2.登录房间3.开始直播,推第一流4.开始直播,推第二流5.接收APP指令6.结束直播,退出房间客户端:1.初始化SDK2.登录房间3.拉流观看4.电脑操作,升级为播放器5.下电脑,降级为播放器viewer6.看完,退出房间上面是整个sdk接口的调用,也就是娃娃机方案,大家可以下载Zego的Demo免费试用。iOS版>>安卓版>>同时,娃娃机的具体方案介绍和流程图说明也可以参考我们官网:https://www.zego.im/html/solution/wawaji...:极竹科技卢老师:我们先通过zegoserver进行推送,所以先通过我们自己的udp私有协议进行推送,最后转发到配网的时候,我们使用rtmp进行推送。Q:Java-Eason-福建:他说的对吗?A:机狗科技卢老师:具体芯片型号要看厂家。芯片上安装了安卓系统,在安卓系统上安装了控制吊车的APP,而且这个APP也是用来直播的。Q:Java-Eason-Fujian:娃娃机和两个摄像头是连在一起的吧?A:即得科技卢先生:是的,它们是通过芯片上的串口连接的。Q:Java-Eason-Fujian:应该和阿里云的视频直播是一样的原理。A:机狗科技卢老师:阿里云有视频直播,但是没有连麦,他们的延迟不可能低到ZEGO的Delay。Q:Data-unicorn-Beijing:SDK是直播+互动的吧?是否支持视频会议?只能有一个主播?它支持多个流媒体吗?A:即时科技卢先生:支持视频会议,视频会议使用同一个SDK,实现低延迟。视频会议其实就是多个主播在一个房间内交互推流,使用zegoserver推拉流,达到低延迟。所以多个anchor也是可以的。Q:Data-unicorn-Beijing:收费标准是什么?比如视频会议。支持多少终端同时在线?A:即时科技卢先生:收费标准可以在官网联系我们商科的同学具体咨询。视频会议支持12台终端同时在线聊天。Q:PHP-Coeus-Anhui:有H5的SDK吗?看到有H5,但是没有找到H5的文档和SDK。A:Zego科技卢老师:文档在我发的链接里,发给你:https://www.zego.im/html/document/#Application_Scenes/WaWaJiClient这个链接里有demo下载,以及SDK下载关于H5SDK,我们已经有了计划,这个月底会有成品,可以直接在H5上使用。Q:java-Eason-福建:PC端推流怎么办?一定要在APP上运行吗?场景不同了。A:极狗科技卢先生:我们也有PC端的SDK。PC端提供C++接口。您可以在SDK的基础上开发客户端。在PC端,电脑的USB接多个摄像头,效果一样。如果只是PC端,成本可能会贵一点,因为安卓板的价格肯定比电脑便宜吧?我在上面以iOS为例。在iOS上,我们提供OC接口,在Android上,我们提供Java接口,在PC上,我们提供C++接口。Q:java-Eason-Fujian:抓娃娃机控制推流的开关是在抓娃娃机启动时打开,还是有客户连接上后才开始推流?A:即时科技卢女士:娃娃机一启动就会开始推流,因为不确定客户什么时候进来,所以必须从一开始就打开。Q:互联网-小王-广州:如果接入APP,底包会占用多少空间?A:极狗科技卢先生:SDK的大小Android端7M左右,iOS动态库10M左右,iOS端打包好的ipa约6M。我们仍在优化SDK的大小。Q:数据独角兽-北京:视频会议支持私有云部署吗?A:即时科技卢老师:是的。如果安全性比较高,我们都可以考虑私有化部署,你可以提供相应的机器集群。【原创稿件,合作网站转载请注明原作者和出处为.com】