本發(fā)明涉及終端技術(shù)領(lǐng)域。更具體地,涉及一種視頻通話方法及系統(tǒng)。
背景技術(shù):
隨著終端技術(shù)和網(wǎng)絡(luò)技術(shù)的快速發(fā)展,視頻通話得到了越來越廣泛的應(yīng)用。在兩個(gè)終端之間進(jìn)行視頻通話時(shí),圖像處理方法為:終端的攝像頭采集到視頻圖像之后,在采集視頻圖像的本地終端對(duì)視頻圖像進(jìn)行yuv分量旋轉(zhuǎn),再進(jìn)行編碼,最后通過網(wǎng)絡(luò)傳送給對(duì)方終端。其中,每一終端分別包括cpu、視頻圖像采集單元、收發(fā)單元、圖像編碼器、圖像解碼器和顯示單元。
在兩個(gè)終端之間進(jìn)行視頻通話時(shí),如圖1所示,主叫終端和被叫終端通過sip(sessioninitiationprotocol,會(huì)話初始協(xié)議)信令建立會(huì)話,并利用sdp(sessiondescriptionprotocol,會(huì)話描述協(xié)議)會(huì)話協(xié)商建立起主叫終端和被叫終端之間的視頻通話。終端的視頻圖像的旋轉(zhuǎn)角度值,是不進(jìn)行傳遞的,無論是sip信令還是rtp(real-timetransportprotocol,實(shí)時(shí)傳輸協(xié)議)視頻流。如圖2所示,一方終端在本地通過視頻圖像采集單元采集視頻圖像,并在本地的cpu進(jìn)行yuv分量旋轉(zhuǎn)之后,輸入到本地的圖像編碼器進(jìn)行編碼,之后將編碼后的數(shù)據(jù)通過收發(fā)單元進(jìn)行發(fā)送。如圖3所示,對(duì)端通過收發(fā)單元收到碼流后,通過圖像解碼器進(jìn)行圖像解碼并通過顯示單元進(jìn)行顯示。
視頻通話過程對(duì)終端的cpu處理性能的消耗非常大,并且會(huì)導(dǎo)致終端的cpu發(fā)熱嚴(yán)重,耗電快。經(jīng)過分析,對(duì)視頻圖像進(jìn)行yuv分量旋轉(zhuǎn)占據(jù)了終端的cpu處理性能消耗的很大部分。且由于視頻通話過程中視頻圖像采集是非常頻繁的,數(shù)據(jù)量非常大,對(duì)視頻圖像進(jìn)行旋轉(zhuǎn)的任務(wù)更會(huì)導(dǎo)致增加本地終端的cpu的負(fù)荷,占據(jù)終端處理性能。
因此,需要提供一種簡(jiǎn)化終端處理任務(wù)、釋放終端的cpu處理性能的視頻通話方法及系統(tǒng)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種視頻通話方法及系統(tǒng)。
為達(dá)到上述目的,本發(fā)明采用下述技術(shù)方案:
一種視頻通話方法,包括如下步驟:
第一終端和第二終端通過sip信令建立會(huì)話:
第一終端向第二終端發(fā)送攜帶第一終端實(shí)時(shí)采集的第一視頻圖像的旋轉(zhuǎn)角度值的呼叫消息;第二終端收到呼叫消息后向第一終端回復(fù)攜帶第二終端實(shí)時(shí)采集的第二視頻圖像的旋轉(zhuǎn)角度值的200ok消息;第一終端收到200ok消息后向第二終端回復(fù)ack消息,建立視頻通話;
第一終端和第二終端進(jìn)行視頻通話:
第一終端向第二終端發(fā)送第一終端實(shí)時(shí)采集的第一視頻圖像,同時(shí),第二終端向第一終端發(fā)送第二終端實(shí)時(shí)采集的第二視頻圖像;
第一終端根據(jù)200ok消息中第二視頻圖像的旋轉(zhuǎn)角度值初始化第一終端的圖像解碼器,對(duì)第二視頻圖像進(jìn)行圖像旋轉(zhuǎn);同時(shí),第二終端根據(jù)呼叫消息中第一視頻圖像的旋轉(zhuǎn)角度值初始化第二終端的圖像解碼器,對(duì)第一視頻圖像進(jìn)行圖像旋轉(zhuǎn)。
優(yōu)選地,該方法還包括如下步驟:在視頻通話的過程中:
第一終端和第二終端分別監(jiān)測(cè)自身實(shí)時(shí)采集的第一視頻圖像和第二視頻圖像的旋轉(zhuǎn)角度值是否發(fā)生變化:
若第一視頻圖像的旋轉(zhuǎn)角度值發(fā)生變化,則第一終端向第二終端發(fā)送攜帶第一終端實(shí)時(shí)采集的第一視頻圖像的旋轉(zhuǎn)角度值的info消息,第二終端的圖像解碼器根據(jù)info消息中第一視頻圖像的旋轉(zhuǎn)角度值對(duì)第一視頻圖像進(jìn)行圖像旋轉(zhuǎn);
若第二視頻圖像的旋轉(zhuǎn)角度值發(fā)生變化,則第二終端向第一終端發(fā)送攜帶第二終端實(shí)時(shí)采集的第二視頻圖像的旋轉(zhuǎn)角度值的info消息,第一終端的圖像解碼器根據(jù)info消息中第二視頻圖像的旋轉(zhuǎn)角度值對(duì)第二視頻圖像進(jìn)行圖像旋轉(zhuǎn)。
優(yōu)選地,第一視頻圖像的旋轉(zhuǎn)角度值通過第一終端的重力感應(yīng)器檢測(cè),第二視頻圖像的旋轉(zhuǎn)角度值通過第二終端的重力感應(yīng)器檢測(cè)。
優(yōu)選地,info消息的發(fā)送控制為當(dāng)?shù)谝唤K端或第二終端監(jiān)測(cè)到第一視頻圖像或第二視頻圖像的旋轉(zhuǎn)角度值發(fā)生變化后,延遲最小發(fā)送間隔后再發(fā)送info消息。
優(yōu)選地,所述最小發(fā)送間隔為1秒。
一種視頻通話系統(tǒng),包括第一終端和第二終端,
第一終端向第二終端發(fā)送攜帶第一終端實(shí)時(shí)采集的第一視頻圖像的旋轉(zhuǎn)角度值的呼叫消息;第二終端收到呼叫消息后向第一終端回復(fù)攜帶第二終端實(shí)時(shí)采集的第二視頻圖像的旋轉(zhuǎn)角度值的200ok消息;第一終端收到200ok消息后向第二終端回復(fù)ack消息,建立視頻通話;
第一終端向第二終端發(fā)送第一終端實(shí)時(shí)采集的第一視頻圖像,同時(shí),第二終端向第一終端發(fā)送第二終端實(shí)時(shí)采集的第二視頻圖像;
第一終端根據(jù)200ok消息中第二視頻圖像的旋轉(zhuǎn)角度值初始化第一終端的圖像解碼器,對(duì)第二視頻圖像進(jìn)行圖像旋轉(zhuǎn);同時(shí),第二終端根據(jù)呼叫消息中第一視頻圖像的旋轉(zhuǎn)角度值初始化第二終端的圖像解碼器,對(duì)第一視頻圖像進(jìn)行圖像旋轉(zhuǎn),進(jìn)行正確播放。
優(yōu)選地,第一終端和第二終端還分別監(jiān)測(cè)自身實(shí)時(shí)采集的第一視頻圖像和第二視頻圖像的旋轉(zhuǎn)角度值是否發(fā)生變化:
若第一視頻圖像的旋轉(zhuǎn)角度值發(fā)生變化,則第一終端向第二終端發(fā)送攜帶第一終端實(shí)時(shí)采集的第一視頻圖像的旋轉(zhuǎn)角度值的info消息,第二終端的圖像解碼器根據(jù)info消息中第一視頻圖像的旋轉(zhuǎn)角度值對(duì)第一視頻圖像進(jìn)行圖像旋轉(zhuǎn);
若第二視頻圖像的旋轉(zhuǎn)角度值發(fā)生變化,則第二終端向第一終端發(fā)送攜帶第二終端實(shí)時(shí)采集的第二視頻圖像的旋轉(zhuǎn)角度值的info消息,第一終端的圖像解碼器根據(jù)info消息中第二視頻圖像的旋轉(zhuǎn)角度值對(duì)第二視頻圖像進(jìn)行圖像旋轉(zhuǎn)。
優(yōu)選地,第一視頻圖像的旋轉(zhuǎn)角度值通過第一終端的重力感應(yīng)器檢測(cè),第二視頻圖像的旋轉(zhuǎn)角度值通過第二終端的重力感應(yīng)器檢測(cè)。
優(yōu)選地,info消息的發(fā)送控制為當(dāng)?shù)谝唤K端或第二終端監(jiān)測(cè)到第一視頻圖像或第二視頻圖像的旋轉(zhuǎn)角度值發(fā)生變化后,延遲最小發(fā)送間隔后再發(fā)送info消息。
優(yōu)選地,所述第一終端和第二終端的圖像解碼器分別是內(nèi)嵌有yuv分量旋轉(zhuǎn)功能的圖像解碼器。
本發(fā)明的有益效果如下:
本發(fā)明將對(duì)視頻圖像進(jìn)行圖像yuv分量旋轉(zhuǎn)的任務(wù)由采集視頻圖像的本地終端的cpu執(zhí)行變?yōu)檫M(jìn)行視頻通話的對(duì)方終端的圖像解碼器執(zhí)行,降低了視頻通話過程中終端的cpu的運(yùn)算負(fù)荷,釋放了終端的cpu的處理性能,進(jìn)而可延長(zhǎng)終端的續(xù)航能力。另一方面,本發(fā)明通過sip信令交互,可實(shí)現(xiàn)實(shí)時(shí)對(duì)視頻通話中視頻圖像的旋轉(zhuǎn)調(diào)整,對(duì)圖像進(jìn)行精確播放,提升了用戶感受。
附圖說明
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)的說明。
圖1示出現(xiàn)有技術(shù)中兩個(gè)終端通過sip信令建立會(huì)話,并利用sdp會(huì)話協(xié)商建立視頻通話的流程圖,其中:p-cscf代表proxy-callservercontrolfunction,代理呼叫會(huì)話控制實(shí)體;s-cscf代表serving-callservercontrolfunction,服務(wù)呼叫會(huì)話控制實(shí)體。
圖2示出現(xiàn)有技術(shù)中發(fā)送終端的任務(wù)流程圖。
圖3示出現(xiàn)有技術(shù)中接收終端的任務(wù)流程圖。
圖4示出本發(fā)明公開的視頻通話方法的流程圖。
具體實(shí)施方式
為了更清楚地說明本發(fā)明,下面結(jié)合優(yōu)選實(shí)施例和附圖對(duì)本發(fā)明做進(jìn)一步的說明。附圖中相似的部件以相同的附圖標(biāo)記進(jìn)行表示。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,下面所具體描述的內(nèi)容是說明性的而非限制性的,不應(yīng)以此限制本發(fā)明的保護(hù)范圍。
本發(fā)明公開的一種視頻通話方法,視頻通話的兩個(gè)終端利用重力感應(yīng)器檢測(cè)自身采集的視頻圖像的旋轉(zhuǎn)角度值,并利用sip信令交互,將旋轉(zhuǎn)角度值實(shí)時(shí)通知對(duì)方終端,對(duì)方終端的內(nèi)嵌的yuv旋轉(zhuǎn)功能的圖像解碼器根據(jù)旋轉(zhuǎn)角度值對(duì)接收的對(duì)方視頻圖像進(jìn)行圖像旋轉(zhuǎn)。
本發(fā)明公開的一種視頻通話方法的流程為:
第一終端和第二終端通過sip信令建立會(huì)話:
第一終端向第二終端發(fā)送攜帶第一終端實(shí)時(shí)采集的第一視頻圖像的旋轉(zhuǎn)角度值的呼叫消息;第二終端收到呼叫消息后向第一終端回復(fù)攜帶第二終端實(shí)時(shí)采集的第二視頻圖像的旋轉(zhuǎn)角度值的200ok消息;第一終端收到200ok消息后向第二終端回復(fù)ack消息,建立視頻通話;
第一終端和第二終端進(jìn)行視頻通話:
第一終端和第二終端分別實(shí)時(shí)采集圖像,并將實(shí)時(shí)采集的圖像進(jìn)行編碼得到編碼的第一視頻圖像和第二視頻圖像;
第一終端向第二終端發(fā)送第一終端實(shí)時(shí)采集的第一視頻圖像,同時(shí),第二終端向第一終端發(fā)送第二終端實(shí)時(shí)采集的第二視頻圖像;
第一終端根據(jù)200ok消息中第二視頻圖像的旋轉(zhuǎn)角度值初始化第一終端的圖像解碼器,對(duì)第二視頻圖像進(jìn)行圖像旋轉(zhuǎn),調(diào)整第二視頻圖像播放的角度,以進(jìn)行正確播放;同時(shí),第二終端根據(jù)呼叫消息中第一視頻圖像的旋轉(zhuǎn)角度值初始化第二終端的圖像解碼器,對(duì)第一視頻圖像進(jìn)行圖像旋轉(zhuǎn),調(diào)整第一視頻圖像播放的角度,以進(jìn)行正確播放。
上述方法將對(duì)視頻圖像進(jìn)行圖像旋轉(zhuǎn)的任務(wù)由采集視頻圖像的本地終端的cpu執(zhí)行變?yōu)檫M(jìn)行視頻通話的對(duì)方終端的圖像解碼器執(zhí)行,從而降低了視頻通話過程中兩方終端的cpu的運(yùn)算負(fù)荷,釋放了兩方終端的cpu的處理性能。
根據(jù)本發(fā)明的優(yōu)選實(shí)施方案,該方法還包括如下步驟:
在視頻通話的過程中:
第一終端和第二終端分別監(jiān)測(cè)自身實(shí)時(shí)采集的第一視頻圖像和第二視頻圖像的旋轉(zhuǎn)角度值是否發(fā)生變化:
若第一視頻圖像的旋轉(zhuǎn)角度值發(fā)生變化,則第一終端向第二終端發(fā)送攜帶第一終端實(shí)時(shí)采集的第一視頻圖像的旋轉(zhuǎn)角度值的info消息,第二終端的圖像解碼器根據(jù)info消息中第一視頻圖像的旋轉(zhuǎn)角度值對(duì)第一視頻圖像進(jìn)行圖像旋轉(zhuǎn),調(diào)整第一視頻圖像播放的角度,以進(jìn)行正確播放;
若第二視頻圖像的旋轉(zhuǎn)角度值發(fā)生變化,則第二終端向第一終端發(fā)送攜帶第二終端實(shí)時(shí)采集的第二視頻圖像的旋轉(zhuǎn)角度值的info消息,第一終端的圖像解碼器根據(jù)info消息中第二視頻圖像的旋轉(zhuǎn)角度值對(duì)第二視頻圖像進(jìn)行圖像旋轉(zhuǎn),調(diào)整第二視頻圖像播放的角度,以進(jìn)行正確播放。
這樣,在視頻通話的過程中,可以實(shí)現(xiàn)通過根據(jù)實(shí)時(shí)監(jiān)測(cè)的視頻圖像的旋轉(zhuǎn)角度值的變化對(duì)視頻圖像實(shí)時(shí)進(jìn)行旋轉(zhuǎn),對(duì)視頻圖像播放角度的實(shí)時(shí)調(diào)整,且對(duì)視頻圖像實(shí)時(shí)進(jìn)行旋轉(zhuǎn)的過程不占用終端的cpu的處理性能,并進(jìn)一步改善了視頻圖像的播放效果,改善了用戶體驗(yàn)。
第一視頻圖像的旋轉(zhuǎn)角度值通過第一終端的重力感應(yīng)器檢測(cè),第二視頻圖像的旋轉(zhuǎn)角度值通過第二終端的重力感應(yīng)器檢測(cè)。
為保證終端功能穩(wěn)定,info消息的發(fā)送控制為當(dāng)?shù)谝唤K端或第二終端監(jiān)測(cè)到第一視頻圖像或第二視頻圖像的旋轉(zhuǎn)角度值發(fā)生變化后,至少延遲最小發(fā)送間隔后再發(fā)送info消息。該最小發(fā)送間隔的推薦值為1秒。
圖像解碼器根據(jù)對(duì)方終端傳送的視頻圖像的旋轉(zhuǎn)角度值對(duì)對(duì)方終端傳送的視頻圖像進(jìn)行旋轉(zhuǎn)的旋轉(zhuǎn)過程嵌入在圖像解碼器的幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)或者環(huán)路濾波中。
如圖4所示,本發(fā)明公開的一種視頻通話方法包括如下步驟:
步驟1、第一終端向第二終端發(fā)送攜帶第一終端實(shí)時(shí)采集的第一視頻圖像的旋轉(zhuǎn)角度值的呼叫(invite)消息;
步驟2、第二終端收到呼叫消息后向第一終端回復(fù)攜帶第二終端實(shí)時(shí)采集的第二視頻圖像的旋轉(zhuǎn)角度值的200ok(同意)消息;
步驟3、第一終端收到200ok消息后向第二終端回復(fù)ack(確認(rèn))消息,建立視頻通話;
第一終端和第二終端分別實(shí)時(shí)采集圖像,并將實(shí)時(shí)采集的圖像進(jìn)行編碼得到編碼的第一視頻圖像和第二視頻圖像;
步驟4、第一終端向第二終端發(fā)送第一終端實(shí)時(shí)采集的第一視頻圖像,第二終端向第一終端發(fā)送第二終端實(shí)時(shí)采集的第二視頻圖像;
步驟5、第一終端根據(jù)200ok消息中第二視頻圖像的旋轉(zhuǎn)角度值初始化第一終端的圖像解碼器,對(duì)第二視頻圖像進(jìn)行圖像旋轉(zhuǎn),調(diào)整第二視頻圖像播放的角度,以進(jìn)行正確播放;第二終端根據(jù)呼叫消息中第一視頻圖像的旋轉(zhuǎn)角度值初始化第二終端的圖像解碼器,對(duì)第一視頻圖像進(jìn)行圖像旋轉(zhuǎn),調(diào)整第一視頻圖像播放的角度,以進(jìn)行正確播放;
步驟6、在視頻通話的過程中:第一終端和第二終端分別監(jiān)測(cè)自身實(shí)時(shí)采集的第一視頻圖像和第二視頻圖像的旋轉(zhuǎn)角度值是否發(fā)生變化:
若第一視頻圖像的旋轉(zhuǎn)角度值發(fā)生變化,則第一終端向第二終端發(fā)送攜帶第一終端實(shí)時(shí)采集的第一視頻圖像的旋轉(zhuǎn)角度值的info(告知)消息,第二終端的圖像解碼器根據(jù)info消息中第一視頻圖像的旋轉(zhuǎn)角度值對(duì)第一視頻圖像進(jìn)行圖像旋轉(zhuǎn),調(diào)整第一視頻圖像播放的角度,以進(jìn)行正確播放;
若第二視頻圖像的旋轉(zhuǎn)角度值發(fā)生變化,則第二終端向第一終端發(fā)送攜帶第二終端實(shí)時(shí)采集的第二視頻圖像的旋轉(zhuǎn)角度值的info消息,第一終端的圖像解碼器根據(jù)info消息中第二視頻圖像的旋轉(zhuǎn)角度值對(duì)第二視頻圖像進(jìn)行圖像旋轉(zhuǎn),調(diào)整第二視頻圖像播放的角度,以進(jìn)行正確播放。
其中,第一終端監(jiān)測(cè)自身實(shí)時(shí)采集的第一視頻圖像的旋轉(zhuǎn)角度值是否發(fā)生變化是通過第一終端的重力感應(yīng)器實(shí)時(shí)檢測(cè)旋轉(zhuǎn)角度值,再由第一終端進(jìn)行數(shù)值變化的監(jiān)測(cè)實(shí)現(xiàn)的;第二終端監(jiān)測(cè)自身實(shí)時(shí)采集的第二視頻圖像的旋轉(zhuǎn)角度值是否發(fā)生變化是通過第二終端的重力感應(yīng)器實(shí)時(shí)檢測(cè)旋轉(zhuǎn)角度值,再由第二終端進(jìn)行數(shù)值變化的監(jiān)測(cè)實(shí)現(xiàn)的;發(fā)現(xiàn)實(shí)時(shí)采集的視頻圖像的旋轉(zhuǎn)角度值發(fā)生了變化則利用sip信令中的info消息實(shí)時(shí)通知對(duì)方。
以下為sip交互消息示例,其中,新增了sip的頭域內(nèi)容,圖像旋轉(zhuǎn)角度。0、90、180、270分別代表旋轉(zhuǎn)了0度、90度、180度、270度,也可以是其他旋轉(zhuǎn)角度值:
invitesip:888000@172.16.0.1sip/2.0
call-id:d45ecd118f2c5de8a3c05654eb0b2a51@192.168.0.101
cseq:1invite
from:"888009"<sip:888009@172.16.0.1>;tag=4h2m81yc
to:"888000"<sip:888000@172.16.0.1>
via:sip/2.0/udp192.168.0.101:5060;branch=z9hg4bk0b70b59e5d241462a565c0682eed55aa;rport
p-special-call-info:type=rotation;degree=0//或者是type=rotation,degree=0、90、180、270
max-forwards:70
route:<sip:sbc@192.168.0.33:8000;lr>
p-associated-address:sip:888009@172.16.0.1
contact:<sip:192.168.0.101:5060>
allow:invite,message,prack,update,bye,cancel,ack
user-agent:sphone2.0.1stamp151215
content-type:application/sdp
session-expires:1800;refresher=uac
supported:timer
content-length:0
sip/2.0200ok
from:
<sip:888000@172.16.0.1>;tag=7f284b4a5cb0-10010ac-13dc-50029-111d-3980af46-111d
to:<sip:888009@172.16.0.1>;tag=t9mvx993
call-id:7f284b2158e8-10010ac-13dc-50029-111d-24149728-111d
cseq:1invite
via:sip/2.0/udp192.168.0.33:8000;branch=z9hg4bk-111d-42dc5f-28393420
p-special-call-info:type=rotation;degree=0//type=rotation,degree=0、90、180、270
record-route:<sip:192.168.0.33:8000;lr>
contact:<sip:192.168.0.101:5060>
route:<sip:192.168.0.33:8000;lr>
content-type:application/sdp
require:timer
session-expires:3600;refresher=uac
content-length:493
info:
infosip:sbc@192.168.0.54sip/2.0
from:<sip:1560010@172.16.0.1>;tag=5cd9470-8700a8c0-cdcd-50029-1c-38aaa0f7-1c
to:<sip:dsconf@172.16.0.1>;tag=7fbfef224ef8-10010ac-13dc-50029-1a2e-506aea3-1a2e
call-id:5ce4738-8700a8c0-cdcd-50029-1c-59df48c1-1c
cseq:2info
via:sip/2.0/udp192.168.0.135:52685;branch=z9hg4bk-2a-a410-69e6eb11
p-special-call-info:type=rotation;degree=0//type=rotation,degree=0、90、180、270
max-forwards:70
supported:timer
route:<sip:192.168.0.54:8000;lr>
contact:<sip:192.168.0.135:52685>
content-type:text/xml;charset=utf-8
content-length:0
其中,
p-special-call-info頭中,type=rotation表示旋轉(zhuǎn),degree為旋轉(zhuǎn)角度值,旋轉(zhuǎn)角度值分為0、180、90、270四種,默認(rèn)旋轉(zhuǎn)90度,為終端豎屏狀態(tài)下的角度值。
android終端可通過系統(tǒng)函數(shù)獲取該終端實(shí)時(shí)采集的視頻圖像的旋轉(zhuǎn)角度值,系統(tǒng)函數(shù)為:this.getwindowmanager().getdefaultdisplay().getrotaion()。
當(dāng)一方終端收到對(duì)方終端角度發(fā)生變化的info消息后,獲取對(duì)方終端最新的角度,然后根據(jù)角度重新設(shè)定其圖像解碼器的參數(shù),進(jìn)行正確播放。
本發(fā)明公開的一種視頻通話系統(tǒng),包括第一終端和第二終端,
第一終端向第二終端發(fā)送攜帶第一終端實(shí)時(shí)采集的第一視頻圖像的旋轉(zhuǎn)角度值的呼叫消息;第二終端收到呼叫消息后向第一終端回復(fù)攜帶第二終端實(shí)時(shí)采集的第二視頻圖像的旋轉(zhuǎn)角度值的200ok消息;第一終端收到200ok消息后向第二終端回復(fù)ack消息,建立視頻通話;
第一終端向第二終端發(fā)送第一終端實(shí)時(shí)采集的第一視頻圖像,同時(shí),第二終端向第一終端發(fā)送第二終端實(shí)時(shí)采集的第二視頻圖像;
第一終端根據(jù)200ok消息中第二視頻圖像的旋轉(zhuǎn)角度值初始化第一終端的圖像解碼器,對(duì)第二視頻圖像進(jìn)行圖像旋轉(zhuǎn);同時(shí),第二終端根據(jù)呼叫消息中第一視頻圖像的旋轉(zhuǎn)角度值初始化第二終端的圖像解碼器,對(duì)第一視頻圖像進(jìn)行圖像旋轉(zhuǎn)。
上述系統(tǒng)將對(duì)視頻圖像進(jìn)行圖像旋轉(zhuǎn)的任務(wù)由采集視頻圖像的本地終端的cpu執(zhí)行變?yōu)檫M(jìn)行視頻通話的對(duì)方終端的圖像解碼器執(zhí)行,從而降低了視頻通話過程中兩方終端的cpu的運(yùn)算負(fù)荷,釋放了兩方終端的cpu的處理性能。
在根據(jù)本發(fā)明的系統(tǒng)中,第一終端和第二終端還分別監(jiān)測(cè)自身實(shí)時(shí)采集的第一視頻圖像和第二視頻圖像的旋轉(zhuǎn)角度值是否發(fā)生變化:
若第一視頻圖像的旋轉(zhuǎn)角度值發(fā)生變化,則第一終端向第二終端發(fā)送攜帶第一終端實(shí)時(shí)采集的第一視頻圖像的旋轉(zhuǎn)角度值的info消息,第二終端的圖像解碼器根據(jù)info消息中第一視頻圖像的旋轉(zhuǎn)角度值對(duì)第一視頻圖像進(jìn)行圖像旋轉(zhuǎn);
若第二視頻圖像的旋轉(zhuǎn)角度值發(fā)生變化,則第二終端向第一終端發(fā)送攜帶第二終端實(shí)時(shí)采集的第二視頻圖像的旋轉(zhuǎn)角度值的info消息,第一終端的圖像解碼器根據(jù)info消息中第二視頻圖像的旋轉(zhuǎn)角度值對(duì)第二視頻圖像進(jìn)行圖像旋轉(zhuǎn)。
這樣,在視頻通話的過程中,可以實(shí)現(xiàn)通過根據(jù)實(shí)時(shí)監(jiān)測(cè)的視頻圖像的旋轉(zhuǎn)角度值的變化對(duì)視頻圖像實(shí)時(shí)進(jìn)行旋轉(zhuǎn),對(duì)視頻圖像播放角度的實(shí)時(shí)調(diào)整,且對(duì)視頻圖像實(shí)時(shí)進(jìn)行旋轉(zhuǎn)的過程不占用終端的cpu的處理性能。
第一視頻圖像的旋轉(zhuǎn)角度值通過第一終端的重力感應(yīng)器檢測(cè),第二視頻圖像的旋轉(zhuǎn)角度值通過第二終端的重力感應(yīng)器檢測(cè)。
info消息的發(fā)送控制為當(dāng)?shù)谝唤K端或第二終端監(jiān)測(cè)到第一視頻圖像或第二視頻圖像的旋轉(zhuǎn)角度值發(fā)生變化后,延遲最小發(fā)送間隔后再發(fā)送info消息。該最小發(fā)送間隔推薦值為1秒。
顯然,本發(fā)明的上述實(shí)施例僅僅是為清楚地說明本發(fā)明所作的舉例,而并非是對(duì)本發(fā)明的實(shí)施方式的限定,對(duì)于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其它不同形式的變化或變動(dòng),這里無法對(duì)所有的實(shí)施方式予以窮舉,凡是屬于本發(fā)明的技術(shù)方案所引伸出的顯而易見的變化或變動(dòng)仍處于本發(fā)明的保護(hù)范圍之列。