两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種用于獲取iOS系統(tǒng)智能移動設(shè)備音視頻的方法和系統(tǒng)與流程

文檔序號:11156592閱讀:565來源:國知局
一種用于獲取iOS系統(tǒng)智能移動設(shè)備音視頻的方法和系統(tǒng)與制造工藝

本發(fā)明涉及移動直播領(lǐng)域,具體涉及一種用于獲取iOS系統(tǒng)智能移動設(shè)備音視頻的方法和一種用于獲取iOS系統(tǒng)智能移動設(shè)備音視頻的系統(tǒng)。



背景技術(shù):

隨著直播的興起和流行,同時為了豐富直播內(nèi)容的多樣性,越來越多的直播使用手機等智能移動設(shè)備進行移動或戶外直播,智能移動設(shè)備獲取主播直播時的音視頻內(nèi)容,并上傳至服務(wù)器供用戶觀看,但對于運行iOS系統(tǒng)的智能移動設(shè)備,目前缺乏一種快速高效獲取iOS智能移動設(shè)備上音視頻內(nèi)容的方法,現(xiàn)有的處理方式僅僅是采取截屏的方式獲取iOS系統(tǒng)智能移動設(shè)備上的視頻內(nèi)容,因而導(dǎo)致使用iOS系統(tǒng)智能移動設(shè)備直播的主播經(jīng)常出現(xiàn)直播畫面卡頓的現(xiàn)象,直播穩(wěn)定性較差。



技術(shù)實現(xiàn)要素:

針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種用于獲取iOS系統(tǒng)智能移動設(shè)備音視頻的方法和一種用于獲取iOS系統(tǒng)智能移動設(shè)備音視頻的系統(tǒng),能夠快速而高效的獲取iOS系統(tǒng)智能移動設(shè)備中的音視頻數(shù)據(jù)。

為達到以上目的,本發(fā)明采取的技術(shù)方案是:包括:

步驟S1:在直播應(yīng)用程序中注冊用于與iOS系統(tǒng)智能移動設(shè)備間進行協(xié)議交換的Raop和Airplay服務(wù)協(xié)議,并創(chuàng)建用于接收和發(fā)送驗證信息的HTTP連接;

步驟S2:從iOS系統(tǒng)智能移動設(shè)備獲取音頻流和視頻流的解密KEY數(shù)據(jù);

步驟S3:創(chuàng)建TCP連接獲取iOS系統(tǒng)智能移動設(shè)備音頻流和視頻流數(shù)據(jù)至直播應(yīng)用程序中;

步驟S4:使用解密KEY數(shù)據(jù)對獲取的iOS系統(tǒng)智能移動設(shè)備音頻流和視頻流數(shù)據(jù)進行解密。

在上述技術(shù)方案的基礎(chǔ)上,所述Raop和Airplay服務(wù)協(xié)議由開源工程代碼注冊。

在上述技術(shù)方案的基礎(chǔ)上,步驟S2具體為:

S2.1:iOS系統(tǒng)智能移動設(shè)備與直播應(yīng)用程序通過HTTP連接互發(fā)驗證和應(yīng)答數(shù)據(jù)進行直播應(yīng)用程序身份驗證;

S2.2:當直播應(yīng)用程序身份驗證通過后,iOS系統(tǒng)智能移動設(shè)備發(fā)送一包含streamConnectionID數(shù)據(jù)的協(xié)議至直播應(yīng)用程序;

S2.3:解析streamConnectionID數(shù)據(jù),得到音頻流的解密KEY數(shù)據(jù)和視頻流的解密KEY數(shù)據(jù)。

在上述技術(shù)方案的基礎(chǔ)上,所述TCP連接為兩個,一個TCP連接用于獲取iOS系統(tǒng)智能移動設(shè)備音頻流,另一個TCP連接用于獲取iOS系統(tǒng)智能移動設(shè)備視頻流。

