Serverless云函數(shù)具有一鍵觸發(fā)、免運(yùn)維、彈性伸縮等特性,TRTC實(shí)時(shí)音視頻通過(guò)接入云函數(shù)的服務(wù)可以快速支撐實(shí)時(shí)互動(dòng)娛樂(lè)社交應(yīng)用的構(gòu)建,降低延遲的同時(shí)降低存儲(chǔ)成本。并且云函數(shù)的可編程性,可以快速整合其他云服務(wù)及三方服務(wù),擴(kuò)展業(yè)務(wù)邊界,高效創(chuàng)新玩法。
01.
應(yīng)用場(chǎng)景
AI互動(dòng)課堂
通過(guò)錄播真人教學(xué)視頻結(jié)合AI技術(shù)進(jìn)行線上直播互動(dòng)教學(xué)。
·上課前,根據(jù)教師的課程設(shè)置,將知識(shí)點(diǎn)講解、互動(dòng)提問(wèn)、問(wèn)題反饋和解答等信息錄制成視頻片段,上傳到視頻庫(kù)。
·課堂中,通過(guò)云函數(shù)將已有的錄播視頻推送到TRTC房間進(jìn)行直播。學(xué)生通過(guò)語(yǔ)音、觸屏實(shí)現(xiàn)互動(dòng)式學(xué)習(xí)。服務(wù)端通過(guò)AI技術(shù),智能識(shí)別學(xué)生的實(shí)時(shí)語(yǔ)音和作答,并根據(jù)學(xué)生的表現(xiàn),無(wú)縫切換教學(xué)片段,實(shí)時(shí)給予不同的反饋,從而提供個(gè)性化的教學(xué)體驗(yàn)。
“一起看”房間服務(wù)
·游戲直播、秀場(chǎng)、體育賽事等直播類(lèi)內(nèi)容,可以通過(guò)云函數(shù)將RTMP直播流推送到TRTC房間,實(shí)時(shí)交流,帶動(dòng)熱點(diǎn)。
·電影、音樂(lè)等點(diǎn)播類(lèi)節(jié)目,可以通過(guò)云函數(shù)將媒體文件轉(zhuǎn)換為在線媒體流輸入至TRTC房間,增值服務(wù),打造社區(qū)圈層。
02.
操作場(chǎng)景
將已有的錄播視頻或者RTMP直播流推送到實(shí)時(shí)音視頻TRTC房間進(jìn)行直播。如您需開(kāi)啟推流直播的實(shí)時(shí)記錄,可以選擇使用Redis,API網(wǎng)關(guān)會(huì)將進(jìn)度實(shí)時(shí)寫(xiě)入Redis。工作流程如下圖所示:
API網(wǎng)關(guān)調(diào)用涉及的參數(shù)如下:
·如果redis值為false,從videoSrc視頻源拉流進(jìn)行直播推流,直播流將從最新開(kāi)始。
·如果redis值為true,對(duì)于同一個(gè)videoSrc視頻源,API網(wǎng)關(guān)將先在redis中查詢(xún)是否有上一次直播流推流記錄:
·若存在記錄,則恢復(fù)上一次推流。
·若無(wú)記錄,則重新開(kāi)始推流。直播推流進(jìn)度通過(guò)回調(diào)實(shí)時(shí)寫(xiě)入redis。
03.
操作步驟
1.創(chuàng)建云函數(shù)
1.1登錄云函數(shù)控制臺(tái),選擇左側(cè)導(dǎo)航欄中的「函數(shù)服務(wù)」,單擊「新建」進(jìn)入新建函數(shù)頁(yè)面,根據(jù)頁(yè)面相關(guān)信息提示進(jìn)行配置。如下圖所示:
云函數(shù)控制臺(tái):https://console.cloud.tencent.com/scf
創(chuàng)建方式:選擇「模板創(chuàng)建」。
模糊搜索:輸入「TRTC直播推流」,并進(jìn)行搜索。單擊模板中的「查看詳情」,即可在彈出的「模板詳情」窗口中查看相關(guān)信息,支持下載操作。
1.2單擊「下一步」,根據(jù)頁(yè)面相關(guān)信息提示進(jìn)行配置。如下圖所示:
函數(shù)名稱(chēng):默認(rèn)填充。
異步執(zhí)行:勾選以開(kāi)啟。開(kāi)啟后,函數(shù)將以異步執(zhí)行模式響應(yīng)事件,事件調(diào)用無(wú)需阻塞等待處理結(jié)果,事件將在被調(diào)用后進(jìn)入異步執(zhí)行狀態(tài)。
狀態(tài)追蹤:勾選以開(kāi)啟。開(kāi)啟后,針對(duì)異步執(zhí)行的事件,將開(kāi)始記錄響應(yīng)事件的實(shí)時(shí)狀態(tài),并提供事件的統(tǒng)計(jì)、查詢(xún)及終止服務(wù),產(chǎn)生的事件狀態(tài)數(shù)據(jù)將為您保留3天。
執(zhí)行超時(shí)時(shí)間:可根據(jù)需要自行修改。
1.3配置API網(wǎng)關(guān)觸發(fā)器,默認(rèn)新建API服務(wù),不開(kāi)啟集成響應(yīng)。您也可以選擇自定義創(chuàng)建,自定義創(chuàng)建時(shí)確保集成響應(yīng)關(guān)閉,單擊「完成」即可完成函數(shù)創(chuàng)建和API網(wǎng)關(guān)觸發(fā)器創(chuàng)建。如下圖所示:
1.4如需使用Redis實(shí)時(shí)記錄推流進(jìn)度,由于Redis只能私有網(wǎng)絡(luò)訪問(wèn),因此必須將云函數(shù)的VPC配置在與Redis在同一個(gè)私有網(wǎng)絡(luò)下。如下圖所示:
2.創(chuàng)建TRTC應(yīng)用
2.1登錄實(shí)時(shí)音視頻控制臺(tái),選擇左側(cè)導(dǎo)航欄中的「開(kāi)發(fā)輔助」-->「快速跑通Demo」。
2.2填寫(xiě)Demo名稱(chēng),單擊「創(chuàng)建」完成應(yīng)用創(chuàng)建。您可以根據(jù)自己的客戶(hù)端選擇模板試運(yùn)行。
實(shí)時(shí)音視頻控制臺(tái)地址:https://console.cloud.tencent.com/trtc/monitor
3.測(cè)試函數(shù)功能
3.1使用Postman構(gòu)造HTTP請(qǐng)求。如下圖所示:
3.2請(qǐng)求發(fā)送后會(huì)收到異步函數(shù)響應(yīng)“Async run task submitted”,此次函數(shù)的RequstId會(huì)通過(guò)HTTP頭部信息中的x-scf-reqid返回。如下圖所示:
3.3在云函數(shù)控制臺(tái)「函數(shù)服務(wù)」頁(yè)面中,點(diǎn)擊上述「1.創(chuàng)建云函數(shù)」步驟中創(chuàng)建的云函數(shù)名稱(chēng),進(jìn)入「函數(shù)詳情」頁(yè),查看到打印出的推流日志信息。如下圖所示:
3.4切換至實(shí)時(shí)音視頻控制臺(tái),在「監(jiān)控儀表盤(pán)」頁(yè)面單擊房間ID,查看推流監(jiān)控詳情信息。如下圖所示:
3.5如需在推流過(guò)程中停止推流,可以調(diào)用終止異步函數(shù)接口InvokeRequestId參數(shù)停止推流(必須開(kāi)啟狀態(tài)追蹤)。其中InvokeRequestId可從上述「2.創(chuàng)建TRTC應(yīng)用」的響應(yīng)頭部信息x-scf-reqid中獲取。
終止函數(shù)異步事件:https://cloud.tencent.com/document/api/583/52500