本發(fā)明屬于投屏控制技術(shù)領(lǐng)域,具體涉及一種實(shí)時(shí)投屏方法、設(shè)備及系統(tǒng)。
背景技術(shù):
隨著數(shù)字電視技術(shù)和互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,智能機(jī)頂盒成為了家庭和行業(yè)應(yīng)用中越來(lái)越重要的設(shè)備之一,一方面,它通過(guò)接收有線電纜、衛(wèi)星天線、寬帶網(wǎng)絡(luò)以及地面廣播的模擬信號(hào)或數(shù)字信號(hào),將多媒體內(nèi)容呈現(xiàn)在屏幕上,另一方面,它還可以通過(guò)安卓平臺(tái)進(jìn)行各種應(yīng)用的擴(kuò)展,為用戶提供更多類型的服務(wù)功能,增強(qiáng)用戶體驗(yàn)。傳統(tǒng)使用方式下,機(jī)頂盒需要通過(guò)視頻連接線與顯示設(shè)備相連接,將多媒體內(nèi)容展現(xiàn)在屏幕上,但隨著WiFi、藍(lán)牙等無(wú)線連接方式以及手機(jī)、平板等移動(dòng)終端設(shè)備的不斷普及,機(jī)頂盒與移動(dòng)終端設(shè)備之間的投屏使用,也逐漸成為一種趨勢(shì)。
目前常見的機(jī)頂盒與移動(dòng)終端設(shè)備之間的投屏方式為通過(guò)AirPlay、DLNA、Miracast等無(wú)線技術(shù),將移動(dòng)終端的屏幕內(nèi)容顯示在機(jī)頂盒所連接的電視屏幕上,這種方式只是通過(guò)大屏幕替換移動(dòng)終端的小屏幕帶給用戶視覺上的體驗(yàn),而在一些需要將機(jī)頂盒的屏幕內(nèi)容顯示到移動(dòng)終端屏幕上的應(yīng)用場(chǎng)景中,這種方案并不適用。同時(shí),這種方式在同一時(shí)間內(nèi)只允許一臺(tái)移動(dòng)終端進(jìn)行操作,無(wú)法實(shí)現(xiàn)機(jī)頂盒同時(shí)與多個(gè)移動(dòng)終端之間的同時(shí)交互,使用方式不夠靈活。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的之一在于克服以上缺點(diǎn),提供一種可將機(jī)頂盒播放的多媒體內(nèi)容投屏到移動(dòng)終端上的方法,實(shí)現(xiàn)利用移動(dòng)終端的傳感器等設(shè)備進(jìn)行控制機(jī)頂盒,同時(shí)實(shí)現(xiàn)多個(gè)移動(dòng)終端之間互動(dòng)。
為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種實(shí)時(shí)投屏方法,包括以下步驟:
機(jī)頂盒啟動(dòng)投屏服務(wù);
移動(dòng)終端連接機(jī)頂盒的投屏服務(wù);
所述投屏服務(wù)采集屏幕圖像數(shù)據(jù),或圖像數(shù)據(jù)與音頻數(shù)據(jù);
所述投屏服務(wù)將采集的數(shù)據(jù)發(fā)送給所述移動(dòng)終端;
所述移動(dòng)終端接收機(jī)頂盒發(fā)送的數(shù)據(jù)并進(jìn)行實(shí)時(shí)播放。
進(jìn)一步地,所述移動(dòng)終端為一個(gè)以上。
通過(guò)機(jī)頂盒的投屏服務(wù)采集屏幕圖像數(shù)據(jù),或圖像數(shù)據(jù)與音頻數(shù)據(jù),發(fā)送給連接的移動(dòng)終端,可實(shí)現(xiàn)將機(jī)頂盒的內(nèi)容投屏在一個(gè)或多個(gè)移動(dòng)終端上,使用場(chǎng)景更靈活方便。
進(jìn)一步地,所述移動(dòng)終端通過(guò)發(fā)現(xiàn)服務(wù)連接機(jī)頂盒的投屏服務(wù)。
通過(guò)發(fā)現(xiàn)服務(wù)機(jī)制,服務(wù)端自動(dòng)注冊(cè)投屏服務(wù),移動(dòng)終端可自動(dòng)發(fā)現(xiàn)局域網(wǎng)內(nèi)的投屏服務(wù)并連接,無(wú)需額外配置,更加智能方便。
進(jìn)一步地,所述“所述投屏服務(wù)將采集的數(shù)據(jù)發(fā)送給所述移動(dòng)終端”,包括以下步驟:
為每個(gè)連接的移動(dòng)終端會(huì)話創(chuàng)建一個(gè)隊(duì)列緩沖區(qū),并將采集的數(shù)據(jù)分別存放在所述隊(duì)列緩沖區(qū);
為每個(gè)連接的移動(dòng)終端會(huì)話創(chuàng)建一組RTSP線程用于維護(hù)移動(dòng)終端接收數(shù)據(jù)的播放;所述RTSP線程包括消息交互線程、數(shù)據(jù)獲取線程、數(shù)據(jù)打包線程、RTP線程和RTCP線程。
采用RTSP協(xié)議進(jìn)行數(shù)據(jù)傳輸,可提高數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,降低傳輸延時(shí)。
進(jìn)一步地,所述的實(shí)時(shí)投屏方法,還包括以下步驟:
所述移動(dòng)終端與機(jī)頂盒建立控制消息通信通道,
移動(dòng)終端采集系統(tǒng)控制消息;
移動(dòng)終端將所述系統(tǒng)控制消息封裝為通信消息,所述通信消息含有該移動(dòng)終端的唯一標(biāo)識(shí);
移動(dòng)終端將所述通信消息發(fā)送給機(jī)頂盒控制消息接收模塊;
所述系統(tǒng)控制消息包括下列中的一種或一種以上:觸摸消息、傳感器消息或虛擬按鍵消息。
本發(fā)明技術(shù)方案可通過(guò)移動(dòng)終端向機(jī)頂盒發(fā)送觸摸消息、傳感器消息或虛擬按鍵消息,從而充分利用移動(dòng)終端的觸摸設(shè)備、傳感器或虛擬按鍵設(shè)備,提供用戶靈活的控制方式,增強(qiáng)用戶體驗(yàn)。
進(jìn)一步地,所述的實(shí)時(shí)投屏方法,還包括以下步驟:
所述機(jī)頂盒控制消息接收模塊從各移動(dòng)終端接收所述通信消息;
機(jī)頂盒的控制消息接收模塊將通信消息解封裝為系統(tǒng)控制消息,按照時(shí)間順序送入消息緩沖隊(duì)列;
機(jī)頂盒的控制消息處理模塊從消息緩沖隊(duì)列中逐條提取系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序。
進(jìn)一步地,所述“機(jī)頂盒的控制消息處理模塊從消息緩沖隊(duì)列中逐條提取系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序”,具體為:
從消息緩沖隊(duì)列中逐條提取系統(tǒng)控制消息;
根據(jù)系統(tǒng)控制消息的類型將不同的系統(tǒng)控制消息發(fā)送給對(duì)應(yīng)的虛擬設(shè)備;虛擬設(shè)備將接收的系統(tǒng)控制消息封裝成機(jī)頂盒操作系統(tǒng)可識(shí)別的數(shù)據(jù);應(yīng)用程序主動(dòng)向操作系統(tǒng)獲取需要的數(shù)據(jù);
若機(jī)頂盒當(dāng)前運(yùn)行的應(yīng)用程序?qū)刂葡⑻幚砟K設(shè)置消息回調(diào),控制消息處理模塊同時(shí)將系統(tǒng)控制消息回調(diào)給應(yīng)用程序。
通過(guò)機(jī)頂盒對(duì)多個(gè)移動(dòng)終端發(fā)送的系統(tǒng)控制消息進(jìn)行響應(yīng),可達(dá)到多個(gè)移動(dòng)終端同時(shí)對(duì)機(jī)頂盒播放內(nèi)容進(jìn)行操控的目的,實(shí)現(xiàn)多用戶之間互動(dòng)。
相應(yīng)地,本發(fā)明還提供了一種實(shí)時(shí)投屏設(shè)備,包括:
啟動(dòng)模塊:用于啟動(dòng)投屏服務(wù);
連接模塊:用于供移動(dòng)終端連接投屏服務(wù);
采集模塊,用于采集屏幕圖像數(shù)據(jù),或圖像數(shù)據(jù)與音頻數(shù)據(jù);
發(fā)送模塊,用于將采集的數(shù)據(jù)發(fā)送給所述移動(dòng)終端,供移動(dòng)終端進(jìn)行實(shí)時(shí)播放。
進(jìn)一步地,所述的實(shí)時(shí)投屏設(shè)備,還包括:
控制模塊,用于接收移動(dòng)終端發(fā)送的系統(tǒng)控制消息并進(jìn)行處理。
相應(yīng)地,本發(fā)明還提供了一種實(shí)時(shí)投屏系統(tǒng),包括:機(jī)頂盒和移動(dòng)終端,其中,
機(jī)頂盒,通過(guò)局域網(wǎng)與移動(dòng)終端相連接,用于啟動(dòng)投屏服務(wù),用于采集屏幕圖像數(shù)據(jù),或圖像數(shù)據(jù)與音頻數(shù)據(jù);用于將采集的數(shù)據(jù)發(fā)送給所述移動(dòng)終端;
移動(dòng)終端,用于連接機(jī)頂盒的投屏服務(wù),并接收機(jī)頂盒發(fā)送的數(shù)據(jù)并進(jìn)行實(shí)時(shí)播放。
進(jìn)一步地,所述移動(dòng)終端還用于發(fā)送系統(tǒng)控制消息給機(jī)頂盒;所述機(jī)頂盒還用于接收移動(dòng)終端發(fā)送的系統(tǒng)控制消息并進(jìn)行處理。
進(jìn)一步地,“所述移動(dòng)終端還用于發(fā)送系統(tǒng)控制消息給機(jī)頂盒;所述機(jī)頂盒還用于接收移動(dòng)終端發(fā)送的系統(tǒng)控制消息并進(jìn)行處理”,具體為:
所述移動(dòng)終端與機(jī)頂盒建立控制消息通信通道;
移動(dòng)終端采集系統(tǒng)控制消息;
移動(dòng)終端將所述系統(tǒng)控制消息封裝為通信消息,所述通信消息含有該移動(dòng)終端的唯一標(biāo)識(shí);
移動(dòng)終端將所述通信消息發(fā)送給機(jī)頂盒控制消息接收模塊;
所述系統(tǒng)控制消息包括下列中的一種或一種以上:觸摸消息、傳感器消息或虛擬按鍵消息;
所述機(jī)頂盒控制消息接收模塊從各移動(dòng)終端接收所述通信消息;
機(jī)頂盒的控制消息接收模塊將通信消息解封裝為系統(tǒng)控制消息,按照時(shí)間順序送入消息緩沖隊(duì)列;
機(jī)頂盒的控制消息處理模塊從消息緩沖隊(duì)列中逐條提取系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序。
綜上所述,本發(fā)明技術(shù)方案的有益效果有:
1.通過(guò)機(jī)頂盒的投屏服務(wù)采集屏幕圖像內(nèi)容,或圖像數(shù)據(jù)與音頻數(shù)據(jù)內(nèi)容,發(fā)送給連接的多個(gè)移動(dòng)終端,可實(shí)現(xiàn)將機(jī)頂盒的內(nèi)容投屏在一個(gè)或多個(gè)移動(dòng)終端上,使用場(chǎng)景更靈活方便;同時(shí)可通過(guò)移動(dòng)終端向機(jī)頂盒發(fā)送觸摸消息、傳感器消息或虛擬按鍵消息,從而充分利用移動(dòng)終端的觸摸設(shè)備、傳感器或虛擬按鍵設(shè)備,提供給用戶靈活的控制方式,增強(qiáng)用戶體驗(yàn);還可通過(guò)機(jī)頂盒對(duì)多個(gè)移動(dòng)終端發(fā)送的系統(tǒng)控制消息進(jìn)行響應(yīng),可達(dá)到多個(gè)移動(dòng)終端同時(shí)對(duì)機(jī)頂盒播放內(nèi)容進(jìn)行操控的目的,實(shí)現(xiàn)多用戶之間互動(dòng)。
2.通過(guò)發(fā)現(xiàn)服務(wù)機(jī)制,服務(wù)端自動(dòng)注冊(cè)投屏服務(wù),移動(dòng)終端可自動(dòng)發(fā)現(xiàn)局域網(wǎng)內(nèi)的投屏服務(wù)并連接,無(wú)需額外配置,更加智能方便。
3.采用RTSP協(xié)議進(jìn)行數(shù)據(jù)傳輸,可提高數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,降低傳輸延時(shí)。
附圖說(shuō)明
圖1是本發(fā)明的一種實(shí)時(shí)投屏方法步驟流程圖。
圖2是本發(fā)明的投屏服務(wù)將采集的數(shù)據(jù)發(fā)送給移動(dòng)終端步驟流程圖。
圖3是本發(fā)明的機(jī)頂盒的控制消息處理模塊從消息緩沖隊(duì)列中逐條提取系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序步驟流程圖。
圖4是本發(fā)明的一種實(shí)時(shí)投屏設(shè)備結(jié)構(gòu)圖。
圖5是本發(fā)明的一種實(shí)時(shí)投屏系統(tǒng)結(jié)構(gòu)圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1,是本發(fā)明的一種實(shí)時(shí)投屏方法步驟流程圖,包括以下步驟:
步驟1、機(jī)頂盒啟動(dòng)投屏服務(wù);
本發(fā)明技術(shù)方案所述的投屏功能,指的是將機(jī)頂盒輸出的圖像數(shù)據(jù),或圖像數(shù)據(jù)與音頻數(shù)據(jù),發(fā)送給連接到機(jī)頂盒的移動(dòng)終端,在移動(dòng)終端的屏幕上同步顯示,從而方便用戶的使用。本發(fā)明技術(shù)架構(gòu)上采用的是服務(wù)端與移動(dòng)終端模式,一個(gè)投屏服務(wù)端可以為一個(gè)或者一個(gè)以上的移動(dòng)終端進(jìn)行投屏,通常一個(gè)機(jī)頂盒上部署一個(gè)投屏服務(wù),用于投屏本機(jī)頂盒的圖像數(shù)據(jù),或圖像數(shù)據(jù)與音頻數(shù)據(jù);在具體的部署形式上,投屏服務(wù)可以是安卓系統(tǒng)中的一個(gè)后臺(tái)服務(wù)或應(yīng)用,通過(guò)軟件安裝的形式集成到機(jī)頂盒系統(tǒng)中,或者以硬件模塊的方式集成在機(jī)頂盒設(shè)備中,機(jī)頂盒中的投屏服務(wù),通常設(shè)置為在機(jī)頂盒啟動(dòng)的時(shí)候同時(shí)啟動(dòng)。另外,本發(fā)明技術(shù)方案中的移動(dòng)終端指的是智能手機(jī)、平板電腦、PDA等具有顯示屏幕的移動(dòng)設(shè)備。
步驟2、移動(dòng)終端連接機(jī)頂盒的投屏服務(wù);
機(jī)頂盒對(duì)移動(dòng)終端進(jìn)行投屏的前提條件是移動(dòng)終端和機(jī)頂盒處于同一個(gè)局域網(wǎng)中,例如,若移動(dòng)終端為智能手機(jī),可通過(guò)WIFI無(wú)線網(wǎng)絡(luò)與機(jī)頂盒連接。
其次,移動(dòng)終端需要知道局域網(wǎng)中哪些機(jī)頂盒提供了投屏服務(wù),才能進(jìn)行選擇連接并使用投屏功能。一種傳統(tǒng)的方式是,移動(dòng)終端通過(guò)從配置文件中讀取提供投屏服務(wù)的機(jī)頂盒網(wǎng)絡(luò)IP地址和端口號(hào),再進(jìn)行連接。這種方式需要在每個(gè)移動(dòng)終端上進(jìn)行相應(yīng)配置,同時(shí),若提供投屏服務(wù)的機(jī)頂盒設(shè)備發(fā)生變化,所有移動(dòng)終端的配置文件都必須進(jìn)行修改,維護(hù)不方便。
優(yōu)選地,本發(fā)明技術(shù)方案中,移動(dòng)終端通過(guò)發(fā)現(xiàn)服務(wù)連接機(jī)頂盒的投屏服務(wù)。發(fā)現(xiàn)服務(wù)的主要作用是在不需要進(jìn)行手動(dòng)網(wǎng)絡(luò)配置的情況下,實(shí)現(xiàn)局域網(wǎng)內(nèi)的主機(jī)和服務(wù)的相互發(fā)現(xiàn)及通信。例如,在一具體的實(shí)施例中,本發(fā)明技術(shù)方案利用mDNS(multicast DNS,組播DNS)發(fā)現(xiàn)服務(wù)協(xié)議實(shí)現(xiàn)移動(dòng)終端發(fā)現(xiàn)局域網(wǎng)中投屏服務(wù)的具體流程為:某一機(jī)頂盒連入局域網(wǎng),在本機(jī)上啟動(dòng)了投屏服務(wù),同時(shí)也啟動(dòng)mDNS服務(wù),并向mDNS服務(wù)注冊(cè)投屏服務(wù)信息如下:投屏服務(wù)IP地址是192.168.1.101,服務(wù)端口是9009。當(dāng)另一移動(dòng)終端連入局域網(wǎng),需要尋找本網(wǎng)絡(luò)中的可用的投屏服務(wù)時(shí),先啟動(dòng)本機(jī)的mDNS服務(wù),并向mDNS服務(wù)發(fā)送查找局域網(wǎng)內(nèi)投屏服務(wù)的請(qǐng)求,此時(shí),移動(dòng)終端的mDNS服務(wù)就會(huì)向局域網(wǎng)內(nèi)其他設(shè)備上的mDNS服務(wù)發(fā)送廣播消息進(jìn)行查詢,當(dāng)機(jī)頂盒的mDNS服務(wù)接收到廣播消息后就會(huì)將已經(jīng)注冊(cè)的投屏服務(wù)IP地址和服務(wù)端口號(hào)發(fā)送給移動(dòng)終端的mDNS服務(wù)。通過(guò)這種方式,移動(dòng)終端就可以獲取到局域網(wǎng)內(nèi)所有投屏服務(wù)的IP地址和端口號(hào),選擇需要的投屏服務(wù)進(jìn)行連接點(diǎn)播。
步驟3、所述投屏服務(wù)采集屏幕圖像數(shù)據(jù),或圖像數(shù)據(jù)與音頻數(shù)據(jù);
為了能將機(jī)頂盒播放的音視頻內(nèi)容同步發(fā)送給移動(dòng)終端,投屏服務(wù)需要先進(jìn)行視頻采集,即屏幕圖像數(shù)據(jù)采集,或圖像數(shù)據(jù)與音頻數(shù)據(jù)的采集。圖像數(shù)據(jù)與音頻數(shù)據(jù)采集通常指的是通過(guò)機(jī)頂盒的采集模塊將機(jī)頂盒輸出的視頻信號(hào)和音頻信號(hào)轉(zhuǎn)換為二進(jìn)制數(shù)字信息的過(guò)程,這里的二進(jìn)制數(shù)字信息,可以是文件形式或文件流形式,本發(fā)明的技術(shù)方案中,均是以文件流的方式進(jìn)行音視頻數(shù)據(jù)的連續(xù)不斷地采集、壓縮、傳送,這樣移動(dòng)終端可以在接收多媒體流數(shù)據(jù)的同時(shí)進(jìn)行已接收部分的播放,而不必等待所有數(shù)據(jù)傳輸完畢,從而減少用戶的等待時(shí)間。當(dāng)只進(jìn)行圖像數(shù)據(jù)采集時(shí),則只采集機(jī)頂盒輸出的視頻信號(hào),然后再將視頻信號(hào)轉(zhuǎn)換為二進(jìn)制數(shù)字信息的過(guò)程。
另外,為了減少在網(wǎng)絡(luò)傳輸過(guò)程中的網(wǎng)絡(luò)帶寬占用,投屏服務(wù)還需要對(duì)采集的屏幕圖像數(shù)據(jù),或屏幕圖像數(shù)據(jù)和音頻數(shù)據(jù)(即音視頻數(shù)據(jù))進(jìn)行編碼處理,以減少文件體積。音視頻的編碼可以通過(guò)機(jī)頂盒集成的硬件編碼模塊進(jìn)行處理,相對(duì)與軟件編碼方式效率更高,速度更快,例如,常見的視頻編碼格式有H264、Xvid等,音頻編碼格式有MP3、AAC等,通過(guò)這些高質(zhì)量的編碼算法,可以在較高分辨率,例如,720P分辨率下實(shí)現(xiàn)較好的畫質(zhì)效果并盡量地減少網(wǎng)絡(luò)傳輸數(shù)據(jù)量,降低傳輸延時(shí)。
步驟4、所述投屏服務(wù)將采集的數(shù)據(jù)發(fā)送給所述移動(dòng)終端;
在對(duì)采集的屏幕圖像數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行編碼處理之后,投屏服務(wù)就可以通過(guò)網(wǎng)絡(luò)將音視頻數(shù)據(jù)流發(fā)送給移動(dòng)終端,常見的流媒體傳輸協(xié)議有RTMP協(xié)議、RTSP協(xié)議、MMS協(xié)議、HLS協(xié)議等。
優(yōu)選的,本發(fā)明的技術(shù)方案,投屏服務(wù)采用RTSP協(xié)議將編碼后的音視頻數(shù)據(jù)流發(fā)送給移動(dòng)終端。RTSP(Real Time Streaming Protocol,實(shí)時(shí)流協(xié)議)是由RealNetworks和Netscape共同提出的一種協(xié)議,它定義了一對(duì)多應(yīng)用程序如何有效地通過(guò)IP網(wǎng)絡(luò)傳輸多媒體數(shù)據(jù)。其體系結(jié)構(gòu)位于RTP(Real-Time Transport Protocol,實(shí)時(shí)傳輸協(xié)議)和RTCP(Real-Time Transport Control Protocol,實(shí)時(shí)傳輸控制協(xié)議)之上,使用TCP或RTP完成數(shù)據(jù)傳輸。RTSP是雙向的,使用時(shí)移動(dòng)終端和服務(wù)器(機(jī)頂盒端)均可發(fā)出請(qǐng)求,并且,RTSP提供操縱播放、快進(jìn)、快倒、暫停及錄制等命令的方法。
在一具體的實(shí)施例中,投屏服務(wù)采用RTSP協(xié)議將編碼后的音視頻數(shù)據(jù)流發(fā)送給移動(dòng)終端,協(xié)議交互流程為:投屏服務(wù)啟動(dòng)RTSP服務(wù)端;移動(dòng)終端向RTSP服務(wù)器發(fā)送建立會(huì)話請(qǐng)求;RTSP服務(wù)器(機(jī)頂盒)為移動(dòng)終端建立會(huì)話并返回應(yīng)答消息;移動(dòng)終端向RTSP服務(wù)器發(fā)送播放請(qǐng)求;RTSP服務(wù)器向移動(dòng)終端發(fā)送應(yīng)答消息,同時(shí)開始發(fā)送流媒體數(shù)據(jù);在播放過(guò)程中,移動(dòng)終端可以向RTSP服務(wù)器發(fā)送播放、快進(jìn)、快倒、暫停等控制消息,RTSP服務(wù)器進(jìn)行相應(yīng)控制操作;播放結(jié)束時(shí),移動(dòng)終端向RTSP服務(wù)器發(fā)送關(guān)閉會(huì)話請(qǐng)求;RTSP服務(wù)器結(jié)束該移動(dòng)終端的會(huì)話。實(shí)際應(yīng)用場(chǎng)景中,移動(dòng)終端可以是一個(gè),也可以是多個(gè),如圖2,是本發(fā)明的投屏服務(wù)將采集的數(shù)據(jù)發(fā)送給移動(dòng)終端步驟流程圖,包括以下步驟:
步驟201、為每個(gè)連接的移動(dòng)終端會(huì)話創(chuàng)建一個(gè)隊(duì)列緩沖區(qū),并將采集的數(shù)據(jù)分別存放在所述隊(duì)列緩沖區(qū);
不論有多少個(gè)移動(dòng)終端進(jìn)行RTSP點(diǎn)播,只需要將編碼的音視頻數(shù)據(jù)流同時(shí)分發(fā)到每個(gè)移動(dòng)終端對(duì)應(yīng)的隊(duì)列緩沖區(qū)即可,而不需要進(jìn)行多次重復(fù)地編碼,提高處理效率。
步驟202、為每個(gè)連接的移動(dòng)終端會(huì)話創(chuàng)建一組RTSP線程用于維護(hù)移動(dòng)終端接收數(shù)據(jù)的播放。
這里的RTSP線程包括消息交互線程、數(shù)據(jù)獲取線程、數(shù)據(jù)打包線程、RTP線程和RTCP線程。其中,消息交互線程用來(lái)維護(hù)RTSP服務(wù)端與移動(dòng)終端之間的協(xié)議交互消息,例如,建立會(huì)話請(qǐng)求,播放請(qǐng)求,結(jié)束會(huì)話請(qǐng)求等等;數(shù)據(jù)獲取線程負(fù)責(zé)從本移動(dòng)終端的會(huì)話隊(duì)列緩沖區(qū)獲取需要發(fā)送的音視頻數(shù)據(jù);數(shù)據(jù)打包線程用于將音視頻數(shù)據(jù)按照播放順序打包成RTP實(shí)時(shí)傳輸協(xié)議網(wǎng)絡(luò)數(shù)據(jù)包;RTP線程用于將RTP數(shù)據(jù)包的按照網(wǎng)絡(luò)順序進(jìn)行發(fā)送;RTCP線程用于為按順序傳送數(shù)據(jù)包提供可靠的傳送機(jī)制,同時(shí)提供流量控制或擁塞控制。
另外,移動(dòng)終端通過(guò)RTSP協(xié)議向服務(wù)端連接過(guò)程中,需要進(jìn)行摘要認(rèn)證,來(lái)檢驗(yàn)連接移動(dòng)終端的合法性,由于RTSP協(xié)議是一種可拓展的框架,在一優(yōu)選的實(shí)施例中,可在標(biāo)準(zhǔn)協(xié)議上添加私有協(xié)議,實(shí)現(xiàn)更加安全的加密認(rèn)證。
步驟5、所述移動(dòng)終端接收機(jī)頂盒發(fā)送的數(shù)據(jù)并進(jìn)行實(shí)時(shí)播放。
移動(dòng)終端通過(guò)流媒體傳輸協(xié)議接收到視頻數(shù)據(jù)或音視頻流數(shù)據(jù)后,可用支持相應(yīng)傳輸協(xié)議的播放軟件進(jìn)行解碼實(shí)時(shí)播放。本發(fā)明的技術(shù)方案,對(duì)移動(dòng)終端無(wú)特殊要求,只需要有支持相應(yīng)傳輸協(xié)議的播放軟件即可,大部分的常見播放軟件均支持各種協(xié)議流媒體的點(diǎn)播功能。
本發(fā)明的技術(shù)方案通過(guò)機(jī)頂盒的投屏服務(wù)采集播放的音視頻內(nèi)容,發(fā)送給連接的多個(gè)移動(dòng)終端,可實(shí)現(xiàn)將機(jī)頂盒的內(nèi)容投屏在移動(dòng)終端,使用場(chǎng)景更靈活方便。同時(shí)通過(guò)服務(wù)發(fā)現(xiàn)機(jī)制,服務(wù)端自動(dòng)注冊(cè)投屏服務(wù),移動(dòng)終端可自動(dòng)發(fā)現(xiàn)局域網(wǎng)內(nèi)的投屏服務(wù)并連接,無(wú)需額外配置,更加智能方便。另外,采用RTSP協(xié)議進(jìn)行數(shù)據(jù)傳輸以及對(duì)采集內(nèi)容的硬件編碼,可提高數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,降低傳輸延時(shí)。
在一優(yōu)選的實(shí)施例中,本發(fā)明的實(shí)時(shí)投屏方法,還包括以下步驟:
步驟6、移動(dòng)終端與機(jī)頂盒建立控制消息通信通道。優(yōu)選地,本發(fā)明的技術(shù)方案采用WebSocket通信協(xié)議進(jìn)行移動(dòng)終端與機(jī)頂盒之間通信消息的發(fā)送。WebSocket是HTML5一種新的協(xié)議,它采用了TCP長(zhǎng)連接的通訊模式,一旦移動(dòng)終端與服務(wù)器WebSocket連接建立后,后續(xù)數(shù)據(jù)都以幀序列的形式傳輸,在移動(dòng)終端斷開WebSocket連接或Server端斷掉連接前,不需要移動(dòng)終端和服務(wù)端重新發(fā)起連接請(qǐng)求,同時(shí)移動(dòng)終端與服務(wù)器都可以主動(dòng)向?qū)Ψ桨l(fā)送消息。通過(guò)采用WebSocket通信協(xié)議,在高并發(fā)及移動(dòng)終端與服務(wù)器交互負(fù)載流量大的情況下,可以極大節(jié)省了網(wǎng)絡(luò)帶寬資源的消耗,有明顯的性能優(yōu)勢(shì),可以實(shí)現(xiàn)操控指令發(fā)送低延遲,響應(yīng)速度快,進(jìn)一步提升用戶體驗(yàn)。
步驟7、移動(dòng)終端采集系統(tǒng)控制消息;
在移動(dòng)終端的操作系統(tǒng)中,各種用戶操控動(dòng)作的處理都是依靠事件消息驅(qū)動(dòng)機(jī)制實(shí)現(xiàn)的,其中,事件消息是指移動(dòng)終端的操作系統(tǒng)產(chǎn)生的報(bào)告事件發(fā)生的通知,移動(dòng)終端采集事件消息發(fā)送給機(jī)頂盒,再由機(jī)頂盒的操作系統(tǒng)將事件消息推送給應(yīng)用程序,由應(yīng)用程序根據(jù)機(jī)頂盒系統(tǒng)提供的事件消息進(jìn)行相應(yīng)的處理,當(dāng)然,機(jī)頂盒的操作系統(tǒng)本身也可以根據(jù)事件消息進(jìn)行相應(yīng)處理。例如,用戶點(diǎn)擊了觸摸屏,移動(dòng)終端的操作系統(tǒng)就會(huì)生成一個(gè)觸摸事件消息,該消息包含了觸摸事件的各個(gè)屬性,比如坐標(biāo)位置,觸摸動(dòng)作類型等等,移動(dòng)終端采集這個(gè)觸摸事件消息發(fā)送給機(jī)頂盒,機(jī)頂盒操作系統(tǒng)將這個(gè)觸摸事件消息發(fā)送給用戶當(dāng)前使用的瀏覽器應(yīng)用,該應(yīng)用就根據(jù)用戶點(diǎn)擊的位置進(jìn)行頁(yè)面的跳轉(zhuǎn);又如,用戶翻轉(zhuǎn)移動(dòng)終端,觸發(fā)了重力傳感器的重力變化事件消息,移動(dòng)終端采集這個(gè)重力變化事件消息發(fā)送給機(jī)頂盒,機(jī)頂盒操作系統(tǒng)根據(jù)該事件消息,對(duì)終端屏幕顯示內(nèi)容進(jìn)行翻轉(zhuǎn)操作。
本發(fā)明的技術(shù)方案中,所述移動(dòng)終端主要用于采集與用戶操控相關(guān)的系統(tǒng)控制消息,最常見的是觸摸消息,用戶在移動(dòng)終端屏幕上點(diǎn)擊,移動(dòng),多點(diǎn)操作,手勢(shì)操作等等;另外,還可能需要采集傳感器設(shè)備消息,包括加速度傳感器,磁力傳感器,重力傳感器,陀螺儀、方向傳感器,壓力傳感器等等;以及虛擬按鍵消息等。
具體的系統(tǒng)控制消息采集方式為:通過(guò)在移動(dòng)終端設(shè)置系統(tǒng)級(jí)別的消息監(jiān)聽器,對(duì)系統(tǒng)所有的事件消息進(jìn)分析,過(guò)濾出本發(fā)明移動(dòng)終端所需要的采集的系統(tǒng)控制消息,其他事件消息不進(jìn)行采集。
步驟8、移動(dòng)終端將所述系統(tǒng)控制消息封裝為通信消息,所述通信消息含有該移動(dòng)終端的唯一標(biāo)識(shí);
移動(dòng)終端采集到所需的系統(tǒng)控制消息后,需要將這些系統(tǒng)控制消息封裝為通信消息發(fā)送給機(jī)頂盒。通信消息的格式,根據(jù)移動(dòng)終端和機(jī)頂盒之間相互通信的協(xié)議決定,通常包括消息頭部和數(shù)據(jù)體兩部分,其中消息頭部為網(wǎng)絡(luò)協(xié)議規(guī)定的各種屬性信息,根據(jù)不同的網(wǎng)絡(luò)協(xié)議而不同,數(shù)據(jù)體是本發(fā)明技術(shù)方案機(jī)頂盒與移動(dòng)終端之間使用的內(nèi)部數(shù)據(jù),具體格式可以根據(jù)應(yīng)用需要設(shè)置,通常,該數(shù)據(jù)體會(huì)包含有移動(dòng)終端的唯一標(biāo)識(shí),以便機(jī)頂盒進(jìn)行消息的區(qū)分。例如,在一具體的實(shí)施例中,數(shù)據(jù)體部分可設(shè)置為包含三部分內(nèi)容:第一部分為移動(dòng)終端的唯一標(biāo)識(shí),第二部分為所采集系統(tǒng)控制消息的類型,第三部分為所采集系統(tǒng)控制消息的具體內(nèi)容。
步驟9、移動(dòng)終端將所述通信消息發(fā)送給機(jī)頂盒控制消息接收模塊。
移動(dòng)終端將封裝好的通信消息通過(guò)相應(yīng)的網(wǎng)絡(luò)協(xié)議發(fā)送給機(jī)頂盒。例如,移動(dòng)終端與機(jī)頂盒之間可采用WebSocket通信協(xié)議進(jìn)行通信消息的發(fā)送和接收。
在另一優(yōu)選的實(shí)施例中,本發(fā)明的實(shí)時(shí)投屏方法,還包括以下步驟:
步驟10、所述機(jī)頂盒控制消息接收模塊從各移動(dòng)終端接收所述通信消息;例如,機(jī)頂盒控制消息接收模塊通過(guò)WebSocket通信協(xié)議與多個(gè)移動(dòng)終端連接,并接收每個(gè)移動(dòng)終端發(fā)送的通信消息。
步驟11、機(jī)頂盒的控制消息接收模塊將通信消息解封裝為系統(tǒng)控制消息,按照時(shí)間順序送入消息緩沖隊(duì)列;
機(jī)頂盒將所有移動(dòng)終端發(fā)送的通信消息逐一進(jìn)行解封裝處理,根據(jù)傳輸網(wǎng)絡(luò)協(xié)議去除通信消息頭部,得到所需的數(shù)據(jù)體,并按照接收的時(shí)間順序送入統(tǒng)一的消息緩沖隊(duì)列中。
步驟12、機(jī)頂盒的控制消息處理模塊從消息緩沖隊(duì)列中逐條提取系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序。如圖3,是本發(fā)明的機(jī)頂盒的控制消息處理模塊從消息緩沖隊(duì)列中逐條提取系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序步驟流程圖,包括以下步驟:
步驟301、機(jī)頂盒的控制消息處理模塊按照時(shí)間順序從消息緩沖隊(duì)列中逐條提取系統(tǒng)控制消息,進(jìn)行后續(xù)的處理;
步驟302、根據(jù)系統(tǒng)控制消息的類型將不同的系統(tǒng)控制消息發(fā)送給對(duì)應(yīng)的虛擬設(shè)備;虛擬設(shè)備將接收的系統(tǒng)控制消息封裝成機(jī)頂盒操作系統(tǒng)可識(shí)別的數(shù)據(jù);應(yīng)用程序主動(dòng)向操作系統(tǒng)獲取需要的數(shù)據(jù);
由于消息緩沖隊(duì)列中的系統(tǒng)控制消息來(lái)自于不同的移動(dòng)終端,而且控制消息類型也可能不同,例如,系統(tǒng)控制消息可以是智能手機(jī)發(fā)送的觸摸消息,也可以是平板電腦發(fā)送的重力傳感器消息。若機(jī)頂盒上沒(méi)有集成對(duì)應(yīng)類型的控制設(shè)備,應(yīng)用程序是無(wú)法對(duì)該類型的系統(tǒng)控制消息進(jìn)行響應(yīng)的,在這種情況下,本發(fā)明的技術(shù)方案可通過(guò)創(chuàng)建虛擬設(shè)備的方式對(duì)該設(shè)備進(jìn)行模擬,應(yīng)用程序就可以對(duì)系統(tǒng)控制消息進(jìn)行響應(yīng)。例如,當(dāng)從移動(dòng)終端接收重力傳感器的系統(tǒng)控制消息時(shí),在機(jī)頂盒系統(tǒng)中模擬一個(gè)虛擬重力傳感器設(shè)備以及相應(yīng)設(shè)備驅(qū)動(dòng)。將重力傳感器的系統(tǒng)控制消息發(fā)送給虛擬重力傳感器設(shè)備,然后通過(guò)虛擬重力傳感器設(shè)備中的虛擬驅(qū)動(dòng)將接收的重力傳感器系統(tǒng)控制消息封裝成機(jī)頂盒操作系統(tǒng)預(yù)先規(guī)定的格式,應(yīng)用程序從操作系統(tǒng)獲取封裝后的重力傳感器的系統(tǒng)控制消息后,即可響應(yīng)該重力傳感器的系統(tǒng)控制消息。
機(jī)頂盒的控制消息處理模塊根據(jù)系統(tǒng)控制消息的類型,將提取的系統(tǒng)控制消息發(fā)送給對(duì)應(yīng)的虛擬設(shè)備,例如,某一系統(tǒng)控制消息類型為觸摸控制消息,則將該控制消息發(fā)送給機(jī)頂盒的虛擬觸摸屏設(shè)備;又如,某一系統(tǒng)控制消息類型為重力傳感控制消息,則將該控制消息發(fā)送給機(jī)頂盒的虛擬重力傳感設(shè)備。虛擬設(shè)備將接收的系統(tǒng)控制消息封裝成機(jī)頂盒操作系統(tǒng)可識(shí)別的數(shù)據(jù),在通過(guò)操作系統(tǒng)的消息機(jī)制發(fā)送給應(yīng)用程序,由應(yīng)用程序?qū)ο到y(tǒng)控制消息進(jìn)行響應(yīng)。通過(guò)操作系統(tǒng)的消息機(jī)制,應(yīng)用程序只對(duì)需要的虛擬設(shè)備控制消息進(jìn)行響應(yīng),其他虛擬設(shè)備的消息不處理。
上述處理方式通過(guò)機(jī)頂盒系統(tǒng)的虛擬設(shè)備以及消息驅(qū)動(dòng)機(jī)制實(shí)現(xiàn)了系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序,應(yīng)用程序無(wú)需做任何改動(dòng),這樣可以實(shí)現(xiàn)與第三方應(yīng)用或游戲的無(wú)縫對(duì)接。
步驟303、若機(jī)頂盒當(dāng)前運(yùn)行的應(yīng)用程序?qū)刂葡⑻幚砟K設(shè)置消息回調(diào),控制消息處理模塊同時(shí)將系統(tǒng)控制消息回調(diào)給應(yīng)用程序。
在一優(yōu)選的實(shí)施例中,機(jī)頂盒當(dāng)前運(yùn)行的應(yīng)用程序還可以通過(guò)對(duì)控制消息處理模塊設(shè)置消息回調(diào),由控制消息處理模塊提取出系統(tǒng)控制消息直接發(fā)送給應(yīng)用程序,再由應(yīng)用程序?qū)ο到y(tǒng)控制消息進(jìn)行響應(yīng),而不是通過(guò)虛擬設(shè)備轉(zhuǎn)發(fā)。這種方式可以實(shí)現(xiàn)應(yīng)用程序?qū)Χ鄠€(gè)不同的移動(dòng)終端發(fā)送的系統(tǒng)控制消息進(jìn)行響應(yīng),達(dá)到多個(gè)移動(dòng)終端同時(shí)控制機(jī)頂盒應(yīng)用程序的效果;另外,由控制消息處理模塊直接將系統(tǒng)控制消息發(fā)送給應(yīng)用程序,可降低消息延遲,提高響應(yīng)速度,例如在賽車游戲中,需要快速地根據(jù)用戶的控制信息進(jìn)行畫面的重繪,若用戶控制信息延遲高,可能就會(huì)出現(xiàn)畫面卡頓的情況,影響用戶體驗(yàn)。
例如,在一具體的實(shí)施例中,機(jī)頂盒上安裝了可多人互動(dòng)的飛行棋應(yīng)用,該應(yīng)用對(duì)控制消息處理模塊設(shè)置了消息回調(diào),通過(guò)本發(fā)明的技術(shù)方案實(shí)現(xiàn)利用智能手機(jī)、平板電腦操控機(jī)頂盒上飛行棋游戲應(yīng)用進(jìn)行多人互動(dòng)的步驟為:
步驟1、機(jī)頂盒與智能手機(jī)、平板電腦處于同一局域網(wǎng)內(nèi),智能手機(jī)、平板電腦通過(guò)mDNS服務(wù)發(fā)現(xiàn)機(jī)制分別與機(jī)頂盒建立通信連接。
步驟2、機(jī)頂盒上的反向投屏服務(wù)對(duì)屏幕顯示的飛行棋游戲應(yīng)用視頻和音頻數(shù)據(jù)進(jìn)行采集,生成音視頻數(shù)據(jù)流,再進(jìn)行壓縮后,通過(guò)RTSP協(xié)議分別發(fā)送給智能手機(jī)和平板電腦。
步驟3、智能手機(jī)、平板電腦分別通過(guò)RTSP協(xié)議接收機(jī)頂盒反向投屏服務(wù)發(fā)送的飛行棋游戲應(yīng)用音視頻數(shù)據(jù)流,在屏幕上進(jìn)行實(shí)時(shí)播放。
步驟4、智能手機(jī)和平板電腦分別在各自設(shè)備上設(shè)置系統(tǒng)級(jí)別的消息監(jiān)聽器,對(duì)系統(tǒng)所有的控制消息進(jìn)分析,過(guò)濾出用戶輸入的觸摸屏控制消息,將采集的觸摸屏控制消息封裝為WebSocket通信消息包,其中,通信消息含有智能手機(jī)或平板電腦的唯一身份標(biāo)識(shí),用于對(duì)應(yīng)飛行棋應(yīng)用中的用戶角色,再通過(guò)WebSocket協(xié)議發(fā)送給機(jī)頂盒的控制消息接收模塊。
步驟5、機(jī)頂盒的控制消息接收模塊接收從智能手機(jī)和平板電腦發(fā)送的WebSocket通信協(xié)議包,解封裝為觸摸屏控制消息,并按照時(shí)間順序送入消息緩沖隊(duì)列;機(jī)頂盒的控制消息處理模塊從消息緩沖隊(duì)列中逐條提取觸摸屏控制消息,由于飛行棋應(yīng)用程序?qū)刂葡⑻幚砟K設(shè)置了消息回調(diào),控制消息處理模塊直接將觸摸屏控制消息發(fā)送給飛行棋應(yīng)用程序。
步驟6、飛行棋應(yīng)用程序按照觸摸屏控制消息的先后順序,根據(jù)控制消息中的唯一身份標(biāo)識(shí),對(duì)飛行棋應(yīng)用中的對(duì)應(yīng)角色進(jìn)行處理,重新繪制屏幕界面,將對(duì)應(yīng)角色的棋子繪制在指定位置。與此同時(shí),反向投屏服務(wù)將最新屏幕界面內(nèi)容采集并發(fā)送給智能手機(jī)和平板電腦,使得每個(gè)用戶均能看到雙方的操作結(jié)果,再進(jìn)行后續(xù)指令輸入。
通過(guò)上述的方式,本發(fā)明的技術(shù)方案實(shí)現(xiàn)了將機(jī)頂盒的內(nèi)容分別展現(xiàn)在智能手機(jī)和平板電腦,并根據(jù)不同用戶在各自終端上的屏幕觸摸指令進(jìn)行飛行棋應(yīng)用的多人互動(dòng)。
如圖4,是本發(fā)明的一種實(shí)時(shí)投屏設(shè)備結(jié)構(gòu)圖,包括:
啟動(dòng)模塊:用于啟動(dòng)投屏服務(wù)。所述的投屏服務(wù),指的是將機(jī)頂盒輸出的圖像數(shù)據(jù),或圖像數(shù)據(jù)與音頻數(shù)據(jù),發(fā)送給連接到機(jī)頂盒的移動(dòng)終端,在移動(dòng)終端的屏幕上同步顯示,從而方便用戶的使用。
連接模塊:用于供移動(dòng)終端連接投屏服務(wù);優(yōu)選地,本發(fā)明技術(shù)方案中,移動(dòng)終端通過(guò)發(fā)現(xiàn)服務(wù)連接機(jī)頂盒的投屏服務(wù)。常見的發(fā)現(xiàn)服務(wù)協(xié)議有:SSDP(Simple Sever Discovery Protocol,簡(jiǎn)單服務(wù)發(fā)現(xiàn)協(xié)議)、mDNS(multicast DNS,組播DNS)等,本發(fā)明的技術(shù)方案優(yōu)選采用mDNS協(xié)議,通過(guò)采用自動(dòng)服務(wù)發(fā)現(xiàn)協(xié)議,服務(wù)端自動(dòng)注冊(cè)投屏服務(wù),移動(dòng)終端可自動(dòng)發(fā)現(xiàn)局域網(wǎng)內(nèi)的投屏服務(wù)并連接,無(wú)需額外配置,更加智能方便。
采集模塊,用于采集屏幕圖像數(shù)據(jù),或圖像數(shù)據(jù)與音頻數(shù)據(jù);通過(guò)機(jī)頂盒的采集模塊將機(jī)頂盒輸出的視頻信號(hào)和音頻信號(hào)轉(zhuǎn)換為文件流形式,通過(guò)文件流的方式進(jìn)行音視頻數(shù)據(jù)的連續(xù)不斷地采集、壓縮、傳送,移動(dòng)終端可以在屏幕內(nèi)容播放的同時(shí)進(jìn)行后續(xù)數(shù)據(jù)的接收,減少用戶的等待時(shí)間。采集完成后,對(duì)采集的屏幕圖像數(shù)據(jù)和音頻數(shù)據(jù)采用合適的編碼算法進(jìn)行編碼處理,在保證畫面質(zhì)量的前提下減小文件體積,減少在網(wǎng)絡(luò)傳輸過(guò)程中占用的網(wǎng)絡(luò)帶寬,降低網(wǎng)絡(luò)傳輸延時(shí)。音視頻的編碼可以通過(guò)機(jī)頂盒內(nèi)置的編碼硬件模塊進(jìn)行處理,例如,常見的視頻編碼格式有H264、Xvid等,音頻編碼格式有MP3、AAC等。
發(fā)送模塊,用于將采集的數(shù)據(jù)發(fā)送給所述移動(dòng)終端,供移動(dòng)終端進(jìn)行實(shí)時(shí)播放。本發(fā)明的技術(shù)方案采用移動(dòng)終端點(diǎn)播,服務(wù)端發(fā)送多媒體文件流的方式實(shí)現(xiàn)。具體的點(diǎn)播協(xié)議可采用RTMP協(xié)議、RTSP協(xié)議、MMS協(xié)議、HLS協(xié)議等,優(yōu)選地,本發(fā)明的技術(shù)方案采用RTSP點(diǎn)播協(xié)議進(jìn)行多媒體數(shù)據(jù)流的傳輸,允許多個(gè)移動(dòng)終端同時(shí)進(jìn)行點(diǎn)播,具體步驟為:為每個(gè)連接的移動(dòng)終端會(huì)話創(chuàng)建一個(gè)隊(duì)列緩沖區(qū),并將采集的數(shù)據(jù)分別存放在所述隊(duì)列緩沖區(qū);為每個(gè)連接的移動(dòng)終端會(huì)話創(chuàng)建一組RTSP線程用于維護(hù)移動(dòng)終端接收數(shù)據(jù)的播放,這里的RTSP線程包括消息交互線程、數(shù)據(jù)獲取線程、數(shù)據(jù)打包線程、RTP線程、RTCP線程。
在另一優(yōu)選的實(shí)施例中,本發(fā)明的實(shí)時(shí)投屏設(shè)備,還包括:控制模塊,用于接收移動(dòng)終端發(fā)送的系統(tǒng)控制消息并進(jìn)行處理。具體處理步驟為:機(jī)頂盒的控制消息接收模塊將通信消息解封裝為系統(tǒng)控制消息,按照時(shí)間順序送入消息緩沖隊(duì)列;機(jī)頂盒的控制消息處理模塊從消息緩沖隊(duì)列中逐條提取系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序。
如圖5,是本發(fā)明的一種實(shí)時(shí)投屏系統(tǒng)結(jié)構(gòu)圖,包括:機(jī)頂盒和移動(dòng)終端,其中,
機(jī)頂盒,通過(guò)局域網(wǎng)與移動(dòng)終端相連接,用于采集屏幕圖像數(shù)據(jù),或圖像數(shù)據(jù)與音頻數(shù)據(jù),并轉(zhuǎn)換為流文件;另外,機(jī)頂盒還用于在移動(dòng)終端連接并請(qǐng)求點(diǎn)播的時(shí)候?qū)⒉杉臄?shù)據(jù)發(fā)送給所述移動(dòng)終端。通常,對(duì)采集的音視頻流文件進(jìn)行硬件編碼,減小文件體積,在保證視頻播放質(zhì)量的前提下盡可能地減少傳輸時(shí)候的網(wǎng)絡(luò)占用帶寬,另外,采用RTSP點(diǎn)播協(xié)議進(jìn)行多媒體數(shù)據(jù)流的傳輸,可實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)傳輸,延時(shí)低。
移動(dòng)終端,可以是智能手機(jī)、平板電腦、PDA、智能手表等具有顯示屏幕的移動(dòng)設(shè)備,用于接收機(jī)頂盒發(fā)送的數(shù)據(jù)并進(jìn)行實(shí)時(shí)播放,大部分常見的播放軟件均可以支持各協(xié)議的多媒體流文件的播放。
在一優(yōu)選的實(shí)施例中,本發(fā)明的實(shí)時(shí)投屏系統(tǒng),所述機(jī)頂盒還用于實(shí)現(xiàn)移動(dòng)終端連接機(jī)頂盒的投屏服務(wù),例如,通過(guò)采用mDNS(mult icast DNS,組播DNS)協(xié)議,實(shí)現(xiàn)在不需要進(jìn)行手動(dòng)網(wǎng)絡(luò)配置的情況下,局域網(wǎng)內(nèi)的移動(dòng)終端發(fā)現(xiàn)所有機(jī)頂盒提供的投屏服務(wù)。
在另一優(yōu)選的實(shí)施例中,本發(fā)明的實(shí)時(shí)投屏系統(tǒng),所述移動(dòng)終端還用于發(fā)送系統(tǒng)控制消息給機(jī)頂盒;所述機(jī)頂盒還用于接收移動(dòng)終端發(fā)送的系統(tǒng)控制消息并進(jìn)行處理,這里的系統(tǒng)控制消息包括下列中的一種或一種以上:觸摸消息、傳感器消息或虛擬按鍵消息。系統(tǒng)控制消息具體處理步驟為:移動(dòng)終端與機(jī)頂盒建立控制消息通信通道,例如可采用WebSocket協(xié)議進(jìn)行通信;移動(dòng)終端采集用戶輸入的系統(tǒng)控制消息;移動(dòng)終端將統(tǒng)控制消息封裝為通信協(xié)議支持的通信消息,所述通信消息含有該移動(dòng)終端的唯一標(biāo)識(shí),用于識(shí)別系統(tǒng)控制消息的來(lái)源;移動(dòng)終端將通信消息發(fā)送給機(jī)頂盒控制消息接收模塊;機(jī)頂盒控制消息接收模塊從各移動(dòng)終端接收所述通信消息;機(jī)頂盒的控制消息接收模塊將通信消息解封裝為系統(tǒng)控制消息,按照時(shí)間順序送入消息緩沖隊(duì)列;機(jī)頂盒的控制消息處理模塊從消息緩沖隊(duì)列中逐條提取系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序。通過(guò)此種方式,可充分利用移動(dòng)終端的觸摸設(shè)備、傳感器或虛擬按鍵設(shè)備,提供給用戶靈活的控制方式,增強(qiáng)用戶體驗(yàn);還可通過(guò)機(jī)頂盒對(duì)多個(gè)移動(dòng)終端發(fā)送的系統(tǒng)控制消息進(jìn)行響應(yīng),可達(dá)到多個(gè)移動(dòng)終端同時(shí)對(duì)機(jī)頂盒播放內(nèi)容進(jìn)行操控的目的,實(shí)現(xiàn)多用戶之間互動(dòng)。
上述具體實(shí)施方式只是對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)解釋,本發(fā)明并不只僅僅局限于上述實(shí)施例,凡是依據(jù)本發(fā)明原理的任何改進(jìn)或替換,均應(yīng)在本發(fā)明的保護(hù)范圍之內(nèi)。