本發(fā)明涉及計(jì)算機(jī)處理領(lǐng)域,更具體地,涉及一種ios設(shè)備的屏幕鏡像投射方法、系統(tǒng)、裝置及屏幕錄像方法。
背景技術(shù):
由于ios的封閉性,ios設(shè)備并不提供公開的api獲取其屏幕圖像,用戶無法實(shí)現(xiàn)對當(dāng)前的ios設(shè)備的屏幕圖像錄制。
同時(shí),隨著用戶直播錄像的興起,占有廣大市場的ios設(shè)備進(jìn)行用戶進(jìn)行直播錄像的需求旺盛。
技術(shù)實(shí)現(xiàn)要素:
為解決上述至少一個(gè)方面的問題,本發(fā)明提出了一種有效地將ios設(shè)備的屏幕鏡像投射到pc設(shè)備上,以最終能對所述屏幕鏡像的數(shù)據(jù)進(jìn)行有效的加工的ios設(shè)備的屏幕鏡像投射方法。
同時(shí),本發(fā)明還提供了一種ios設(shè)備的屏幕鏡像投射系統(tǒng)及裝置。
此外,本發(fā)明還提供了一種基于所述ios設(shè)備的屏幕鏡像投射方法的屏幕錄像方法。
為了實(shí)現(xiàn)本發(fā)明的目的,采取如下技術(shù)方案:
一種ios設(shè)備的屏幕鏡像投射方法,包括:
基于airplay協(xié)議在預(yù)先設(shè)置好的pc設(shè)備上模擬airplayserver端;
接收與所述airplayserver端建立會(huì)話的ios設(shè)備傳輸過來的屏幕鏡像數(shù)據(jù);
對所述屏幕鏡像數(shù)據(jù)進(jìn)行實(shí)時(shí)解析,以使得解析后的屏幕鏡像數(shù)據(jù)能將其對應(yīng)的屏幕鏡像顯示到所述pc設(shè)備上的顯示屏。
具體地,所述基于airplay協(xié)議在預(yù)先設(shè)置好的pc設(shè)備上模擬airplayserver端的步驟,具體包括:
獲取所述airplay協(xié)議的關(guān)鍵參數(shù);
根據(jù)所述關(guān)鍵參數(shù)在pc設(shè)備上模擬airplayserver端。
具體地,在獲取所述airplay協(xié)議的關(guān)鍵參數(shù)的步驟之前,還包括:
對基于airpaly協(xié)議的數(shù)據(jù)傳輸?shù)男畔⑦M(jìn)行抓包;
分析并確定所述airpaly協(xié)議的關(guān)鍵參數(shù)。
具體地,在接收與所述airplayserver端建立會(huì)話的ios設(shè)備傳輸過來的屏幕鏡像數(shù)據(jù)或音視頻數(shù)據(jù)的步驟之前,還包括:
利用bonjour服務(wù)將所述airplayserver在其對應(yīng)的pc設(shè)備所在的局域網(wǎng)進(jìn)行廣播。
具體地,所述接收與所述airplayserver端建立會(huì)話的ios設(shè)備傳輸過來的屏幕鏡像數(shù)據(jù)的步驟,具體包括:
響應(yīng)于所述局域網(wǎng)中的ios設(shè)備的連接請求;
根據(jù)所述連接請求與所述ios設(shè)備建立會(huì)話;
接收所述ios設(shè)備傳輸過來的屏幕鏡像數(shù)據(jù)。
具體地,所述對所述屏幕鏡像數(shù)據(jù)進(jìn)行實(shí)時(shí)解析的步驟,具體包括:
利用已獲取到的aes加密其對應(yīng)的解密數(shù)據(jù),對所述屏幕鏡像數(shù)據(jù)進(jìn)行解密;
對解密后的屏幕鏡像數(shù)據(jù)進(jìn)行解碼。
具體地,所述aes加密其對應(yīng)的解密數(shù)據(jù)的獲取方式包括:
獲取經(jīng)過aes加密的音視頻數(shù)據(jù)流;
通過反復(fù)逆向appletv固件,獲取aes加密其所對應(yīng)的解密數(shù)據(jù)。
同時(shí),本發(fā)明還提供了一種屏幕錄像方法,其包括:
獲取ios設(shè)備利用上述任一技術(shù)方案所述的ios設(shè)備的屏幕鏡像投射方法投射于pc設(shè)備上的屏幕鏡像數(shù)據(jù);
將所述屏幕鏡像數(shù)據(jù)所對應(yīng)的屏幕鏡像呈現(xiàn)于所述pc設(shè)備的顯示器上;
利用所述pc設(shè)備的錄屏功能對所述屏幕鏡像進(jìn)行錄像。
此外,本發(fā)明還提供了一種ios設(shè)備的屏幕鏡像投射系統(tǒng),包括:
模擬模塊,用于基于airplay協(xié)議在預(yù)先設(shè)置好的pc設(shè)備上模擬airplayserver端;
接收模塊,用于接收與所述airplayserver端建立會(huì)話的ios設(shè)備傳輸過來的屏幕鏡像數(shù)據(jù);
解析模塊,用于對所述屏幕鏡像數(shù)據(jù)進(jìn)行實(shí)時(shí)解析,以使得解析后的屏幕鏡像數(shù)據(jù)能將其對應(yīng)的屏幕鏡像顯示到所述pc設(shè)備上的顯示屏。
具體地,所述模擬模塊中,具體包括:
獲取單元,用于獲取所述airplay協(xié)議的關(guān)鍵參數(shù);
模擬單元,用于根據(jù)所述關(guān)鍵參數(shù)在pc設(shè)備上模擬airplayserver端。
具體地,所述模擬模塊中,還包括:
抓包單元,用于對基于airpaly協(xié)議的數(shù)據(jù)傳輸?shù)男畔⑦M(jìn)行抓包;
確定單元,用于分析并確定所述airpaly協(xié)議的關(guān)鍵參數(shù)。
所述接收模塊中,還包括:
廣播單元,用于利用bonjour服務(wù)將所述airplayserver在其對應(yīng)的pc設(shè)備所在的局域網(wǎng)進(jìn)行廣播。
具體地,所述接收模塊中,具體包括:
響應(yīng)單元,用于響應(yīng)于所述局域網(wǎng)中的ios設(shè)備的連接請求;
建立單元,用于根據(jù)所述連接請求與所述ios設(shè)備建立會(huì)話;
接收單元,用于接收所述ios設(shè)備傳輸過來的屏幕鏡像數(shù)據(jù)。
具體地,所述解析模塊中,具體包括:
解密單元,用于利用已獲取到的aes加密其對應(yīng)的解密數(shù)據(jù),對所述屏幕鏡像數(shù)據(jù)進(jìn)行解密;
解碼單元,用于對解密后的屏幕鏡像數(shù)據(jù)進(jìn)行解碼。
具體地,所述aes加密其對應(yīng)的解密數(shù)據(jù)的獲取方式包括:
獲取經(jīng)過aes加密的音視頻數(shù)據(jù)流;
通過反復(fù)逆向appletv固件,獲取aes加密其所對應(yīng)的解密數(shù)據(jù)。
最后,本發(fā)明還提供了一種裝置,其包括:
顯示器,用于顯示信息編輯界面,實(shí)現(xiàn)人機(jī)交互;
一個(gè)或多個(gè)處理器;
存儲(chǔ)器;
一個(gè)或多個(gè)應(yīng)用程序,其中所述一個(gè)或多個(gè)應(yīng)用程序被存儲(chǔ)在所述存儲(chǔ)器中并被配置為由所述一個(gè)或多個(gè)處理器執(zhí)行;
所述一個(gè)或多個(gè)應(yīng)用程序被配置為用于執(zhí)行上述任一技術(shù)方案所述的ios設(shè)備的屏幕鏡像投射方法的步驟。
相比現(xiàn)有技術(shù),本發(fā)明的方案具有以下優(yōu)點(diǎn):
1.本發(fā)明的技術(shù)方案中,利用airplay協(xié)議模擬了airplayserver端,利用ios設(shè)備與airplayserver端的通信會(huì)話,從而獲取了ios設(shè)備上的屏幕鏡像數(shù)據(jù),進(jìn)而對已加密的屏幕鏡像數(shù)據(jù)解析,最終實(shí)現(xiàn)可將所述ios設(shè)備上的屏幕鏡像數(shù)據(jù)投射在pc設(shè)備上,同時(shí),也有利于利用pc設(shè)備上的特有功能對所述屏幕鏡像數(shù)據(jù)進(jìn)行處理。
2.本發(fā)明的技術(shù)方案中,獲取airplay協(xié)議的關(guān)鍵參數(shù),模擬了airplayserver端,有效地建立了ios設(shè)備與pc設(shè)備之間的通信的橋梁,從而實(shí)現(xiàn)將ios設(shè)備上的屏幕鏡像數(shù)據(jù)投射到pc設(shè)備上。
本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示出了本發(fā)明中一種ios設(shè)備的屏幕鏡像投射方法的一種實(shí)施例的流程示意圖;
圖2示出了本發(fā)明中一種ios設(shè)備的屏幕鏡像投射系統(tǒng)的一種實(shí)施例的結(jié)構(gòu)示意圖;
圖3示出了本發(fā)明中一種裝置的一種實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1,示出了本發(fā)明中一種ios設(shè)備的屏幕鏡像投射方法。
所述ios設(shè)備的屏幕鏡像投射方法包括步驟s101、步驟s102、步驟s103。其中,
步驟s101.基于airplay協(xié)議在預(yù)先設(shè)置好的pc設(shè)備上模擬airplayserver端。
步驟s102.接收與所述airplayserver端建立會(huì)話的ios設(shè)備傳輸過來的屏幕鏡像數(shù)據(jù)。
步驟s103.對所述屏幕鏡像數(shù)據(jù)進(jìn)行實(shí)時(shí)解析,以使得解析后的屏幕鏡像數(shù)據(jù)能將其對應(yīng)的屏幕鏡像顯示到所述pc設(shè)備上的顯示屏。
所述ios設(shè)備的屏幕鏡像投射方法能夠有效地將ios設(shè)備上的屏幕鏡像投射pc設(shè)備上,將所述屏幕鏡像數(shù)據(jù)加以利用,執(zhí)行各種各樣的圖片、音視頻加工操作。
airplay協(xié)議是apple公司提出的一種基于無線技術(shù)的通訊協(xié)議。airplay協(xié)議并非獨(dú)立的通訊協(xié)議,它是基于一些標(biāo)準(zhǔn)化的網(wǎng)絡(luò)協(xié)議組成,例如multicastdns、http、rtsp和rtp。利用airplay協(xié)議,用戶可以通過數(shù)據(jù)連接(如wifi)的方式,將ios設(shè)備上的包括:圖片、音頻、視頻以及鏡像等數(shù)據(jù)通過數(shù)據(jù)連接傳輸?shù)街С謅irplay協(xié)議的設(shè)備上。同時(shí),所述airplay協(xié)議還具有鏡像功能,可以將iphone、ipad等ios設(shè)備上的畫面無線傳輸?shù)狡涮卦O(shè)備上。當(dāng)前除了apple公司的pc產(chǎn)品及tv產(chǎn)品外,市場上的其它的pc設(shè)備大都不支持airplay協(xié)議。
為了能夠?qū)崿F(xiàn)將所述ios設(shè)備上的屏幕鏡像數(shù)據(jù)投射到其它的pc設(shè)備上,以方便利用所述屏幕鏡像數(shù)據(jù)實(shí)現(xiàn)各種圖片音視頻操作,需要搭建ios設(shè)備與pc設(shè)備之間會(huì)話通信的橋梁。
在本實(shí)施例中,所述ios設(shè)備與pc設(shè)備之間屏幕鏡像投射的通訊是基于airplay協(xié)議的基礎(chǔ)實(shí)現(xiàn)的。在pc設(shè)備上根據(jù)airplay協(xié)議模擬airplayserver端,而ios設(shè)備則作為airplayclient端與所述pc設(shè)備會(huì)話連接并進(jìn)行通信。
具體地,所述步驟s101包括:
獲取所述airplay協(xié)議的關(guān)鍵參數(shù);
根據(jù)所述關(guān)鍵參數(shù)在pc設(shè)備上模擬airplayserver端。
可以理解的是,airplay協(xié)議是apple公司的私有協(xié)議,沒有開源的數(shù)據(jù),因此無法直接根據(jù)airplay協(xié)議模擬airplayserver端以建立與所述ios設(shè)備的通信。但,可間接對基于airplay協(xié)議通信過程中的具體內(nèi)容進(jìn)行分析,從而獲取airplay協(xié)議的關(guān)鍵參數(shù),并最終根據(jù)所述關(guān)鍵參數(shù)在pc設(shè)備上模擬airplayserver端。
為了能夠有效的獲取所述airplay協(xié)議的關(guān)鍵參數(shù),本實(shí)施例的一種具體的方案中,在步驟s101之前,還包括:
對基于airpaly協(xié)議的數(shù)據(jù)傳輸?shù)男畔⑦M(jìn)行抓包;
分析并確定所述airpaly協(xié)議的關(guān)鍵參數(shù)。
例如,ios手機(jī)接入wifi后,會(huì)從發(fā)送端發(fā)送廣播到接收端。在這個(gè)過程中,用抓包工具wireshark設(shè)置好端口的相關(guān)數(shù)據(jù),抓包ios手機(jī)發(fā)送廣播時(shí)的數(shù)據(jù)。wireshark可跟蹤設(shè)置的端口,所述端口發(fā)出去或者接受到的數(shù)據(jù)包都會(huì)在wireshark上面顯示出來的。只要是有數(shù)據(jù)流經(jīng)過所述端口,wireshark都能收到監(jiān)控的信息,包括:具體的數(shù)據(jù)傳輸過程和使用的協(xié)議之類的信息。因此可以分析并確定所述airpaly協(xié)議的關(guān)鍵參數(shù)。
具體地,步驟s102包括:
響應(yīng)于所述局域網(wǎng)中的ios設(shè)備的連接請求;
根據(jù)所述連接請求與所述ios設(shè)備建立會(huì)話;
接收所述ios設(shè)備傳輸過來的屏幕鏡像數(shù)據(jù)。
在pc設(shè)備上根據(jù)airplay協(xié)議的關(guān)鍵參數(shù)模擬好了airplayserver端,在需要將所述ios設(shè)備與pc設(shè)備建立通話時(shí),ios設(shè)備會(huì)在當(dāng)前的局域網(wǎng)中自動(dòng)搜索并連接上所述pc設(shè)備。更準(zhǔn)確的說,基于airplay協(xié)議,所述ios設(shè)備此時(shí)作為airplayclient端與模擬的airplayserver端建立會(huì)話。在建立會(huì)話后,所述ios設(shè)備可向airplayserver端傳輸數(shù)據(jù)信息,在本實(shí)施例中,所述ios設(shè)備會(huì)向所述airplayserver端傳輸屏幕鏡像數(shù)據(jù)。
為了能準(zhǔn)確、及時(shí)地在ios設(shè)備和pc設(shè)備之間建立會(huì)話。在本實(shí)施例的一種具體的方案中,在步驟s102之前,還包括:
利用bonjour服務(wù)將所述airplayserver在其對應(yīng)的pc設(shè)備所在的局域網(wǎng)進(jìn)行廣播。
bonjour,也稱為零配置聯(lián)網(wǎng),能自動(dòng)發(fā)現(xiàn)ip網(wǎng)絡(luò)上的電腦、設(shè)備和服務(wù)。bonjour使用工業(yè)標(biāo)準(zhǔn)的ip協(xié)議來允許設(shè)備自動(dòng)發(fā)現(xiàn)彼此,而不需輸入ip地址或配置dns服務(wù)器。
例如,當(dāng)前的局域網(wǎng)中,存在ios設(shè)備a、ios設(shè)備b以及pc設(shè)備。當(dāng)所述局域網(wǎng)處于聯(lián)網(wǎng)狀態(tài)時(shí),利用bonjour服務(wù)將所述pc設(shè)備廣播,所述ios設(shè)備a、所述ios設(shè)備b可以自動(dòng)發(fā)現(xiàn)并連接所述pc設(shè)備。在設(shè)置好一定的參數(shù)時(shí),若所述局域網(wǎng)加入了ios設(shè)備c,ios設(shè)備c在加入所述局域網(wǎng)后,便會(huì)與所述pc設(shè)備建立會(huì)話,方便,快捷。
值得注意的是,在建立ios設(shè)備與模擬的airplayserver端的會(huì)話后,雖然所述ios設(shè)備能夠?qū)⑵淦聊荤R像數(shù)據(jù)傳輸?shù)剿鯽irplayserver端。但由于所述協(xié)議的視頻音頻流逝經(jīng)過加密傳輸?shù)?,因此需要獲取解密的key,才能有效地將本來只能顯示在apple公司的pc設(shè)備或appletv的屏幕鏡像,也能顯示于其他pc設(shè)備上。
因此,需要執(zhí)行所述步驟s103:對所述屏幕鏡像數(shù)據(jù)進(jìn)行實(shí)時(shí)解析,以使得解析后的屏幕鏡像數(shù)據(jù)能將其對應(yīng)的屏幕鏡像顯示到所述pc設(shè)備上的顯示屏。
在本發(fā)明的步驟s103的更具體的實(shí)現(xiàn)過程中,其包括:
利用已獲取到的aes加密其對應(yīng)的解密數(shù)據(jù),對所述屏幕鏡像數(shù)據(jù)進(jìn)行解密;
對解密后的屏幕鏡像數(shù)據(jù)進(jìn)行解碼。
在airplay協(xié)議中,所述音視頻流的加密方式為aes加密。因此,需要aes加密的解密數(shù)據(jù)才能有效地解析所述屏幕鏡像數(shù)據(jù),從而能實(shí)現(xiàn)將從ios涉筆獲取的屏幕鏡像進(jìn)行投射pc設(shè)備的屏幕上。建立會(huì)話后,ios設(shè)備上的加密的音視頻流、屏幕鏡像數(shù)據(jù)通過rtp協(xié)議傳輸?shù)剿鯽irplayserver端。然后利用已獲取到的所述解密數(shù)據(jù),解密處理輸出音頻、視頻流、屏幕鏡像數(shù)據(jù)等,再將所述解密后的音頻、視頻流、屏幕鏡像數(shù)據(jù)解碼,并可獲得原始音視頻數(shù)據(jù)、屏幕鏡像數(shù)據(jù),最終并對所述原始音視頻數(shù)據(jù)、屏幕鏡像數(shù)據(jù)進(jìn)行任意處理。
aes加密其對應(yīng)的解密數(shù)據(jù)的獲取方式包括:
獲取經(jīng)過aes加密的音視頻數(shù)據(jù)流;
通過反復(fù)逆向appletv固件,獲取aes加密其所對應(yīng)的解密數(shù)據(jù)。
在本實(shí)施例中,通過獲取所述airplay的關(guān)鍵參數(shù),同時(shí)模擬server端和client端,并讓server端與client端之間進(jìn)行通訊,獲取了經(jīng)過aes加密的音視頻數(shù)據(jù)或屏幕鏡像數(shù)據(jù)等,通過反復(fù)逆向appletv固件,從而有效地推算出解密數(shù)據(jù)。利用所述解密數(shù)據(jù)能有效地將所獲取的屏幕鏡像數(shù)據(jù)解密,從而得到未加密的編碼后的屏幕鏡像數(shù)據(jù)。
綜上,本發(fā)明的ios設(shè)備的屏幕鏡像投射方法,利用airplay協(xié)議模擬了airplayserver端,利用ios設(shè)備與airplayserver端的通信會(huì)話,從而獲取了ios設(shè)備上的屏幕鏡像數(shù)據(jù),進(jìn)而對已加密的屏幕鏡像數(shù)據(jù)解析,最終實(shí)現(xiàn)可將所述ios設(shè)備上的屏幕鏡像數(shù)據(jù)投射在pc設(shè)備上,同時(shí),也有利于利用pc設(shè)備上的特有功能對所述屏幕鏡像數(shù)據(jù)進(jìn)行處理。
同時(shí),本發(fā)明還提供了一種屏幕錄像方法,其包括步驟s104-s106。其中,
步驟s104.獲取ios設(shè)備利用上述任一技術(shù)方案所述的ios設(shè)備的屏幕鏡像投射方法投射于pc設(shè)備上的屏幕鏡像數(shù)據(jù)。
步驟s105.將所述屏幕鏡像數(shù)據(jù)所對應(yīng)的屏幕鏡像呈現(xiàn)于所述pc設(shè)備的顯示器上;
步驟s106.利用所述pc設(shè)備的錄屏功能對所述屏幕鏡像進(jìn)行錄像。
可以理解的是,利用所述ios設(shè)備的屏幕鏡像投射方法,可將同一局域網(wǎng)下的ios設(shè)備與pc設(shè)備建立會(huì)話,從而將ios設(shè)備的屏幕鏡像數(shù)據(jù)投射到pc設(shè)備上,從而利用pc設(shè)備的錄屏功能對所述屏幕鏡像數(shù)據(jù)所對應(yīng)的屏幕畫面進(jìn)行錄制,或者將其推流直播,有效ios設(shè)備不能進(jìn)行屏幕錄像的問題.
例如,當(dāng)ios設(shè)備上的玩家正在玩游戲,該玩家可將其ios設(shè)備的屏幕鏡像投射其他的pc設(shè)備上,在所述pc設(shè)備上對正在進(jìn)行的游戲畫面進(jìn)行錄像,有效地解決了ios設(shè)備不能進(jìn)行屏幕錄像的問題。
此外,如圖2所示,本發(fā)明還提供了一種基于ios設(shè)備的屏幕投射系統(tǒng)。
所述ios設(shè)備的屏幕鏡像投射系統(tǒng)包括模擬模塊101、接收模塊102、解析模塊103。其中,
模擬模塊101,用于基于airplay協(xié)議在預(yù)先設(shè)置好的pc設(shè)備上模擬airplayserver端。
接收模塊102,用于接收與所述airplayserver端建立會(huì)話的ios設(shè)備傳輸過來的屏幕鏡像數(shù)據(jù)。
解析模塊103,用于對所述屏幕鏡像數(shù)據(jù)進(jìn)行實(shí)時(shí)解析,以使得解析后的屏幕鏡像數(shù)據(jù)能將其對應(yīng)的屏幕鏡像顯示到所述pc設(shè)備上的顯示屏。
所述ios設(shè)備的屏幕鏡像投射系統(tǒng)能夠有效地將ios設(shè)備上的屏幕鏡像投射pc設(shè)備上,將所述屏幕鏡像數(shù)據(jù)加以利用,執(zhí)行各種各樣的圖片、音視頻加工操作。
airplay協(xié)議是apple公司提出的一種基于無線技術(shù)的通訊協(xié)議。airplay協(xié)議并非獨(dú)立的通訊協(xié)議,它是基于一些標(biāo)準(zhǔn)化的網(wǎng)絡(luò)協(xié)議組成,例如multicastdns、http、rtsp和rtp。利用airplay協(xié)議,用戶可以通過數(shù)據(jù)連接(如wifi)的方式,將ios設(shè)備上的包括:圖片、音頻、視頻以及鏡像等數(shù)據(jù)通過數(shù)據(jù)連接傳輸?shù)街С謅irplay協(xié)議的設(shè)備上。同時(shí),所述airplay協(xié)議還具有鏡像功能,可以將iphone、ipad等ios設(shè)備上的畫面無線傳輸?shù)狡涮卦O(shè)備上。當(dāng)前除了apple公司的pc產(chǎn)品及tv產(chǎn)品外,市場上的其它的pc設(shè)備大都不支持airplay協(xié)議。
為了能夠?qū)崿F(xiàn)將所述ios設(shè)備上的屏幕鏡像數(shù)據(jù)投射到其它的pc設(shè)備上,以方便利用所述屏幕鏡像數(shù)據(jù)實(shí)現(xiàn)各種圖片音視頻操作,需要搭建ios設(shè)備與pc設(shè)備之間會(huì)話通信的橋梁。
在本實(shí)施例中,所述ios設(shè)備與pc設(shè)備之間屏幕鏡像投射的通訊是基于airplay協(xié)議的基礎(chǔ)實(shí)現(xiàn)的。在pc設(shè)備上利用模擬模塊101根據(jù)airplay協(xié)議模擬airplayserver端,而ios設(shè)備則作為airplayclient端與所述pc設(shè)備會(huì)話連接并進(jìn)行通信。
具體地,所述模擬模塊101包括:
獲取單元,用于獲取所述airplay協(xié)議的關(guān)鍵參數(shù);
模擬單元,用于根據(jù)所述關(guān)鍵參數(shù)在pc設(shè)備上模擬airplayserver端。
可以理解的是,airplay協(xié)議是apple公司的私有協(xié)議,沒有開源的數(shù)據(jù),因此模擬模塊101無法直接根據(jù)airplay協(xié)議模擬airplayserver端以建立與所述ios設(shè)備的通信。但,可間接對基于airplay協(xié)議通信過程中的具體內(nèi)容進(jìn)行分析,從而利用獲取單元獲取airplay協(xié)議的關(guān)鍵參數(shù),并最終利用模擬單元根據(jù)所述關(guān)鍵參數(shù)在pc設(shè)備上模擬airplayserver端。
為了能夠有效的獲取所述airplay協(xié)議的關(guān)鍵參數(shù),本實(shí)施例的一種具體的方案中,模擬模塊101中,還包括:
抓包單元,用于對基于airpaly協(xié)議的數(shù)據(jù)傳輸?shù)男畔⑦M(jìn)行抓包;
確定單元,用于分析并確定所述airpaly協(xié)議的關(guān)鍵參數(shù)。
例如,ios手機(jī)接入wifi后,會(huì)從發(fā)送端發(fā)送廣播到接收端。在這個(gè)過程中,抓包單元用抓包工具wireshark設(shè)置好端口的相關(guān)數(shù)據(jù),抓包ios手機(jī)發(fā)送廣播時(shí)的數(shù)據(jù)。wireshark可跟蹤設(shè)置的端口,所述端口發(fā)出去或者接受到的數(shù)據(jù)包都會(huì)在wireshark上面顯示出來的。只要是有數(shù)據(jù)流經(jīng)過所述端口,wireshark都能收到監(jiān)控的信息,包括:具體的數(shù)據(jù)傳輸過程和使用的協(xié)議之類的信息。因此確定單元可以分析并確定所述airpaly協(xié)議的關(guān)鍵參數(shù)。
具體地,接受模塊102包括:
響應(yīng)單元,用于響應(yīng)于所述局域網(wǎng)中的ios設(shè)備的連接請求;
建立單元,用于根據(jù)所述連接請求與所述ios設(shè)備建立會(huì)話;
接收單元,用于接收所述ios設(shè)備傳輸過來的屏幕鏡像數(shù)據(jù)。
在pc設(shè)備上模擬模塊101根據(jù)airplay協(xié)議的關(guān)鍵參數(shù)模擬好了airplayserver端,在需要將所述ios設(shè)備與pc設(shè)備建立通話時(shí),ios設(shè)備會(huì)在當(dāng)前的局域網(wǎng)中自動(dòng)搜索并連接上所述pc設(shè)備。更準(zhǔn)確的說,基于airplay協(xié)議,所述ios設(shè)備此時(shí)作為airplayclient端與模擬的airplayserver端建立會(huì)話。在建立會(huì)話后,所述ios設(shè)備可向airplayserver端傳輸數(shù)據(jù)信息,在本實(shí)施例中,所述ios設(shè)備會(huì)向所述airplayserver端傳輸屏幕鏡像數(shù)據(jù)。
為了能準(zhǔn)確、及時(shí)地在ios設(shè)備和pc設(shè)備之間建立會(huì)話。在本實(shí)施例的一種具體的方案中,在接收模塊中,還包括:
廣播單元,用于利用bonjour服務(wù)將所述airplayserver在其對應(yīng)的pc設(shè)備所在的局域網(wǎng)進(jìn)行廣播。
bonjour,也稱為零配置聯(lián)網(wǎng),能自動(dòng)發(fā)現(xiàn)ip網(wǎng)絡(luò)上的電腦、設(shè)備和服務(wù)。bonjour使用工業(yè)標(biāo)準(zhǔn)的ip協(xié)議來允許設(shè)備自動(dòng)發(fā)現(xiàn)彼此,而不需輸入ip地址或配置dns服務(wù)器。
例如,當(dāng)前的局域網(wǎng)中,存在ios設(shè)備a、ios設(shè)備b以及pc設(shè)備。當(dāng)所述局域網(wǎng)處于聯(lián)網(wǎng)狀態(tài)時(shí),利用bonjour服務(wù)將所述pc設(shè)備廣播,所述ios設(shè)備a、所述ios設(shè)備b可以自動(dòng)發(fā)現(xiàn)并連接所述pc設(shè)備。在設(shè)置好一定的參數(shù)時(shí),若所述局域網(wǎng)加入了ios設(shè)備c,ios設(shè)備c在加入所述局域網(wǎng)后,便會(huì)與所述pc設(shè)備建立會(huì)話,方便,快捷。
值得注意的是,在建立ios設(shè)備與模擬的airplayserver端的會(huì)話后,雖然所述ios設(shè)備能夠?qū)⑵淦聊荤R像數(shù)據(jù)傳輸?shù)剿鯽irplayserver端。但由于所述協(xié)議的視頻音頻流逝經(jīng)過加密傳輸?shù)模虼诵枰@取解密的key,才能有效地將本來只能顯示在apple公司的pc設(shè)備或appletv的屏幕鏡像,也能顯示于其他pc設(shè)備上。
因此,需要執(zhí)行所述解析模塊103:對所述屏幕鏡像數(shù)據(jù)進(jìn)行實(shí)時(shí)解析,以使得解析后的屏幕鏡像數(shù)據(jù)能將其對應(yīng)的屏幕鏡像顯示到所述pc設(shè)備上的顯示屏。
在本發(fā)明的模塊103的更具體的實(shí)現(xiàn)過程中,其包括:
解密單元,用于利用已獲取到的aes加密其對應(yīng)的解密數(shù)據(jù),對所述屏幕鏡像數(shù)據(jù)進(jìn)行解密;
解碼單元,用于對解密后的屏幕鏡像數(shù)據(jù)進(jìn)行解碼。
在airplay協(xié)議中,所述音視頻流的加密方式為aes加密。因此,需要aes加密的解密數(shù)據(jù)才能有效地解析所述屏幕鏡像數(shù)據(jù),從而能實(shí)現(xiàn)將從ios涉筆獲取的屏幕鏡像進(jìn)行投射pc設(shè)備的屏幕上。建立會(huì)話后,ios設(shè)備上的加密的音視頻流、屏幕鏡像數(shù)據(jù)通過rtp協(xié)議傳輸?shù)剿鯽irplayserver端。然后利用解密單元解密處理輸出音頻、視頻流、屏幕鏡像數(shù)據(jù)等,再利用所述解碼單元將所述解密后的音頻、視頻流、屏幕鏡像數(shù)據(jù)解碼,并可獲得原始音視頻數(shù)據(jù)、屏幕鏡像數(shù)據(jù),最終并對所述原始音視頻數(shù)據(jù)、屏幕鏡像數(shù)據(jù)進(jìn)行任意處理。
aes加密其對應(yīng)的解密數(shù)據(jù)的獲取方式包括:
獲取經(jīng)過aes加密的音視頻數(shù)據(jù)流;
通過反復(fù)逆向appletv固件,獲取aes加密其所對應(yīng)的解密數(shù)據(jù)。
在本實(shí)施例中,通過獲取所述airplay的關(guān)鍵參數(shù),同時(shí)模擬server端和client端,并讓server端與client端之間進(jìn)行通訊,獲取了經(jīng)過aes加密的音視頻數(shù)據(jù)或屏幕鏡像數(shù)據(jù)等,通過反復(fù)逆向appletv固件,從而有效地推算出解密數(shù)據(jù)。利用所述解密數(shù)據(jù)能有效地將所獲取的屏幕鏡像數(shù)據(jù)解密,從而得到未加密的編碼后的屏幕鏡像數(shù)據(jù)。
綜上,本發(fā)明的ios設(shè)備的屏幕鏡像投射系統(tǒng),利用airplay協(xié)議模擬了airplayserver端,利用ios設(shè)備與airplayserver端的通信會(huì)話,從而獲取了ios設(shè)備上的屏幕鏡像數(shù)據(jù),進(jìn)而對已加密的屏幕鏡像數(shù)據(jù)解析,最終實(shí)現(xiàn)可將所述ios設(shè)備上的屏幕鏡像數(shù)據(jù)投射在pc設(shè)備上,同時(shí),也有利于利用pc設(shè)備上的特有功能對所述屏幕鏡像數(shù)據(jù)進(jìn)行處理。
最后,如圖3所示,本發(fā)明還提供了一種裝置,其包括:
顯示器,用于顯示信息編輯界面,實(shí)現(xiàn)人機(jī)交互;
一個(gè)或多個(gè)處理器;
存儲(chǔ)器;
一個(gè)或多個(gè)應(yīng)用程序,其中所述一個(gè)或多個(gè)應(yīng)用程序被存儲(chǔ)在所述存儲(chǔ)器中并被配置為由所述一個(gè)或多個(gè)處理器執(zhí)行;
所述一個(gè)或多個(gè)應(yīng)用程序被配置為用于執(zhí)行上述任一技術(shù)方案所述的ios設(shè)備的屏幕鏡像投射方法的步驟。
其中,存儲(chǔ)器10可用于存儲(chǔ)軟件程序以及模塊,處理器20通過運(yùn)行存儲(chǔ)在存儲(chǔ)器10的軟件程序以及模塊,從而執(zhí)行所述識(shí)別系統(tǒng)的各種功能應(yīng)用以及數(shù)據(jù)處理。存儲(chǔ)器10可主要包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需的應(yīng)用程序等;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)所述識(shí)別系統(tǒng)的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲(chǔ)器10可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他易失性固態(tài)存儲(chǔ)器件。
所述處理器20是服務(wù)器的控制中心,利用各種接口和線路連接整個(gè)所述服務(wù)器的各個(gè)部分,通過運(yùn)行或執(zhí)行存儲(chǔ)在存儲(chǔ)器10內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲(chǔ)在存儲(chǔ)器10內(nèi)的數(shù)據(jù),執(zhí)行所述服務(wù)器的各種功能和處理數(shù)據(jù),從而對所述服務(wù)器進(jìn)行整體監(jiān)控??蛇x的,處理器20可包括一個(gè)或多個(gè)處理單元;優(yōu)選的,處理器20可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖牵鲜稣{(diào)制解調(diào)處理器也可以不集成到處理器20中。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
以上對本發(fā)明所提供的一種ios設(shè)備的屏幕鏡像投射方法、系統(tǒng)、裝置及屏幕錄像方法進(jìn)行了詳細(xì)介紹,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明實(shí)施例的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。