在上述技術(shù)方案的基礎(chǔ)上,步驟S4中,使用解密KEY數(shù)據(jù)和AES加密算法對獲取的iOS系統(tǒng)智能移動設(shè)備音頻流和視頻流數(shù)據(jù)進行解密。

在上述技術(shù)方案的基礎(chǔ)上,解密后的音頻流和視頻流數(shù)發(fā)送至直播平臺服務(wù)器。

本發(fā)明還提供一種用于獲取iOS系統(tǒng)智能移動設(shè)備音視頻的系統(tǒng),包括:iOS系統(tǒng)設(shè)備端、直播應(yīng)用程序端和服務(wù)器端;

所述iOS系統(tǒng)設(shè)備端用于向直播應(yīng)用程序端發(fā)送加密的音頻流和視頻流數(shù)據(jù);

所述直播應(yīng)用程序端用于對加密的音頻流和視頻流數(shù)據(jù)進行解密,獲得原始音頻流和視頻流數(shù)據(jù)并發(fā)送至服務(wù)器端。

在上述技術(shù)方案的基礎(chǔ)上,所述直播應(yīng)用程序端運行于所述iOS系統(tǒng)設(shè)備端中。

在上述技術(shù)方案的基礎(chǔ)上,所述直播應(yīng)用程序端中注冊有用于與iOS系統(tǒng)智能移動設(shè)備間進行協(xié)議交換的Raop和Airplay服務(wù)協(xié)議,并創(chuàng)建有用于接收和發(fā)送驗證信息的HTTP連接。

在上述技術(shù)方案的基礎(chǔ)上,所述直播應(yīng)用程序端上創(chuàng)建有TCP連接,加密的音頻流和視頻流數(shù)據(jù)通過TCP連接發(fā)送至直播應(yīng)用程序端。

與現(xiàn)有技術(shù)相比,本發(fā)明一種用于獲取iOS系統(tǒng)智能移動設(shè)備音視頻的方法的優(yōu)點在于:通過在直播應(yīng)用程序中注冊Raop和Airplay服務(wù)協(xié)議,方便iOS系統(tǒng)智能移動設(shè)備與直播應(yīng)用程序間進行數(shù)據(jù)的交互和傳輸,然后通過HTTP連接進行直播應(yīng)用程序身份的驗證,并獲得音頻流和視頻流的解密KEY數(shù)據(jù),從而對iOS系統(tǒng)智能移動設(shè)備發(fā)送的音頻流和視頻流進行解密,便捷而快速的獲得原始的音頻流和視頻流數(shù)據(jù),同時提高直播直播音視頻內(nèi)容的穩(wěn)定性。

本發(fā)明一種用于獲取iOS系統(tǒng)智能移動設(shè)備音視頻的系統(tǒng)的優(yōu)點在于:應(yīng)用程序端獲取iOS系統(tǒng)設(shè)備端音頻流和視頻流的解密KEY數(shù)據(jù),并對iOS系統(tǒng)設(shè)備端發(fā)送的音頻流和視頻流進行解密,獲得原始的音頻流和視頻流數(shù)據(jù),應(yīng)用程序端將原始的音頻流和視頻流數(shù)據(jù)發(fā)送至服務(wù)器端觀眾問直播平臺服務(wù)器,獲取主播直播的音頻流和視頻流數(shù)據(jù),便可觀看主播穩(wěn)定的音視頻內(nèi)容。

附圖說明

圖1為本發(fā)明一種用于獲取iOS系統(tǒng)智能移動設(shè)備音視頻的方法的流程圖。

具體實施方式

以下結(jié)合附圖對本發(fā)明作進一步詳細說明。

