本發(fā)明涉及即時(shí)通信技術(shù)領(lǐng)域,尤其涉及基于AR技術(shù)的即時(shí)音視頻通信方法及裝置。
背景技術(shù):
隨著科技的進(jìn)步,諸如智能手機(jī)、筆記本電腦和計(jì)算機(jī)之類(lèi)的終端設(shè)備已經(jīng)成為工作生活中不可缺少的重要組成部分,增強(qiáng)現(xiàn)實(shí)(AR,Augmented Reality)技術(shù)通過(guò)將虛擬世界和現(xiàn)實(shí)世界結(jié)合,帶給人們更好的體驗(yàn)。
目前跨平臺(tái)、跨終端的即時(shí)通訊系統(tǒng)一般只采用人機(jī)交互的方式,例如文字,圖片,動(dòng)畫(huà),音頻,視頻和語(yǔ)音通話(huà)等,這種交互方式有一定的單一和局限性。因而如何將AR技術(shù)應(yīng)用到即時(shí)通信系統(tǒng)以豐富交互方式是十分重要的。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供基于AR技術(shù)的即時(shí)音視頻通信方法及裝置,以豐富即時(shí)通信的交互方式。
一方面,本發(fā)明實(shí)施例提供了基于AR技術(shù)的即時(shí)音視頻通信方法,包括:
建立與至少一個(gè)通話(huà)對(duì)端的音視頻通話(huà)連接;
依據(jù)本地端用戶(hù)的操作確定目標(biāo)對(duì)象;
依據(jù)預(yù)設(shè)的對(duì)象與3D形象模型文件之間的映射關(guān)系,確定所述目標(biāo)對(duì)象的虛擬3D形象,并將所述虛擬3D形象添加到音視頻通話(huà)畫(huà)面得到AR通話(huà)畫(huà)面,且將所述目標(biāo)對(duì)象發(fā)送給所述至少一個(gè)通話(huà)對(duì)端,使所述至少一個(gè)通話(huà)對(duì)端確定所述目標(biāo)對(duì)象的虛擬3D形象并得到AR通話(huà)畫(huà)面。
另一方面,本發(fā)明實(shí)施例還提供了基于AR技術(shù)的即時(shí)音視頻通信裝置,包括:
通話(huà)連接模塊,用于建立與至少一個(gè)通話(huà)對(duì)端的音視頻通話(huà)連接;
目標(biāo)對(duì)象確定模塊,用于依據(jù)本地端用戶(hù)的操作確定目標(biāo)對(duì)象;
通話(huà)畫(huà)面生成模塊,用于依據(jù)預(yù)設(shè)的對(duì)象與3D形象模型文件之間的映射關(guān)系,確定所述目標(biāo)對(duì)象的虛擬3D形象,并將所述虛擬3D形象添加到音視頻通話(huà)畫(huà)面得到AR通話(huà)畫(huà)面,且將所述目標(biāo)對(duì)象發(fā)送給所述至少一個(gè)通話(huà)對(duì)端,使所述至少一個(gè)通話(huà)對(duì)端確定所述目標(biāo)對(duì)象的虛擬3D形象并得到AR通話(huà)畫(huà)面。
本發(fā)明實(shí)施例提供的技術(shù)方案,本地通話(huà)端通過(guò)建立與至少一個(gè)通話(huà)對(duì)端的音視頻通話(huà)連接,依據(jù)本地端用戶(hù)的操作確定目標(biāo)對(duì)象,依據(jù)本地端中預(yù)先存儲(chǔ)的對(duì)象與3D形象模型文件之間的映射關(guān)系,確定目標(biāo)對(duì)象的虛擬3D形象,將虛擬3D形象添加到音視頻通話(huà)界面得到本地端的AR通話(huà)畫(huà)面。并且,本地端還將目標(biāo)對(duì)象發(fā)送給至少一個(gè)通話(huà)對(duì)端,使至少一個(gè)通話(huà)對(duì)端依據(jù)預(yù)設(shè)的對(duì)象與3D形象模型文件之間的映射關(guān)系確定目標(biāo)對(duì)象的虛擬3D形象,將虛擬3D形象添加到音視頻通話(huà)界面得到通話(huà)對(duì)端的AR通話(huà)畫(huà)面??梢栽诒镜囟撕屯ㄔ?huà)對(duì)端同步生成包含虛擬3D形象的AR通話(huà)畫(huà)面,豐富了即時(shí)通信系統(tǒng)的交互方法,提升了用戶(hù)體驗(yàn)。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例一中提供的基于AR技術(shù)的即時(shí)音視頻通信方法的流程圖;
圖2為本發(fā)明實(shí)施例二中提供的基于AR技術(shù)的即時(shí)音視頻通信方法的流程圖;
圖3為本發(fā)明實(shí)施例三中提供的基于AR技術(shù)的即時(shí)音視頻通信方法的流程圖;
圖4為本發(fā)明實(shí)施例三中提供的AR音視頻即時(shí)通信系統(tǒng)的通訊架構(gòu)圖;
圖5為本發(fā)明實(shí)施例三中提供的虛擬3D形象的模型渲染示意圖;
圖6為本發(fā)明實(shí)施例三中提供的虛擬3D形象的貼圖及紋理處理示意圖;
圖7為本發(fā)明實(shí)施例四中提供的基于AR技術(shù)的即時(shí)音視頻通信裝置的結(jié)構(gòu)圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明??梢岳斫獾氖?,此處所描述的具體實(shí)施例僅僅用于解釋本發(fā)明,而非對(duì)本發(fā)明的限定。另外還需要說(shuō)明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
實(shí)施例一
圖1為本發(fā)明實(shí)施例一中提供的基于AR技術(shù)的即時(shí)音視頻通信方法的流程圖。本實(shí)施例的方法可以由基于AR技術(shù)的即時(shí)音視頻通信裝置來(lái)執(zhí)行,該裝置可通過(guò)硬件和/或軟件的方式實(shí)現(xiàn)。參考圖1,本實(shí)施例提供的基于AR技術(shù)的即時(shí)音視頻通信方法具體可以包括如下:
步驟11、建立與至少一個(gè)通話(huà)對(duì)端的音視頻通話(huà)連接。
具體的,需要通話(huà)的雙方或多方分別在終端上用預(yù)先注冊(cè)或分配的賬戶(hù)和密碼登陸到AR音視頻通信系統(tǒng)。隨后,任一通話(huà)方通過(guò)客戶(hù)端的好友列表選擇需要通話(huà)的好友,發(fā)起音視頻通話(huà)請(qǐng)求,被選中方接受請(qǐng)求,則成功建立雙方或多方的音視頻通話(huà)連接。
其中,各AR音視頻通信客戶(hù)端中預(yù)先存儲(chǔ)有對(duì)象與3D形象模型文件之間的映射關(guān)系,以備后續(xù)依據(jù)該映射關(guān)系生成虛擬3D形象。對(duì)象可以指諸如小貓、小狗、女生、男生、皮卡丘和精靈之類(lèi)的角色身份。需要說(shuō)明的是,客戶(hù)端中還存儲(chǔ)有3D形象模型文件分別與貼圖和紋理文件之間的映射關(guān)系,以便于后續(xù)渲染虛擬3D形象。
步驟12、依據(jù)本地端用戶(hù)的操作確定目標(biāo)對(duì)象。
其中,本地端用戶(hù)指的是主動(dòng)需要加入AR虛擬物體的任一方用戶(hù)。具體的,在本地端用戶(hù)在屏幕上點(diǎn)擊通信客戶(hù)端提供的增加AR虛擬物體選項(xiàng)時(shí),本地端可以依據(jù)用戶(hù)操作確定目標(biāo)對(duì)象。
步驟13、依據(jù)預(yù)設(shè)的對(duì)象與3D形象模型文件之間的映射關(guān)系,確定所述目標(biāo)對(duì)象的虛擬3D形象,并將所述虛擬3D形象添加到音視頻通話(huà)畫(huà)面得到AR通話(huà)畫(huà)面,且將所述目標(biāo)對(duì)象發(fā)送給所述至少一個(gè)通話(huà)對(duì)端,使所述至少一個(gè)通話(huà)對(duì)端確定所述目標(biāo)對(duì)象的虛擬3D形象并得到AR通話(huà)畫(huà)面。
具體的,本地端依據(jù)預(yù)設(shè)的對(duì)象與3D形象模型文件之間的映射關(guān)系,確定目標(biāo)對(duì)象關(guān)聯(lián)的目標(biāo)3D形象模型文件,基于目標(biāo)3D形象模型文件生成目標(biāo)對(duì)象的虛擬3D形象,并將生成的虛擬3D形象添加到本地端屏幕所展示的音視頻通話(huà)畫(huà)面上得到本地端的AR通話(huà)畫(huà)面。需要說(shuō)明的是,還需要基于目標(biāo)3D形象模型文件所關(guān)聯(lián)的貼圖和紋理文件,渲染虛擬3D形象。
并且,本地端還可以通過(guò)音視頻通話(huà)應(yīng)用的服務(wù)器將目標(biāo)對(duì)象發(fā)送給至少一個(gè)通話(huà)對(duì)端。接收到目標(biāo)對(duì)象的通話(huà)對(duì)端依據(jù)自身承載的客戶(hù)端中預(yù)設(shè)的對(duì)象與3D形象模型文件之間的映射關(guān)系,確定目標(biāo)對(duì)象關(guān)聯(lián)的目標(biāo)3D形象模型文件,基于目標(biāo)3D形象模型文件生成目標(biāo)對(duì)象的虛擬3D形象,并將生成的虛擬3D形象添加到通話(huà)對(duì)端屏幕所展示的音視頻通話(huà)畫(huà)面上得到通話(huà)對(duì)端的AR通話(huà)畫(huà)面。
本實(shí)施例提供的技術(shù)方案,本地通話(huà)端通過(guò)建立與至少一個(gè)通話(huà)對(duì)端的音視頻通話(huà)連接,依據(jù)本地端用戶(hù)的操作確定目標(biāo)對(duì)象,依據(jù)本地端中預(yù)先存儲(chǔ)的對(duì)象與3D形象模型文件之間的映射關(guān)系,確定目標(biāo)對(duì)象的虛擬3D形象,將虛擬3D形象添加到音視頻通話(huà)界面得到本地端的AR通話(huà)畫(huà)面。并且,本地端還將目標(biāo)對(duì)象發(fā)送給至少一個(gè)通話(huà)對(duì)端,使至少一個(gè)通話(huà)對(duì)端依據(jù)預(yù)設(shè)的對(duì)象與3D形象模型文件之間的映射關(guān)系確定目標(biāo)對(duì)象的虛擬3D形象,將虛擬3D形象添加到音視頻通話(huà)界面得到通話(huà)對(duì)端的AR通話(huà)畫(huà)面。可以在本地端和通話(huà)對(duì)端同步生成包含虛擬3D形象的AR通話(huà)畫(huà)面,豐富了即時(shí)通信系統(tǒng)的交互方法,提升了用戶(hù)體驗(yàn)。
示例性的,依據(jù)本地端用戶(hù)的操作確定目標(biāo)對(duì)象,可以包括:
A、獲取所述本地端用戶(hù)通過(guò)屏幕繪制的目標(biāo)圖像;或者,獲取本地端攝像頭采集的目標(biāo)圖像。
其中,即時(shí)音視頻通信客戶(hù)端提供有對(duì)象獲取功能,如可以通過(guò)圖像繪制方式來(lái)獲取目標(biāo)圖像。具體的,若本地端用戶(hù)選擇通過(guò)繪制方式獲取目標(biāo)圖像,則客戶(hù)端提供類(lèi)似電子白板的圖像繪制區(qū)域供用戶(hù)進(jìn)行繪制,并將繪制內(nèi)容作為目標(biāo)圖像。
另外,客戶(hù)端還可以通過(guò)圖像拍攝方式來(lái)獲取目標(biāo)圖像。具體的,若本地端用戶(hù)選擇通過(guò)拍攝方式獲取目標(biāo)圖像,則客戶(hù)端可以控制本地端啟動(dòng)攝像頭,用戶(hù)使攝像頭朝向某一物體進(jìn)行拍攝得到目標(biāo)圖像。進(jìn)一步的,為了使目標(biāo)圖像的獲取不影響用戶(hù)的視頻通信,可以通過(guò)后置攝像頭來(lái)獲取目標(biāo)圖像,通過(guò)前置攝像頭獲取視頻通話(huà)內(nèi)容。
B、采用圖像識(shí)別技術(shù),確定所述目標(biāo)圖像所屬的目標(biāo)對(duì)象。
具體的,采用圖像識(shí)別技術(shù)對(duì)目標(biāo)圖像進(jìn)行識(shí)別,依據(jù)識(shí)別結(jié)果確定目標(biāo)圖像所屬的角色身份,即確定目標(biāo)圖像所屬的目標(biāo)對(duì)象。
本實(shí)施例中客戶(hù)端通過(guò)提供通過(guò)繪制方式或拍攝方式獲取目標(biāo)圖像的功能,豐富了目標(biāo)圖像的獲取方式,提升了趣味性,并且便于依據(jù)用戶(hù)需求個(gè)性化地確定目標(biāo)對(duì)象,以及便于后續(xù)個(gè)性化的生成虛擬3D形象。
另外,確定目標(biāo)對(duì)象之后還可以包括:確定目標(biāo)圖像的尺寸和/或比例參數(shù)。相應(yīng)地,為了進(jìn)一步滿(mǎn)足用戶(hù)生成個(gè)性化的虛擬3D形象的需求,示例性的,依據(jù)預(yù)設(shè)的對(duì)象與3D形象模型文件之間的映射關(guān)系,確定所述目標(biāo)對(duì)象的虛擬3D形象,可以包括:確定所述目標(biāo)對(duì)象的尺寸和/或比例;依據(jù)預(yù)設(shè)的對(duì)象與3D形象模型文件之間的映射關(guān)系,確定所述目標(biāo)對(duì)象的虛擬3D形象;依據(jù)所述目標(biāo)對(duì)象的尺寸和/或比例,修正并展示所述目標(biāo)對(duì)象的虛擬3D形象。通過(guò)依據(jù)目標(biāo)對(duì)象的尺寸和/或比例來(lái)修正目標(biāo)對(duì)象的虛擬3D形象,可以進(jìn)一步提高虛擬3D形象與目標(biāo)對(duì)象的匹配度,從而提升用戶(hù)體驗(yàn)。
實(shí)施例二
圖2為本發(fā)明實(shí)施例二中提供的基于AR技術(shù)的即時(shí)音視頻通信方法的流程圖。參考圖2,本實(shí)施例提供的基于AR技術(shù)的即時(shí)音視頻通信方法具體可以包括如下:
步驟21、建立與至少一個(gè)通話(huà)對(duì)端的音視頻通話(huà)連接。
步驟22、依據(jù)本地端用戶(hù)的操作確定目標(biāo)對(duì)象。
步驟23、依據(jù)預(yù)設(shè)的對(duì)象與3D形象模型文件之間的映射關(guān)系,確定所述目標(biāo)對(duì)象的虛擬3D形象,并將所述虛擬3D形象添加到音視頻通話(huà)畫(huà)面得到AR通話(huà)畫(huà)面,且將所述目標(biāo)對(duì)象發(fā)送給所述至少一個(gè)通話(huà)對(duì)端,使所述至少一個(gè)通話(huà)對(duì)端確定所述目標(biāo)對(duì)象的虛擬3D形象并得到AR通話(huà)畫(huà)面。
步驟24、獲取目標(biāo)動(dòng)作指令。
其中,在雙方或多方通話(huà)過(guò)程中,目標(biāo)動(dòng)作指令可以是依據(jù)任一方用戶(hù)對(duì)虛擬3D形象的指令動(dòng)作生成的。具體的,任一方用戶(hù)可以對(duì)自己終端屏幕上展示的虛擬3D形象執(zhí)行指令動(dòng)作,檢測(cè)到指令動(dòng)作的終端生成目標(biāo)動(dòng)作指令,并將目標(biāo)動(dòng)作指令通過(guò)服務(wù)器發(fā)送給其他通話(huà)端。
示例性的,步驟24可以包括:依據(jù)本地端用戶(hù)對(duì)所述目標(biāo)對(duì)象的虛擬3D形象的操作,獲取目標(biāo)動(dòng)作指令。
示例性的,步驟24也可以包括:通過(guò)服務(wù)器接收任一通話(huà)對(duì)端發(fā)送的目標(biāo)動(dòng)作指令,其中所述目標(biāo)動(dòng)作指令是依據(jù)該通話(huà)對(duì)端的用戶(hù)對(duì)所述目標(biāo)對(duì)象的虛擬3D形象的操作生成的。
步驟25、依據(jù)預(yù)設(shè)的動(dòng)作指令與交互動(dòng)畫(huà)之間的映射關(guān)系,確定所述目標(biāo)動(dòng)作指令對(duì)應(yīng)的目標(biāo)交互動(dòng)畫(huà)。
其中,各即時(shí)通信客戶(hù)端中還預(yù)先存儲(chǔ)有動(dòng)作指令與交互動(dòng)畫(huà)之間的映射關(guān)系。另外,客戶(hù)端中還可以存儲(chǔ)有交互動(dòng)畫(huà)分別與貼圖和紋理文件之間的映射關(guān)系。
具體的,接收到動(dòng)作指令的任一方通信端,依據(jù)該方通信端中動(dòng)作指令與交互動(dòng)畫(huà)之間的映射關(guān)系,確定目標(biāo)動(dòng)作指令對(duì)應(yīng)的目標(biāo)交互動(dòng)畫(huà)。
步驟26、基于所述目標(biāo)交互動(dòng)畫(huà),控制所述目標(biāo)對(duì)象的虛擬3D形象執(zhí)行所述目標(biāo)動(dòng)作指令對(duì)應(yīng)的動(dòng)作。
需要說(shuō)明的是,在控制3D形象執(zhí)行目標(biāo)動(dòng)作指令對(duì)應(yīng)的動(dòng)作時(shí),還需要基于目標(biāo)交互動(dòng)畫(huà)所關(guān)聯(lián)的貼圖和紋理文件。
另外,在多方視頻通話(huà)過(guò)程中,任一方點(diǎn)擊退出按鈕關(guān)閉窗口,其他方繼續(xù)通話(huà),直至只剩下一方時(shí)整個(gè)會(huì)話(huà)才完全結(jié)束。
本實(shí)施例提供的技術(shù)方案,在各通話(huà)端形成并展示目標(biāo)對(duì)象的虛擬3D形象后,可以依據(jù)任一通話(huà)端對(duì)虛擬3D形象的動(dòng)作指令生成目標(biāo)動(dòng)作指令,并將目標(biāo)動(dòng)作指令發(fā)送給其他通話(huà)端,使得各通話(huà)端所展示的虛擬3D形象均可以執(zhí)行目標(biāo)動(dòng)作指令對(duì)應(yīng)的動(dòng)作。該方案通過(guò)控制虛擬3D形象執(zhí)行動(dòng)作進(jìn)一步豐富了交互方式,可以提升用戶(hù)體驗(yàn)的滿(mǎn)意度。
實(shí)施例三
圖3為本發(fā)明實(shí)施例三中提供的基于AR技術(shù)的即時(shí)音視頻通信方法的流程圖。參考圖3,本實(shí)施例提供的基于AR技術(shù)的即時(shí)音視頻通信方法具體可以包括如下:
步驟31、在AR音視頻通話(huà)客戶(hù)端中預(yù)先存儲(chǔ)對(duì)象與3D形象模型文件之間的映射關(guān)系,以及動(dòng)作指令與交互動(dòng)畫(huà)之間的映射關(guān)系。
具體的,設(shè)計(jì)師預(yù)先設(shè)計(jì)生活中常見(jiàn)的3D物體及3D物體的交互動(dòng)畫(huà),交與美工通過(guò)3D建模工具(3DMAX、Blender等)制作3D形象模型,并將3D形象模型文件、交互動(dòng)畫(huà)、相關(guān)貼圖及紋理文件存儲(chǔ)在AR音視頻即時(shí)通信應(yīng)用的客戶(hù)端中。
AR音視頻即時(shí)通信系統(tǒng)主要基于SIP(Session Initiation Protocol,會(huì)話(huà)初始協(xié)議),SIP是IETF(Internet Engineering Task Force,因特網(wǎng)工程任務(wù)組)制定的協(xié)議標(biāo)準(zhǔn),在多個(gè)RFC(Request For Comments,一系列以編號(hào)排定的文件)文檔中被進(jìn)行了描述說(shuō)明。SIP是一個(gè)應(yīng)用層的協(xié)議,用來(lái)建立,終止會(huì)話(huà)或是多媒體通話(huà)。音視頻的傳輸采用RTP(Real-time Transport Protocol,實(shí)時(shí)傳輸協(xié)議)協(xié)議,RTP是IETF提出的一個(gè)標(biāo)準(zhǔn),對(duì)應(yīng)的RFC文檔為RFC3550。RFC3550不僅定義了RTP,而且定義了配套的相關(guān)協(xié)議RTCP(Real-time Transport Control Protocol,即實(shí)時(shí)傳輸控制協(xié)議)。RTP用來(lái)為IP網(wǎng)上的語(yǔ)音、圖像、傳真等多種需要實(shí)時(shí)傳輸?shù)亩嗝襟w數(shù)據(jù)提供端到端的實(shí)時(shí)傳輸服務(wù)。
AR音視頻即時(shí)通信系統(tǒng)支持p2p點(diǎn)對(duì)點(diǎn)通訊?;赥urnServer(開(kāi)源穿透服務(wù)器)的NAT(Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)穿透及轉(zhuǎn)發(fā)可以完全實(shí)現(xiàn)P2P的點(diǎn)對(duì)點(diǎn)通訊。TurnServer包含STUN(Simple Traversal of User Datagram Protocol Through Network Address Translators,NAT的UDP簡(jiǎn)單穿越)協(xié)議和服務(wù)器中轉(zhuǎn)轉(zhuǎn)發(fā)的功能。STUN協(xié)議是個(gè)輕量級(jí)的協(xié)議,基于UDP(User Datagram Protocol,用戶(hù)數(shù)據(jù)報(bào)協(xié)議)的完整的穿透NAT的解決方案。它允許應(yīng)用程序發(fā)現(xiàn)它們與公共互聯(lián)網(wǎng)之間存在的NAT和防火墻及其他類(lèi)型。它也可以讓?xiě)?yīng)用程序確定NAT分配給它們的公網(wǎng)IP地址和端口號(hào)。STUN是一種Client/Server的協(xié)議,也是一種Request/Response的協(xié)議。
AR音視頻即時(shí)通信系統(tǒng)也支持多方通訊。多方通話(huà)時(shí)需要用到TurnServer轉(zhuǎn)發(fā)的功能,轉(zhuǎn)發(fā)功能只能實(shí)現(xiàn)最多兩個(gè)人的視頻轉(zhuǎn)發(fā),所有的通話(huà)聲音通過(guò)混合器再轉(zhuǎn)發(fā)到每一方通話(huà)端進(jìn)行播放。
步驟32、建立雙方或多方的音視頻通話(huà)連接。
圖4為本發(fā)明實(shí)施例三中提供的AR音視頻即時(shí)通信系統(tǒng)的通訊架構(gòu)圖。參考圖4,AR音視頻系統(tǒng)采用音視頻通話(huà)中主流的SIP協(xié)議及HTTP(HyperText Transfer Protocol,超文本傳輸協(xié)議)協(xié)議。其中,SIP協(xié)議主要的功能有:1.客戶(hù)端采用SIP協(xié)議登錄Opensips服務(wù)器并更新上下線狀態(tài)。2.客戶(hù)端通過(guò)SIP協(xié)議進(jìn)行音視頻的呼叫、接聽(tīng)及多媒體數(shù)據(jù)的媒體協(xié)商。3.客戶(hù)端通過(guò)SIP協(xié)議的subscribe、notify進(jìn)行AR互動(dòng)通訊信息的傳輸。4.客戶(hù)端通過(guò)SIP協(xié)議的subscribe、notify進(jìn)行好友上下線的狀態(tài)通知。HTTP協(xié)議主要的功能有:1.客戶(hù)端上進(jìn)行用戶(hù)名的注冊(cè)。2.客戶(hù)端的好友管理,增加好友,刪除好友,同步好友。
另外,參考圖4,后臺(tái)各部分服務(wù)的功能如下:JSP(Java Server Pages,java服務(wù)器頁(yè)面)web:AR音視頻系統(tǒng)的web后臺(tái),用于整個(gè)系統(tǒng)的后臺(tái)管理,音視頻通訊系統(tǒng)的監(jiān)控,客戶(hù)端管理等功能。J2EE spring:實(shí)現(xiàn)客戶(hù)端的好友管理的后臺(tái)HTTP服務(wù)功能,保存好友的數(shù)據(jù)。Redis:實(shí)現(xiàn)Opensips服務(wù)和J2EE服務(wù)的數(shù)據(jù)中間橋梁,用戶(hù)保存當(dāng)前客戶(hù)端的實(shí)時(shí)狀態(tài),Opensips和TurnServer的狀態(tài)信息等。MySQL:作為J2EE服務(wù)的數(shù)據(jù)庫(kù),保存系統(tǒng)數(shù)據(jù)。Opensips:實(shí)現(xiàn)SIP協(xié)議的代理及轉(zhuǎn)發(fā)功能。
具體的,客戶(hù)端基于PJSIP(開(kāi)源的SIP封裝庫(kù))實(shí)現(xiàn)SIP會(huì)話(huà)的發(fā)起(invite),接聽(tīng),掛斷功能。音視頻通話(huà)的數(shù)據(jù)通道通過(guò)RTP協(xié)議傳輸,如果是P2P點(diǎn)對(duì)點(diǎn)傳輸?shù)膭t通過(guò)TurnServer的內(nèi)網(wǎng)IP解析并穿透得到對(duì)方的公網(wǎng)IP和端口后直接開(kāi)始數(shù)據(jù)的傳輸,如果是數(shù)據(jù)通過(guò)TurnServer的轉(zhuǎn)發(fā)功能則直接接收來(lái)自TurnServer的音視頻數(shù)據(jù)。
基于TurnServer的NAT透?jìng)骷爸修D(zhuǎn)功能,能實(shí)現(xiàn)P2P的點(diǎn)對(duì)點(diǎn)及多方轉(zhuǎn)發(fā)功能??蛻?hù)端登陸連接到TurnServer后會(huì)跟服務(wù)端自動(dòng)檢測(cè)內(nèi)網(wǎng)的類(lèi)型及是否可以實(shí)現(xiàn)NAT透?jìng)鞴δ?基于STUN協(xié)議),如果客戶(hù)端在內(nèi)網(wǎng)無(wú)法實(shí)現(xiàn)NAT透?jìng)?NAT類(lèi)型是對(duì)稱(chēng)型的)則通過(guò)TurnServer的服務(wù)器轉(zhuǎn)發(fā)功能。
多方通訊的原理則跟服務(wù)器轉(zhuǎn)發(fā)一樣,多方的音頻數(shù)據(jù)都上傳到服務(wù)器進(jìn)行音頻合成后再轉(zhuǎn)發(fā)到所有的通話(huà)客戶(hù)端進(jìn)行解碼播放。多方通訊的視頻則最多只能實(shí)現(xiàn)2個(gè)客戶(hù)端視頻畫(huà)面的廣播。
步驟33、任一通話(huà)端的用戶(hù)采用電子白板繪制目標(biāo)圖像,或者任一通話(huà)端通過(guò)后置攝像頭拍攝現(xiàn)實(shí)物體得到目標(biāo)圖像。
步驟34、該通話(huà)端采用圖像識(shí)別技術(shù)對(duì)目標(biāo)圖像進(jìn)行識(shí)別,得到目標(biāo)圖像所屬的目標(biāo)對(duì)象。
步驟35、該通話(huà)端依據(jù)本地預(yù)設(shè)的對(duì)象與3D形象模型文件之間的映射關(guān)系,確定目標(biāo)對(duì)象的虛擬3D形象,并將虛擬3D形象添加到本地視頻通話(huà)畫(huà)面得到AR通話(huà)畫(huà)面。
具體的,該通道端通過(guò)OpenGL ES(OpenGL for Embedded Systems,OpenGL三維圖形接口子集)圖形接口解析本地存儲(chǔ)的與目標(biāo)對(duì)象對(duì)應(yīng)的目標(biāo)3D形象模型文件,并將虛擬3D模型渲染在該通話(huà)端的屏幕上。
具體的,虛擬3D模型的渲染過(guò)程包括:
1)設(shè)置繪制參數(shù)。參考圖5,通過(guò)代碼加載存儲(chǔ)在本地的3D模型的數(shù)據(jù),然后將數(shù)據(jù)通過(guò)CPU(Central Processing Unit,中央處理器)時(shí)鐘發(fā)送到VRAM(Video Random Access Memory,顯存),在GPU(Graphics Processing Unit,圖形處理器)的控制下,使用VRAM中的數(shù)據(jù)和命令,完成圖形的渲染,并將結(jié)果存入幀緩沖區(qū)中,幀緩沖區(qū)中的幀最終會(huì)被發(fā)送到顯示器上。
2)貼圖及紋理。參考圖6,通過(guò)代碼加載存儲(chǔ)在本地的貼圖,通過(guò)代碼來(lái)解析貼圖生成一個(gè)二維的數(shù)組數(shù)據(jù),并加載到主內(nèi)存中。再通過(guò)調(diào)用glTexImage2D()或者gluBuild2DMipmaps()接進(jìn)行拆分,即根據(jù)像素的存儲(chǔ)模式和像素轉(zhuǎn)換操作,將紋理數(shù)據(jù)發(fā)送到顯存上。
3)渲染。拿到顯存中的二維數(shù)組數(shù)據(jù),通過(guò)GPU進(jìn)行紋理的渲染,將整個(gè)紋理映射到三維空間中。
步驟36、該通話(huà)端將目標(biāo)對(duì)象發(fā)送給其他通話(huà)端,使其他通話(huà)端確定目標(biāo)對(duì)象的虛擬3D形象并得到AR通話(huà)畫(huà)面。
步驟37、若任一通話(huà)端的用戶(hù)對(duì)虛擬3D形象執(zhí)行動(dòng)作指令,則各通話(huà)端的虛擬3D形象執(zhí)行動(dòng)作指令對(duì)應(yīng)的動(dòng)作。
具體的,3D物體根據(jù)不同的指令解析不同的動(dòng)畫(huà)文件。通過(guò)OpenGL ES圖像接口操作原3D物體,改變其空間坐標(biāo)及相關(guān)貼圖紋理從而達(dá)到3D物體“動(dòng)”起來(lái)的特效。
實(shí)施例四
圖7為本發(fā)明實(shí)施例四中提供的基于AR技術(shù)的即時(shí)音視頻通信裝置的結(jié)構(gòu)圖。如圖7所示,該基于AR技術(shù)的即時(shí)音視頻通信裝置可以包括:
通話(huà)連接模塊41,用于建立與至少一個(gè)通話(huà)對(duì)端的音視頻通話(huà)連接;
目標(biāo)對(duì)象確定模塊42,用于依據(jù)本地端用戶(hù)的操作確定目標(biāo)對(duì)象;
通話(huà)畫(huà)面生成模塊43,用于依據(jù)預(yù)設(shè)的對(duì)象與3D形象模型文件之間的映射關(guān)系,確定所述目標(biāo)對(duì)象的虛擬3D形象,并將所述虛擬3D形象添加到音視頻通話(huà)畫(huà)面得到AR通話(huà)畫(huà)面,且將所述目標(biāo)對(duì)象發(fā)送給所述至少一個(gè)通話(huà)對(duì)端,使所述至少一個(gè)通話(huà)對(duì)端確定所述目標(biāo)對(duì)象的虛擬3D形象并得到AR通話(huà)畫(huà)面。
示例性的,所述通話(huà)畫(huà)面生成模塊43具體可以用于:
確定所述目標(biāo)對(duì)象的尺寸和/或比例;
依據(jù)預(yù)設(shè)的對(duì)象與3D形象模型文件之間的映射關(guān)系,確定所述目標(biāo)對(duì)象的虛擬3D形象;
依據(jù)所述目標(biāo)對(duì)象的尺寸和/或比例,修正并展示所述目標(biāo)對(duì)象的虛擬3D形象。
示例性的,該裝置還可以包括:
指令獲取模塊,用于在確定并展示所述目標(biāo)對(duì)象的虛擬3D形象,并將所述目標(biāo)對(duì)象發(fā)送給所述至少一個(gè)通話(huà)對(duì)端之后,獲取目標(biāo)動(dòng)作指令;
目標(biāo)動(dòng)畫(huà)確定模塊,用于依據(jù)預(yù)設(shè)的動(dòng)作指令與交互動(dòng)畫(huà)之間的映射關(guān)系,確定所述目標(biāo)動(dòng)作指令對(duì)應(yīng)的目標(biāo)交互動(dòng)畫(huà);
動(dòng)作執(zhí)行模塊,用于基于所述目標(biāo)交互動(dòng)畫(huà),控制所述目標(biāo)對(duì)象的虛擬3D形象執(zhí)行所述目標(biāo)動(dòng)作指令對(duì)應(yīng)的動(dòng)作。
示例性的,所述指令獲取模塊具體可以用于:
依據(jù)本地端用戶(hù)對(duì)所述目標(biāo)對(duì)象的虛擬3D形象的操作,獲取目標(biāo)動(dòng)作指令;或者,
通過(guò)服務(wù)器接收任一通話(huà)對(duì)端發(fā)送的目標(biāo)動(dòng)作指令,其中所述目標(biāo)動(dòng)作指令是依據(jù)該通話(huà)對(duì)端的用戶(hù)對(duì)所述目標(biāo)對(duì)象的虛擬3D形象的操作生成的。
示例性的,所述目標(biāo)對(duì)象確定模塊42可以包括:
目標(biāo)圖像獲取單元,用于獲取所述本地端用戶(hù)通過(guò)屏幕繪制的目標(biāo)圖像;或者,用于獲取本地端攝像頭采集的目標(biāo)圖像;
目標(biāo)對(duì)象確定單元,用于采用圖像識(shí)別技術(shù),確定所述目標(biāo)圖像所屬的目標(biāo)對(duì)象。
本實(shí)施例提供的基于AR技術(shù)的即時(shí)音視頻通信裝置,與本發(fā)明任意實(shí)施例所提供的基于AR技術(shù)的即時(shí)音視頻通信方法屬于同一發(fā)明構(gòu)思,可執(zhí)行本發(fā)明任意實(shí)施例所提供的基于AR技術(shù)的即時(shí)音視頻通信方法,具備執(zhí)行基于AR技術(shù)的即時(shí)音視頻通信方法相應(yīng)的功能模塊和有益效果。未在本實(shí)施例中詳盡描述的技術(shù)細(xì)節(jié),可參見(jiàn)本發(fā)明任意實(shí)施例提供的基于AR技術(shù)的即時(shí)音視頻通信方法。
注意,上述僅為本發(fā)明的較佳實(shí)施例及所運(yùn)用技術(shù)原理。本領(lǐng)域技術(shù)人員會(huì)理解,本發(fā)明不限于這里所述的特定實(shí)施例,對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō)能夠進(jìn)行各種明顯的變化、重新調(diào)整和替代而不會(huì)脫離本發(fā)明的保護(hù)范圍。因此,雖然通過(guò)以上實(shí)施例對(duì)本發(fā)明進(jìn)行了較為詳細(xì)的說(shuō)明,但是本發(fā)明不僅僅限于以上實(shí)施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實(shí)施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。