本技術(shù)實(shí)施例涉及計(jì)算機(jī),尤其涉及一種投屏鏈路建立方法、系統(tǒng)、計(jì)算機(jī)設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)、計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù):
1、使用移動(dòng)設(shè)備進(jìn)行投屏直播時(shí),移動(dòng)設(shè)備先將媒體流推至本地的性能更為強(qiáng)大的計(jì)算機(jī)(如windows計(jì)算機(jī)),在計(jì)算機(jī)上使用專用的直播軟件接收移動(dòng)設(shè)備的推流數(shù)據(jù),通過計(jì)算機(jī)上的直播軟件將推流數(shù)據(jù)中的畫面和聲音整合進(jìn)配置更靈活、素材更豐富的直播場(chǎng)景中,再推流到直播間。
2、在移動(dòng)端推流至計(jì)算機(jī)之前,需要先搭建兩者間的數(shù)據(jù)鏈路,傳統(tǒng)方法是使用無(wú)線投屏:使計(jì)算機(jī)和移動(dòng)設(shè)備(通過wifi)連接到同一局域網(wǎng)的同一網(wǎng)段,然后計(jì)算機(jī)上的應(yīng)用程序創(chuàng)建網(wǎng)絡(luò)套接字,移動(dòng)設(shè)備通過掃描二維碼的方式獲得連接套接字所需的地址和端口號(hào),并以此建立兩者間的數(shù)據(jù)鏈路。在建立數(shù)據(jù)鏈路之后,移動(dòng)設(shè)備使用該鏈路發(fā)送編碼、封裝后的音視頻數(shù)據(jù)。
3、然而,無(wú)線投屏雖然方便,但鏈路質(zhì)量與局域網(wǎng)網(wǎng)絡(luò)設(shè)備以及wifi信號(hào)質(zhì)量直接相關(guān),并且局域網(wǎng)網(wǎng)絡(luò)設(shè)備的配置也會(huì)影響設(shè)備連接。例如,若計(jì)算機(jī)和移動(dòng)設(shè)備不在同一網(wǎng)段,或者路由器配置了設(shè)備隔離,則計(jì)算機(jī)和移動(dòng)設(shè)備之間將無(wú)法通信;又例如,若鏈路使用的wifi信號(hào)質(zhì)量較低,比如有穿墻的情況,則可能導(dǎo)致投屏中斷或者卡頓、延遲。
4、需要說明的是,上述內(nèi)容并不必然是現(xiàn)有技術(shù),也不用于限制本技術(shù)的專利保護(hù)范圍。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)實(shí)施例提供一種投屏鏈路方法、系統(tǒng)、計(jì)算機(jī)設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)、計(jì)算機(jī)程序產(chǎn)品,以解決或緩解上面提出的一項(xiàng)或更多項(xiàng)技術(shù)問題。
2、本技術(shù)實(shí)施例的一個(gè)方面提供了一種投屏鏈路建立方法,應(yīng)用于windows計(jì)算機(jī),所述windows計(jì)算機(jī)通過usb線纜連接ios設(shè)備,所述方法包括:
3、在所述windows計(jì)算機(jī)上安裝蘋果服務(wù)程序,通過所述蘋果服務(wù)程序在所述windows計(jì)算機(jī)上創(chuàng)建目標(biāo)服務(wù);
4、在所述windows計(jì)算機(jī)上安裝目標(biāo)軟件庫(kù),其中,所述目標(biāo)軟件庫(kù)用于與所述ios設(shè)備進(jìn)行本地通信和管理;
5、通過所述目標(biāo)服務(wù)接收所述ios設(shè)備經(jīng)所述usb線纜傳輸?shù)耐镀翑?shù)據(jù);
6、將所述投屏數(shù)據(jù)通過所述目標(biāo)軟件庫(kù)傳輸至所述windows計(jì)算機(jī)的第一應(yīng)用程序進(jìn)行投屏播放。
7、可選地,所述方法還包括:
8、在所述ios設(shè)備首次連接到所述windows計(jì)算機(jī)的情況下,在所述windo?ws計(jì)算機(jī)上為所述ios設(shè)備安裝驅(qū)動(dòng);
9、枚舉所述windows計(jì)算機(jī)連接的ios設(shè)備列表,并從所述ios設(shè)備列表中選中所述ios設(shè)備;
10、調(diào)用所述目標(biāo)軟件庫(kù)的連接函數(shù)與所述ios設(shè)備進(jìn)行連接,并指定一個(gè)目標(biāo)端口號(hào),以供所述ios設(shè)備根據(jù)所述目標(biāo)端口號(hào)啟動(dòng)tcp服務(wù)器以中轉(zhuǎn)所述投屏數(shù)據(jù)。
11、本技術(shù)實(shí)施例的另一個(gè)方面提供了一種投屏鏈路建立方法,應(yīng)用于ios設(shè)備,所述ios設(shè)備通過usb線纜連接windows計(jì)算機(jī),所述方法包括:
12、在所述ios設(shè)備的第二應(yīng)用程序啟動(dòng)的情況下,監(jiān)聽所述windows計(jì)算機(jī)與所述ios設(shè)備連接的目標(biāo)端口號(hào),其中,所述第二應(yīng)用程序用于獲取投屏數(shù)據(jù);
13、在監(jiān)聽到所述目標(biāo)端口號(hào)的情況下,根據(jù)所述目標(biāo)端口號(hào)在所述ios設(shè)備中啟動(dòng)tcp服務(wù)器;
14、通過所述第二應(yīng)用程序獲取所述ios設(shè)備的投屏數(shù)據(jù);
15、將所述投屏數(shù)據(jù)通過所述tcp服務(wù)器中轉(zhuǎn),基于usbmux協(xié)議經(jīng)過所述usb線纜發(fā)送至所述windows計(jì)算機(jī)。
16、可選地,所述投屏數(shù)據(jù)包括所述ios設(shè)備采集的視頻幀數(shù)據(jù)、麥克風(fēng)音頻數(shù)據(jù)和播放音頻數(shù)據(jù),所述將所述投屏數(shù)據(jù)通過所述tcp服務(wù)器中轉(zhuǎn),基于usbmux協(xié)議經(jīng)過所述usb線纜發(fā)送至所述windows計(jì)算機(jī),包括:
17、對(duì)所述視頻幀數(shù)據(jù)進(jìn)行渲染,并在渲染過程對(duì)所述視頻幀數(shù)據(jù)進(jìn)行預(yù)定處理;
18、對(duì)處理后的所述視頻幀數(shù)據(jù)進(jìn)行編碼,得到視頻數(shù)據(jù)包;
19、對(duì)所述麥克風(fēng)音頻數(shù)據(jù)和所述播放音頻數(shù)據(jù)進(jìn)行混音,得到混音數(shù)據(jù);
20、對(duì)所述混音數(shù)據(jù)進(jìn)行編碼,得到音頻數(shù)據(jù)包;
21、將所述視頻數(shù)據(jù)包和所述音頻數(shù)據(jù)包進(jìn)行封裝,得到封裝數(shù)據(jù)流;
22、將所述封裝數(shù)據(jù)流通過所述tcp服務(wù)器中轉(zhuǎn),基于usbmux協(xié)議經(jīng)過所述usb線纜發(fā)送至所述windows計(jì)算機(jī)。
23、本技術(shù)實(shí)施例的另一個(gè)方面提供了一種投屏鏈路建立系統(tǒng),所述包括:wi?ndows計(jì)算機(jī)和ios設(shè)備,所述window計(jì)算機(jī)與所述ios設(shè)備通過usb線纜連接;
24、所述windows計(jì)算機(jī)用于通過安裝的蘋果服務(wù)程序創(chuàng)建目標(biāo)服務(wù),通過所述目標(biāo)服務(wù)接收所述ios設(shè)備經(jīng)所述usb線纜傳輸?shù)耐镀翑?shù)據(jù),并將所述投屏數(shù)據(jù)通過安裝的目標(biāo)軟件庫(kù)傳輸至所述windows計(jì)算機(jī)的第一應(yīng)用程序進(jìn)行投屏播放;
25、所述ios設(shè)備用于在所述ios設(shè)備中的第二應(yīng)用程序啟動(dòng)的情況下,監(jiān)聽所述windows計(jì)算機(jī)與所述ios設(shè)備連接的目標(biāo)端口號(hào),在監(jiān)聽到所述目標(biāo)端口號(hào)的情況下,根據(jù)所述目標(biāo)端口號(hào)在所述ios設(shè)備啟動(dòng)tcp服務(wù)器,通過所述第二應(yīng)用程序獲取所述ios設(shè)備的投屏數(shù)據(jù),將所述投屏數(shù)據(jù)通過所述tcp服務(wù)器中轉(zhuǎn),基于usbmux協(xié)議經(jīng)過所述usb線纜發(fā)送至所述windows計(jì)算機(jī)。
26、本技術(shù)實(shí)施例的另一個(gè)方面提供了一種投屏鏈路建立方法,應(yīng)用于windo?ws計(jì)算機(jī),所述window計(jì)算機(jī)通過usb線纜連接安卓設(shè)備,所述方法包括:
27、在所述windows計(jì)算機(jī)上為所述安卓設(shè)備安裝第一usb庫(kù)和第二usb庫(kù);
28、向所述安卓設(shè)備發(fā)送目標(biāo)指令,以使所述安卓設(shè)備切換至配件模式;
29、在所述安卓設(shè)備切換至配件模式的情況下,為所述安卓設(shè)備重新安裝所述第一usb庫(kù);
30、通過所述第一usb庫(kù)接收所述安卓設(shè)備經(jīng)所述usb線纜傳輸?shù)耐镀翑?shù)據(jù);
31、將所述投屏數(shù)據(jù)通過所述第二usb庫(kù)傳輸至所述windows計(jì)算機(jī)的第一應(yīng)用程序進(jìn)行投屏播放。
32、可選地,所述在所述windows計(jì)算機(jī)上為所述安卓設(shè)備安裝第一usb庫(kù)和第二usb庫(kù),包括:
33、通過設(shè)備管理api獲取設(shè)備信息;
34、根據(jù)所述設(shè)備信息枚舉設(shè)備得到所述windows計(jì)算機(jī)連接的便攜設(shè)備列表;
35、根據(jù)所述便攜設(shè)備列表選中所述安卓設(shè)備,為所述安卓設(shè)備安裝第一usb庫(kù)和第二usb庫(kù)。
36、本技術(shù)實(shí)施例的另一個(gè)方面提供了一種投屏鏈路建立方法,應(yīng)用于安卓設(shè)備,所述安卓設(shè)備通過usb線纜連接windows計(jì)算機(jī),所述方法包括:
37、接收所述windows計(jì)算機(jī)發(fā)送的目標(biāo)指令,根據(jù)所述目標(biāo)指令將所述安卓設(shè)備切換至配件模式;
38、枚舉設(shè)備得到所述安卓設(shè)備的配件列表,從所述配件列表中選中所述wind?ows計(jì)算機(jī),并獲取與所述windows計(jì)算機(jī)進(jìn)行通信的文件描述符;
39、利用第二應(yīng)用程序獲取所述安卓設(shè)備的投屏數(shù)據(jù),根據(jù)所述文件描述符將所述投屏數(shù)據(jù)發(fā)送至所述windows計(jì)算機(jī)。
40、可選地,所述利用第二應(yīng)用程序獲取所述安卓設(shè)備的投屏數(shù)據(jù),根據(jù)所述文件描述符將所述投屏數(shù)據(jù)發(fā)送至所述windows計(jì)算機(jī),包括:
41、獲取所述安卓設(shè)備的屏幕采集數(shù)據(jù),并獲取所述安卓設(shè)備的音頻采集數(shù)據(jù);
42、對(duì)所述屏幕采集數(shù)據(jù)進(jìn)行編碼,得到視頻數(shù)據(jù)包;
43、對(duì)所述音頻采集數(shù)據(jù)進(jìn)行編碼,得到音頻數(shù)據(jù)包;
44、將所述視頻數(shù)據(jù)包和所述音頻數(shù)據(jù)包進(jìn)行封裝,得到封裝數(shù)據(jù)流;
45、根據(jù)所述文件描述符將所述封裝數(shù)據(jù)流發(fā)送至所述windows計(jì)算機(jī)。
46、本技術(shù)實(shí)施例的另一個(gè)方面提供了一種投屏鏈路建立系統(tǒng),包括windows計(jì)算機(jī)和安卓設(shè)備,所述windows計(jì)算機(jī)與所述安卓設(shè)備通過usb線纜連接;
47、所述windows計(jì)算機(jī)用于為所述安卓設(shè)備安裝第一usb庫(kù)和第二usb庫(kù),向所述安卓設(shè)備發(fā)送目標(biāo)指令,以使安卓設(shè)備切換至配件模式,在所述安卓設(shè)備切換至配件模式的情況下,為所述安卓設(shè)備重新安裝所述第一usb庫(kù),通過所述第一usb庫(kù)接收所述安卓設(shè)備經(jīng)過所述usb線纜傳輸?shù)耐镀翑?shù)據(jù),并將所述投屏數(shù)據(jù)通過所述第二usb庫(kù)傳輸?shù)剿鰓indows計(jì)算機(jī)的第一應(yīng)用程序進(jìn)行投屏播放;
48、所述安卓設(shè)備用于接收所述目標(biāo)指令,根據(jù)所述目標(biāo)指令切換至配件模式,枚舉出所述安卓設(shè)備的配件列表,從所述配件列表中選中所述window計(jì)算機(jī),并獲取與所述windows計(jì)算機(jī)進(jìn)行通信的文件描述符,利用第二應(yīng)用程序獲取所述安卓設(shè)備的投屏數(shù)據(jù),根據(jù)所述文件描述符將所述投屏數(shù)據(jù)發(fā)送至所述wi?ndows計(jì)算機(jī)。
49、本技術(shù)實(shí)施例的另一個(gè)方面提供了一種計(jì)算機(jī)設(shè)備,包括:至少一個(gè)處理器;及與所述至少一個(gè)處理器通信連接的存儲(chǔ)器;其中:所述存儲(chǔ)器存儲(chǔ)有可被所述至少一個(gè)處理器執(zhí)行的指令,所述指令被所述至少一個(gè)處理器執(zhí)行,以使所述至少一個(gè)處理器能夠執(zhí)行如上所述的方法。
50、本技術(shù)實(shí)施例的另一個(gè)方面提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)內(nèi)存儲(chǔ)有計(jì)算機(jī)指令,所述計(jì)算機(jī)指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上所述的方法。
51、本技術(shù)實(shí)施例的另一個(gè)方面提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上所述的方法。
52、本技術(shù)實(shí)施例采用上述技術(shù)方案可以包括如下優(yōu)勢(shì):
53、通過在windows計(jì)算機(jī)上安裝蘋果服務(wù)程序,通過蘋果服務(wù)程序在windo?ws計(jì)算機(jī)上創(chuàng)建目標(biāo)服務(wù),在windows計(jì)算機(jī)上安裝目標(biāo)軟件庫(kù),通過目標(biāo)服務(wù)接收ios設(shè)備經(jīng)usb線纜傳輸?shù)耐镀翑?shù)據(jù),將投屏數(shù)據(jù)通過目標(biāo)軟件庫(kù)傳輸至windows計(jì)算機(jī)的第一應(yīng)用程序進(jìn)行投屏播放,可以通過有線的方式實(shí)現(xiàn)windows計(jì)算機(jī)與ios設(shè)備的連接和ios設(shè)備投屏數(shù)據(jù)的接收及播放,提高投屏鏈路的質(zhì)量,避免無(wú)線投屏存在的問題。