參見圖1所示,本發(fā)明提供一種用于獲取iOS系統(tǒng)智能移動設(shè)備音視頻的方法,用于直播應(yīng)用程序直接獲取iOS系統(tǒng)智能移動設(shè)備中的視頻流和音頻流數(shù)據(jù),從而提高主播直播內(nèi)容的畫面和聲音的質(zhì)量以及穩(wěn)定性。本實施例中,iOS系統(tǒng)智能移動設(shè)備為iphone手機。本發(fā)明的方法包括:

步驟S1:在直播應(yīng)用程序中注冊用于與iOS系統(tǒng)智能移動設(shè)備間進行協(xié)議交換的Raop和Airplay服務(wù)協(xié)議,并創(chuàng)建用于接收和發(fā)送驗證信息的HTTP(HTTP,HyperText Transfer Protocol)連接。

蘋果公司的Airplay協(xié)議是一種實現(xiàn)各個設(shè)備間相互傳輸媒體流信息的協(xié)議,該協(xié)議的基礎(chǔ)是組播DNS(Domain Name System,域名系統(tǒng))協(xié)議和DNS服務(wù)發(fā)現(xiàn)協(xié)議,類似于DNS服務(wù)協(xié)議。Raop服務(wù)協(xié)議是Airplay服務(wù)協(xié)議中的遠程音頻輸出協(xié)議。Airplay協(xié)議能夠在沒有DNS服務(wù)的情況下使局域網(wǎng)內(nèi)的主機實現(xiàn)互相發(fā)現(xiàn)和通信。蘋果公司提供了一種開源工程代碼mdnsresponder。Bonjour協(xié)議是蘋果公司基于組播DNS協(xié)議發(fā)布的一種開放性零設(shè)置的網(wǎng)絡(luò)標準,使用Bonjour協(xié)議的設(shè)備在網(wǎng)絡(luò)中能夠自動傳播各自的服務(wù)信息,并聆聽其它設(shè)備的服務(wù)信息,設(shè)備之間如同于打招呼,從而進行通信。

本發(fā)明則是使用開源工程代碼mdnsresponder在直播應(yīng)用程序中注冊Raop和Airplay服務(wù)協(xié)議,從而在iOS系統(tǒng)智能移動設(shè)備和直播應(yīng)用程序間打開一協(xié)議交換的通道,這樣iOS系統(tǒng)智能移動設(shè)備可以發(fā)現(xiàn)直播應(yīng)用程序,直播應(yīng)用程序可以發(fā)現(xiàn)iOS系統(tǒng)智能移動設(shè)備,以便兩者間的通信和數(shù)據(jù)傳輸。

對于Raop和Airplay服務(wù)協(xié)議,具體需要注冊2個服務(wù),一個是_raop._tcp(用于傳輸音頻數(shù)據(jù))服務(wù),另一個是_airplay._tcp(用于傳輸視頻數(shù)據(jù))服務(wù)。Raop和Airplay服務(wù)協(xié)議是通過開源工程代碼mdnsresponder中的API(Application Programming Interface,應(yīng)用程序編程接口)中的DNSServiceRegister函數(shù)來注冊的,DNSServiceRegister函數(shù)的原型如下:

其中,sdRef代表一個未初始化的DNSService實體,DNSServiceRegister函數(shù)分配內(nèi)存并將其初始化;flags表示當網(wǎng)絡(luò)內(nèi)部有重名服務(wù)時的沖突處理;interfaceIndex表示服務(wù)輸出到主機的哪些網(wǎng)絡(luò)接口上;name表示服務(wù)名,如果為空就取機器名;regtype表示服務(wù)類型,用字符串表達,本發(fā)明的服務(wù)類型則是_raop._tcp和_airplay._tcp;domian和host一般都為空;port表示服務(wù)的端口;txtLen以及txtRecord字符串用來描述服務(wù);callBack表示設(shè)置回調(diào)函數(shù);context表示上下文指針,由應(yīng)用程序設(shè)置。

注冊Raop服務(wù)協(xié)議的代碼如下:

