RTC 2018 實(shí)時(shí)互聯(lián)網(wǎng)大會(huì)已經(jīng)在上周末圓滿落幕。這場(chǎng)大會(huì)吸引了很多RTC 行業(yè)一線工程師、架構(gòu)師與產(chǎn)品經(jīng)理,也展示了近一年來 RTC 行業(yè)里最值得關(guān)注的許多應(yīng)用場(chǎng)景,其中一個(gè)就是120 視頻急救。
目前,重慶市已推出急救視頻 120 自救互救服務(wù),在撥打 120 或下載相關(guān) App 后,醫(yī)生可通過視頻對(duì)話,指導(dǎo)現(xiàn)場(chǎng)人員進(jìn)行自救或互救,為搶救生命贏得寶貴時(shí)間。同時(shí),如果用戶此前并未下載 App 也沒關(guān)系,撥打120后,手機(jī)會(huì)收到一條包含 URL 的短信,用戶可通過 Web 端與急救醫(yī)生視頻對(duì)話。在這個(gè)案例中,實(shí)時(shí)視頻通話就是通過聲網(wǎng)的 SDK 實(shí)現(xiàn)的。
通過這個(gè)案例我們可以看到, RTC 技術(shù)已經(jīng)不再僅應(yīng)用于社交直播、泛娛樂,已經(jīng)開始滲透到更多惠及民生的行業(yè)中。例如,通過視頻急救、視頻報(bào)警、視頻政務(wù)的方式,進(jìn)一步加速醫(yī)務(wù)、警務(wù)、政務(wù)的事物處理流程,讓普通老百姓的生活質(zhì)量得到了提升;在教育行業(yè),在我們對(duì)公網(wǎng)傳輸質(zhì)量?jī)?yōu)化、中小運(yùn)營(yíng)商覆蓋的基礎(chǔ)上,讓更多3、4線城市,甚至偏遠(yuǎn)山區(qū)的學(xué)生也能享受到國(guó)際一線城市的優(yōu)質(zhì)教育資源;在金融行業(yè),視頻核保、視頻開戶,也進(jìn)一步地便利了普通人的生活。而在這其中,聲網(wǎng)通過自身技術(shù)服務(wù),讓更多行業(yè)的開發(fā)者從 RTC 技術(shù)難題中解脫出來,可以專注于業(yè)務(wù)場(chǎng)景本身。
那么這種緊急場(chǎng)景下,對(duì)實(shí)時(shí)視頻技術(shù)又提出了哪些要求呢?
在120急救中,一對(duì)一視頻通話發(fā)揮了重要作用。但由于場(chǎng)景特殊,如果要開發(fā)一款這樣的產(chǎn)品,還需要滿足幾點(diǎn)要求。
一、快速接通
急救講求的是爭(zhēng)分奪秒,讓視頻通話快速接通才能及時(shí)讓用戶獲得幫助。所以需要保證用戶可以快速接通。要保證這一點(diǎn),需要降低設(shè)備端的視頻延時(shí),并需要對(duì)網(wǎng)絡(luò)傳輸進(jìn)行調(diào)度優(yōu)化。
二、連通率要高
因?yàn)榕c普通的視頻聊天不同,接通失敗意味著可能會(huì)耽誤施救。聲網(wǎng)在全球有超過200個(gè)數(shù)據(jù)中心,基于此搭建的軟件定義實(shí)時(shí)網(wǎng)(SD-RTN?),即使在網(wǎng)絡(luò)條件較差情況下,也能保證穩(wěn)定可靠,高質(zhì)量的傳輸和99.9%的高連通率。
三、穩(wěn)定的低延時(shí)視頻傳輸
要保證不論在什么地點(diǎn)、網(wǎng)絡(luò)情況下,雙方都能正常進(jìn)行視頻交流?;谲浖x優(yōu)化路由選擇最優(yōu)傳輸路徑,自動(dòng)規(guī)避網(wǎng)絡(luò)擁塞和骨干網(wǎng)絡(luò)故障帶來的影響。同時(shí),根據(jù)我們的統(tǒng)計(jì),除了電信、聯(lián)通、移動(dòng)三大運(yùn)營(yíng)商,全國(guó)還有約2%的小運(yùn)營(yíng)商用戶。聲網(wǎng)也已覆蓋支持了這2%用戶所在的數(shù)十家中小運(yùn)營(yíng)商。
四、數(shù)據(jù)安全
其實(shí),不論是急救醫(yī)療,還是視頻報(bào)警,這些數(shù)據(jù)都屬于敏感信息。視頻數(shù)據(jù)在端到端的傳輸過程中需要進(jìn)行加密。聲網(wǎng) SDK 全平臺(tái)支持加密功能,這一加密技術(shù)和流程也是完全符合美國(guó)最嚴(yán)格的行業(yè)加密法案HIPAA認(rèn)證。
五、全平臺(tái)覆蓋
以急救的場(chǎng)景為例,各個(gè)醫(yī)院的硬件、軟件系統(tǒng)不同,那么除了通過客戶端進(jìn)行視頻通話,還可以通過 Web 端來實(shí)現(xiàn)。所以對(duì)開發(fā)者來講,需要讓這套視頻通話系統(tǒng)兼容全平臺(tái)。在這方面,聲網(wǎng)視頻通話 SDK 支持包括Android、iOS、Windows、macOS、Web、微信小程序、Linux 在內(nèi)的主流平臺(tái),并能支持各平臺(tái)之間的實(shí)時(shí)視頻互通。
如何通過聲網(wǎng) SDK 實(shí)現(xiàn)?
首先創(chuàng)建實(shí)例
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));
}
}
創(chuàng)建實(shí)例后,設(shè)置頻道模式。由于是一對(duì)一的視頻通話,所以需設(shè)置為通信模式。
mRtcEngine.setChannelProfile(Constants.CHANNEL_PROFILE_COMMUNICATION);
然后通過調(diào)用enableVideo()方法打開視頻模式??梢栽诩尤腩l道前或者通話中調(diào)用,在加入頻道前調(diào)用,則自動(dòng)開啟視頻模式,在通話中調(diào)用則由音頻模式切換為視頻模式。如果想關(guān)閉視頻模式,調(diào)用disableVideo()方法即可。
通過setVideoProfile()方法還可以設(shè)置視頻編碼屬性(Profile)。我們?cè)诼暰W(wǎng)開發(fā)者文檔中心也提供了多個(gè)參數(shù),每個(gè)對(duì)應(yīng)一套視頻參數(shù),如分辨率、幀率、碼率等。
現(xiàn)在我們可以通過調(diào)用joinChannel()方法加入頻道,與在同一個(gè)頻道的用戶進(jìn)行視頻通話了。
目前,在遠(yuǎn)程醫(yī)療、警務(wù)等方面有許多應(yīng)用案例均采用了聲網(wǎng) SDK,例如亮亮視野,在年初通過實(shí)時(shí)視頻+面部識(shí)別的方式,有效篩查出網(wǎng)上在逃人員7名,以及冒用他人身份證件的人員26名;在醫(yī)療方面,美國(guó)最大的在線心理咨詢平臺(tái)Talkspace,通過聲網(wǎng) SDK 實(shí)現(xiàn)了遠(yuǎn)程心理咨詢問診。