RTC 2018 实时互联网大会已经在上周末圆满落幕。这场大会吸引了很多RTC 行业一线工程师、架构师与产品经理,也展示了近一年来 RTC 行业里最值得关注的许多应用场景,其中一个就是120 视频急救。
目前,重庆市已推出急救视频 120 自救互救服务,在拨打 120 或下载相关 App 后,医生可通过视频对话,指导现场人员进行自救或互救,为抢救生命赢得宝贵时间。同时,如果用户此前并未下载 App 也没关系,拨打120后,手机会收到一条包含 URL 的短信,用户可通过 Web 端与急救医生视频对话。在这个案例中,实时视频通话就是通过声网的 SDK 实现的。
通过这个案例我们可以看到, RTC 技术已经不再仅应用于社交直播、泛娱乐,已经开始渗透到更多惠及民生的行业中。例如,通过视频急救、视频报警、视频政务的方式,进一步加速医务、警务、政务的事物处理流程,让普通老百姓的生活质量得到了提升;在教育行业,在我们对公网传输质量优化、中小运营商覆盖的基础上,让更多3、4线城市,甚至偏远山区的学生也能享受到国际一线城市的优质教育资源;在金融行业,视频核保、视频开户,也进一步地便利了普通人的生活。而在这其中,声网通过自身技术服务,让更多行业的开发者从 RTC 技术难题中解脱出来,可以专注于业务场景本身。
那么这种紧急场景下,对实时视频技术又提出了哪些要求呢?
在120急救中,一对一视频通话发挥了重要作用。但由于场景特殊,如果要开发一款这样的产品,还需要满足几点要求。
一、快速接通
急救讲求的是争分夺秒,让视频通话快速接通才能及时让用户获得帮助。所以需要保证用户可以快速接通。要保证这一点,需要降低设备端的视频延时,并需要对网络传输进行调度优化。
二、连通率要高
因为与普通的视频聊天不同,接通失败意味着可能会耽误施救。声网在全球有超过200个数据中心,基于此搭建的软件定义实时网(SD-RTN?),即使在网络条件较差情况下,也能保证稳定可靠,高质量的传输和99.9%的高连通率。
三、稳定的低延时视频传输
要保证不论在什么地点、网络情况下,双方都能正常进行视频交流。基于软件定义优化路由选择最优传输路径,自动规避网络拥塞和骨干网络故障带来的影响。同时,根据我们的统计,除了电信、联通、移动三大运营商,全国还有约2%的小运营商用户。声网也已覆盖支持了这2%用户所在的数十家中小运营商。
四、数据安全
其实,不论是急救医疗,还是视频报警,这些数据都属于敏感信息。视频数据在端到端的传输过程中需要进行加密。声网 SDK 全平台支持加密功能,这一加密技术和流程也是完全符合美国最严格的行业加密法案HIPAA认证。
五、全平台覆盖
以急救的场景为例,各个医院的硬件、软件系统不同,那么除了通过客户端进行视频通话,还可以通过 Web 端来实现。所以对开发者来讲,需要让这套视频通话系统兼容全平台。在这方面,声网视频通话 SDK 支持包括Android、iOS、Windows、macOS、Web、微信小程序、Linux 在内的主流平台,并能支持各平台之间的实时视频互通。
如何通过声网 SDK 实现?
首先创建实例
import io.agora.rtc.Constants;
import io.agora.rtc.IRtcEngineEventHandler;
import io.agora.rtc.RtcEngine;
import io.agora.rtc.video.VideoCanvas;
...
private void initializeAgoraEngine() {
try {
mRtcEngine = RtcEngine.create(getBaseContext(), getString(R.string.agora_app_id), mRtcEventHandler);
} catch (Exception e) {
Log.e(LOG_TAG, Log.getStackTraceString(e));
throw new RuntimeException("NEED TO check rtc sdk init fatal error\n" + Log.getStackTraceString(e));
}
}
创建实例后,设置频道模式。由于是一对一的视频通话,所以需设置为通信模式。
mRtcEngine.setChannelProfile(Constants.CHANNEL_PROFILE_COMMUNICATION);
然后通过调用enableVideo()方法打开视频模式。可以在加入频道前或者通话中调用,在加入频道前调用,则自动开启视频模式,在通话中调用则由音频模式切换为视频模式。如果想关闭视频模式,调用disableVideo()方法即可。
通过setVideoProfile()方法还可以设置视频编码属性(Profile)。我们在声网开发者文档中心也提供了多个参数,每个对应一套视频参数,如分辨率、帧率、码率等。
现在我们可以通过调用joinChannel()方法加入频道,与在同一个频道的用户进行视频通话了。
目前,在远程医疗、警务等方面有许多应用案例均采用了声网 SDK,例如亮亮视野,在年初通过实时视频+面部识别的方式,有效筛查出网上在逃人员7名,以及冒用他人身份证件的人员26名;在医疗方面,美国最大的在线心理咨询平台Talkspace,通过声网 SDK 实现了远程心理咨询问诊。