DNSServiceRegister(&client,0,0,"MyMirror","_raop._tcp",NULL,NULL,port,testlen,text,NULL,NULL);

其中,text字段包含信息如下:

注冊Airplay服務(wù)協(xié)議的代碼如下:

DNSServiceRegister(&client,0,0,"MyMirror","_airplay._tcp",NULL,NULL,port,testlen,text,NULL,NULL);

其中,text字段包含信息與Raop服務(wù)協(xié)議中的類似。

iOS系統(tǒng)智能移動設(shè)備和直播應(yīng)用程序間通過Raop和Airplay服務(wù)協(xié)議能夠相互發(fā)現(xiàn)彼此,但iOS系統(tǒng)智能移動設(shè)備和直播應(yīng)用程序間在傳輸數(shù)據(jù)前還需進行直播應(yīng)用程序身份的驗證,驗證信息的數(shù)據(jù)則是通過直播應(yīng)用程序上創(chuàng)建HTTP連接進行傳輸。

步驟S2:從iOS系統(tǒng)智能移動設(shè)備中獲取音頻流和視頻流的解密KEY數(shù)據(jù),在獲取音頻流和視頻流的解密KEY數(shù)據(jù)前,還需進行直播應(yīng)用程序身份驗證。該步驟具體為:

S2.1:iOS系統(tǒng)智能移動設(shè)備與直播應(yīng)用程序通過HTTP連接互發(fā)驗證和應(yīng)答數(shù)據(jù)進行直播應(yīng)用程序身份驗證。

首先iOS系統(tǒng)智能移動設(shè)備通過HTTP連接向直播應(yīng)用程序發(fā)送一條驗證數(shù)據(jù),具體為:

POST/fp-setup RTSP/1.0

X-Apple-ET:32

Content-Length:16

Content-Type:application/octet-stream

CSeq:3

DACP-ID:81BB5192D8BC2201

Active-Remote:3280812944

User-Agent:AirPlay/280.33

FPLYXXXXXXXXXXXX

該條驗證數(shù)據(jù)中,最關(guān)鍵的數(shù)據(jù)為以FPLY開頭的FPLYXXXXXXXXXXXX,XXXXXXXXXXXX是舉例的數(shù)據(jù),舉例的數(shù)據(jù)每次均是變化的。取出FPLYXXXXXXXXXXXX使用加密算法生成一142位長度的數(shù)據(jù),該142位長度的數(shù)據(jù)也是以FPLY開頭,計算出新的142位長度的數(shù)據(jù)后,則需要以應(yīng)答的形式將該142位長度的數(shù)據(jù)通過HTTP連接答復(fù)給iOS系統(tǒng)智能移動設(shè)備,具體答復(fù)的數(shù)據(jù)為:

RTSP/1.0 200OK

Server:AirTunes/230.33

CSeq:3

Connect-Type:application/octet-stream

Content-Length:142

FPLYXXXXXXX……

其中,F(xiàn)PLYXXXXXXX……為前面計算出的142位長度的數(shù)據(jù)。142位長度的數(shù)據(jù)為驗證的關(guān)鍵,若數(shù)據(jù)正確,則iOS系統(tǒng)智能移動設(shè)備會通過HTTP連接給直播應(yīng)用程序送第二條驗證數(shù)據(jù),第二條驗證數(shù)據(jù)為POST/fp-setup RTSP/1.0

X-Apple-ET:32

Content-Length:164

Content-Type:application/octet-stream

CSeq:4

DACP-ID:81BB5192D8BC2201

Active-Remote:3280812944

User-Agent:AirPlay/280.33

FPLYXXXXXX....164位長度

其中,第二條驗證數(shù)據(jù)中的末行表示另一個數(shù)據(jù)長度為164位的FPLY開頭的數(shù)據(jù),這是再使用加密算法利用這個164位的FPLY開頭的數(shù)據(jù),計算出一個新的數(shù)據(jù)長度為32位的FPLY開頭的數(shù)據(jù),并通過HTTP連接發(fā)送給iOS系統(tǒng)智能移動設(shè)備,32位的FPLY開頭的數(shù)據(jù)為:

RTSP/1.0 200OK

Server:AirTunes/230.33

CSeq:4

Connect-Type:application/octet-stream

Content-Length:32

FPLYXXXXX...32位應(yīng)答數(shù)據(jù)

其中,F(xiàn)PLYXXXXX...32位應(yīng)答數(shù)據(jù)表示數(shù)據(jù)長度為32位的FPLY開頭的數(shù)據(jù)。

至此,直播應(yīng)用程序的身份驗證完成并通過。

S2.2:當直播應(yīng)用程序身份驗證通過后,iOS系統(tǒng)智能移動設(shè)備通過HTTP連接發(fā)送給直播應(yīng)用程序一包含streamConnectionID數(shù)據(jù)的協(xié)議至直播應(yīng)用程序,streamConnectionID數(shù)據(jù)中包含有音頻流的解密KEY數(shù)據(jù)和視頻流的解密KEY數(shù)據(jù)。包含streamConnectionID數(shù)據(jù)的協(xié)議為:

SETUP rtsp://172.28.70.1/1502821944188946684

RTSP/1.0..Content-Length:592

Content-Type:application/x-apple-binary-plist..CSeq:5

DACP-ID:75B72797D9DB1343

Active-Remote:4107307671

User-Agent:AirPlay/280.33

bplist00?...............

streamConnectionID......

FPLYXXXX 72位

其中,F(xiàn)PLYXXXX 72位表示數(shù)據(jù)長度為72位的FPLY開頭的數(shù)據(jù)。

S2.3:解析streamConnectionID數(shù)據(jù),得到音頻流的解密KEY數(shù)據(jù)和視頻流的解密KEY數(shù)據(jù)。通過加解密算法對streamConnectionID數(shù)據(jù)進行解析,便能得到音頻流的解密KEY數(shù)據(jù)和視頻流的解密KEY數(shù)據(jù),音頻流的解密KEY數(shù)據(jù)和視頻流的解密KEY數(shù)據(jù)均是長度為16位的數(shù)據(jù)。

步驟S3:創(chuàng)建TCP(Transmission Control Protocol,傳輸控制協(xié)議)連接獲取iOS系統(tǒng)智能移動設(shè)備的音頻流和視頻流數(shù)據(jù)至直播應(yīng)用程序中。TCP連接為兩個,其中,一個TCP連接用于獲取iOS系統(tǒng)智能移動設(shè)備音頻流,另一個TCP連接用于獲取iOS系統(tǒng)智能移動設(shè)備視頻流。獲取音頻流的TCP連接使用的網(wǎng)絡(luò)端口為7100端口,獲取視頻流的TCP連接使用的網(wǎng)絡(luò)端口為7200端口。

步驟S4:使用解密KEY數(shù)據(jù)對獲取的iOS系統(tǒng)智能移動設(shè)備音頻流和視頻流數(shù)據(jù)進行解密,通常,需要使用解密KEY數(shù)據(jù)和AES加密算法對獲取的iOS系統(tǒng)智能移動設(shè)備音頻流和視頻流數(shù)據(jù)進行解密,由于iOS系統(tǒng)智能移動設(shè)備推送的音頻流和視頻流數(shù)據(jù)均使用了標準的AES加密算法進行了加密,AES是一種對稱分組密碼算法,由美國國家標準技術(shù)研究所發(fā)布,因而我們同時需要使用AES解密算法和音頻流的解密KEY數(shù)據(jù)對獲取的iOS系統(tǒng)智能移動設(shè)備音頻流進行解密,獲得原始的音頻流數(shù)據(jù),同時使用AES解密算法和視頻流的解密KEY數(shù)據(jù)對獲取的iOS系統(tǒng)智能移動設(shè)備視頻流進行解碼,獲得原始的視頻流數(shù)據(jù),直播應(yīng)用程序?qū)⒃嫉囊纛l流和視頻流數(shù)據(jù)發(fā)送至直播平臺服務(wù)器,觀眾便可訪問直播平臺服務(wù)器觀看主播的直播。

直接獲取iOS系統(tǒng)智能移動設(shè)備上的音頻流和視頻流,對于使用iOS系統(tǒng)智能移動設(shè)備的主播,能夠給觀眾提供穩(wěn)定的直播音視頻內(nèi)容。

本發(fā)明還提供一種基于上述方法的用于獲取iOS系統(tǒng)智能移動設(shè)備音視頻的系統(tǒng),包括iOS系統(tǒng)設(shè)備端、直播應(yīng)用程序端和服務(wù)器端,直播應(yīng)用程序端運行于iOS系統(tǒng)設(shè)備端中。

iOS系統(tǒng)設(shè)備端用于向直播應(yīng)用程序端發(fā)送加密的音頻流和視頻流數(shù)據(jù);直播應(yīng)用程序端用于對加密的音頻流和視頻流數(shù)據(jù)進行解密,獲得原始音頻流和視頻流數(shù)據(jù)并發(fā)送至服務(wù)器端,觀眾問直播平臺服務(wù)器,獲取主播直播的音頻流和視頻流數(shù)據(jù),便可觀看主播的直播。

直播應(yīng)用程序端中注冊有用于與iOS系統(tǒng)智能移動設(shè)備間進行協(xié)議交換的Raop和Airplay服務(wù)協(xié)議,通過Raop和Airplay服務(wù)協(xié)議,iOS系統(tǒng)智能移動設(shè)備可以發(fā)現(xiàn)直播應(yīng)用程序,直播應(yīng)用程序可以發(fā)現(xiàn)iOS系統(tǒng)智能移動設(shè)備,以便兩者間的通信和數(shù)據(jù)傳輸,直播應(yīng)用程序端中還創(chuàng)建有用于接收和發(fā)送驗證信息的HTTP連接,通過HTTP連接,iOS系統(tǒng)智能移動設(shè)備和直播應(yīng)用程序端間相互傳輸數(shù)據(jù),以驗證直播應(yīng)用程序端的身份,從而iOS系統(tǒng)智能移動設(shè)備能夠講加密的音頻流和視頻流數(shù)據(jù)發(fā)送給直播應(yīng)用程序端,同時將音頻流和視頻流的解密KEY數(shù)據(jù)發(fā)送給直播應(yīng)用程序端。

直播應(yīng)用程序端上還創(chuàng)建有TCP連接,加密的音頻流和視頻流數(shù)據(jù)通過TCP連接發(fā)送至直播應(yīng)用程序端,然后直播應(yīng)用程序使用音頻流和視頻流的解密KEY數(shù)據(jù)對加密的音頻流和視頻流數(shù)據(jù)進行解密,獲得原始的音頻流和視頻流數(shù)據(jù),并將原始的音頻流和視頻流數(shù)據(jù)發(fā)送給服務(wù)器端。

本發(fā)明不局限于上述實施方式,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍之內(nèi)。本說明書中未作詳細描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
云梦县| 太仓市| 南通市| 长岛县| 二连浩特市| 崇礼县| 金川县| 滦南县| 白水县| 金川县| 台湾省| 广饶县| 沙田区| 林周县| 溆浦县| 黄浦区| 天门市| 镇巴县| 夹江县| 友谊县| 濉溪县| 胶州市| 潮安县| 巴中市| 拉萨市| 永修县| 浙江省| 古丈县| 叙永县| 胶南市| 涞源县| 永安市| 驻马店市| 晋宁县| 墨脱县| 弥渡县| 阿尔山市| 浏阳市| 禹州市| 依安县| 巴青县|