一种用于获取iOS系统智能移动设备音视频的方法和系统与流程

文档序号:11156592阅读:553来源:国知局
一种用于获取iOS系统智能移动设备音视频的方法和系统与制造工艺

本发明涉及移动直播领域,具体涉及一种用于获取iOS系统智能移动设备音视频的方法和一种用于获取iOS系统智能移动设备音视频的系统。



背景技术:

随着直播的兴起和流行,同时为了丰富直播内容的多样性,越来越多的直播使用手机等智能移动设备进行移动或户外直播,智能移动设备获取主播直播时的音视频内容,并上传至服务器供用户观看,但对于运行iOS系统的智能移动设备,目前缺乏一种快速高效获取iOS智能移动设备上音视频内容的方法,现有的处理方式仅仅是采取截屏的方式获取iOS系统智能移动设备上的视频内容,因而导致使用iOS系统智能移动设备直播的主播经常出现直播画面卡顿的现象,直播稳定性较差。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种用于获取iOS系统智能移动设备音视频的方法和一种用于获取iOS系统智能移动设备音视频的系统,能够快速而高效的获取iOS系统智能移动设备中的音视频数据。

为达到以上目的,本发明采取的技术方案是:包括:

步骤S1:在直播应用程序中注册用于与iOS系统智能移动设备间进行协议交换的Raop和Airplay服务协议,并创建用于接收和发送验证信息的HTTP连接;

步骤S2:从iOS系统智能移动设备获取音频流和视频流的解密KEY数据;

步骤S3:创建TCP连接获取iOS系统智能移动设备音频流和视频流数据至直播应用程序中;

步骤S4:使用解密KEY数据对获取的iOS系统智能移动设备音频流和视频流数据进行解密。

在上述技术方案的基础上,所述Raop和Airplay服务协议由开源工程代码注册。

在上述技术方案的基础上,步骤S2具体为:

S2.1:iOS系统智能移动设备与直播应用程序通过HTTP连接互发验证和应答数据进行直播应用程序身份验证;

S2.2:当直播应用程序身份验证通过后,iOS系统智能移动设备发送一包含streamConnectionID数据的协议至直播应用程序;

S2.3:解析streamConnectionID数据,得到音频流的解密KEY数据和视频流的解密KEY数据。

在上述技术方案的基础上,所述TCP连接为两个,一个TCP连接用于获取iOS系统智能移动设备音频流,另一个TCP连接用于获取iOS系统智能移动设备视频流。

在上述技术方案的基础上,步骤S4中,使用解密KEY数据和AES加密算法对获取的iOS系统智能移动设备音频流和视频流数据进行解密。

在上述技术方案的基础上,解密后的音频流和视频流数发送至直播平台服务器。

本发明还提供一种用于获取iOS系统智能移动设备音视频的系统,包括:iOS系统设备端、直播应用程序端和服务器端;

所述iOS系统设备端用于向直播应用程序端发送加密的音频流和视频流数据;

所述直播应用程序端用于对加密的音频流和视频流数据进行解密,获得原始音频流和视频流数据并发送至服务器端。

在上述技术方案的基础上,所述直播应用程序端运行于所述iOS系统设备端中。

在上述技术方案的基础上,所述直播应用程序端中注册有用于与iOS系统智能移动设备间进行协议交换的Raop和Airplay服务协议,并创建有用于接收和发送验证信息的HTTP连接。

在上述技术方案的基础上,所述直播应用程序端上创建有TCP连接,加密的音频流和视频流数据通过TCP连接发送至直播应用程序端。

与现有技术相比,本发明一种用于获取iOS系统智能移动设备音视频的方法的优点在于:通过在直播应用程序中注册Raop和Airplay服务协议,方便iOS系统智能移动设备与直播应用程序间进行数据的交互和传输,然后通过HTTP连接进行直播应用程序身份的验证,并获得音频流和视频流的解密KEY数据,从而对iOS系统智能移动设备发送的音频流和视频流进行解密,便捷而快速的获得原始的音频流和视频流数据,同时提高直播直播音视频内容的稳定性。

本发明一种用于获取iOS系统智能移动设备音视频的系统的优点在于:应用程序端获取iOS系统设备端音频流和视频流的解密KEY数据,并对iOS系统设备端发送的音频流和视频流进行解密,获得原始的音频流和视频流数据,应用程序端将原始的音频流和视频流数据发送至服务器端观众问直播平台服务器,获取主播直播的音频流和视频流数据,便可观看主播稳定的音视频内容。

附图说明

图1为本发明一种用于获取iOS系统智能移动设备音视频的方法的流程图。

具体实施方式

以下结合附图对本发明作进一步详细说明。

参见图1所示,本发明提供一种用于获取iOS系统智能移动设备音视频的方法,用于直播应用程序直接获取iOS系统智能移动设备中的视频流和音频流数据,从而提高主播直播内容的画面和声音的质量以及稳定性。本实施例中,iOS系统智能移动设备为iphone手机。本发明的方法包括:

步骤S1:在直播应用程序中注册用于与iOS系统智能移动设备间进行协议交换的Raop和Airplay服务协议,并创建用于接收和发送验证信息的HTTP(HTTP,HyperText Transfer Protocol)连接。

苹果公司的Airplay协议是一种实现各个设备间相互传输媒体流信息的协议,该协议的基础是组播DNS(Domain Name System,域名系统)协议和DNS服务发现协议,类似于DNS服务协议。Raop服务协议是Airplay服务协议中的远程音频输出协议。Airplay协议能够在没有DNS服务的情况下使局域网内的主机实现互相发现和通信。苹果公司提供了一种开源工程代码mdnsresponder。Bonjour协议是苹果公司基于组播DNS协议发布的一种开放性零设置的网络标准,使用Bonjour协议的设备在网络中能够自动传播各自的服务信息,并聆听其它设备的服务信息,设备之间如同于打招呼,从而进行通信。

本发明则是使用开源工程代码mdnsresponder在直播应用程序中注册Raop和Airplay服务协议,从而在iOS系统智能移动设备和直播应用程序间打开一协议交换的通道,这样iOS系统智能移动设备可以发现直播应用程序,直播应用程序可以发现iOS系统智能移动设备,以便两者间的通信和数据传输。

对于Raop和Airplay服务协议,具体需要注册2个服务,一个是_raop._tcp(用于传输音频数据)服务,另一个是_airplay._tcp(用于传输视频数据)服务。Raop和Airplay服务协议是通过开源工程代码mdnsresponder中的API(Application Programming Interface,应用程序编程接口)中的DNSServiceRegister函数来注册的,DNSServiceRegister函数的原型如下:

其中,sdRef代表一个未初始化的DNSService实体,DNSServiceRegister函数分配内存并将其初始化;flags表示当网络内部有重名服务时的冲突处理;interfaceIndex表示服务输出到主机的哪些网络接口上;name表示服务名,如果为空就取机器名;regtype表示服务类型,用字符串表达,本发明的服务类型则是_raop._tcp和_airplay._tcp;domian和host一般都为空;port表示服务的端口;txtLen以及txtRecord字符串用来描述服务;callBack表示设置回调函数;context表示上下文指针,由应用程序设置。

注册Raop服务协议的代码如下:

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

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

注册Airplay服务协议的代码如下:

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

其中,text字段包含信息与Raop服务协议中的类似。

iOS系统智能移动设备和直播应用程序间通过Raop和Airplay服务协议能够相互发现彼此,但iOS系统智能移动设备和直播应用程序间在传输数据前还需进行直播应用程序身份的验证,验证信息的数据则是通过直播应用程序上创建HTTP连接进行传输。

步骤S2:从iOS系统智能移动设备中获取音频流和视频流的解密KEY数据,在获取音频流和视频流的解密KEY数据前,还需进行直播应用程序身份验证。该步骤具体为:

S2.1:iOS系统智能移动设备与直播应用程序通过HTTP连接互发验证和应答数据进行直播应用程序身份验证。

首先iOS系统智能移动设备通过HTTP连接向直播应用程序发送一条验证数据,具体为:

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

该条验证数据中,最关键的数据为以FPLY开头的FPLYXXXXXXXXXXXX,XXXXXXXXXXXX是举例的数据,举例的数据每次均是变化的。取出FPLYXXXXXXXXXXXX使用加密算法生成一142位长度的数据,该142位长度的数据也是以FPLY开头,计算出新的142位长度的数据后,则需要以应答的形式将该142位长度的数据通过HTTP连接答复给iOS系统智能移动设备,具体答复的数据为:

RTSP/1.0 200OK

Server:AirTunes/230.33

CSeq:3

Connect-Type:application/octet-stream

Content-Length:142

FPLYXXXXXXX……

其中,FPLYXXXXXXX……为前面计算出的142位长度的数据。142位长度的数据为验证的关键,若数据正确,则iOS系统智能移动设备会通过HTTP连接给直播应用程序送第二条验证数据,第二条验证数据为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位长度

其中,第二条验证数据中的末行表示另一个数据长度为164位的FPLY开头的数据,这是再使用加密算法利用这个164位的FPLY开头的数据,计算出一个新的数据长度为32位的FPLY开头的数据,并通过HTTP连接发送给iOS系统智能移动设备,32位的FPLY开头的数据为:

RTSP/1.0 200OK

Server:AirTunes/230.33

CSeq:4

Connect-Type:application/octet-stream

Content-Length:32

FPLYXXXXX...32位应答数据

其中,FPLYXXXXX...32位应答数据表示数据长度为32位的FPLY开头的数据。

至此,直播应用程序的身份验证完成并通过。

S2.2:当直播应用程序身份验证通过后,iOS系统智能移动设备通过HTTP连接发送给直播应用程序一包含streamConnectionID数据的协议至直播应用程序,streamConnectionID数据中包含有音频流的解密KEY数据和视频流的解密KEY数据。包含streamConnectionID数据的协议为:

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位

其中,FPLYXXXX 72位表示数据长度为72位的FPLY开头的数据。

S2.3:解析streamConnectionID数据,得到音频流的解密KEY数据和视频流的解密KEY数据。通过加解密算法对streamConnectionID数据进行解析,便能得到音频流的解密KEY数据和视频流的解密KEY数据,音频流的解密KEY数据和视频流的解密KEY数据均是长度为16位的数据。

步骤S3:创建TCP(Transmission Control Protocol,传输控制协议)连接获取iOS系统智能移动设备的音频流和视频流数据至直播应用程序中。TCP连接为两个,其中,一个TCP连接用于获取iOS系统智能移动设备音频流,另一个TCP连接用于获取iOS系统智能移动设备视频流。获取音频流的TCP连接使用的网络端口为7100端口,获取视频流的TCP连接使用的网络端口为7200端口。

步骤S4:使用解密KEY数据对获取的iOS系统智能移动设备音频流和视频流数据进行解密,通常,需要使用解密KEY数据和AES加密算法对获取的iOS系统智能移动设备音频流和视频流数据进行解密,由于iOS系统智能移动设备推送的音频流和视频流数据均使用了标准的AES加密算法进行了加密,AES是一种对称分组密码算法,由美国国家标准技术研究所发布,因而我们同时需要使用AES解密算法和音频流的解密KEY数据对获取的iOS系统智能移动设备音频流进行解密,获得原始的音频流数据,同时使用AES解密算法和视频流的解密KEY数据对获取的iOS系统智能移动设备视频流进行解码,获得原始的视频流数据,直播应用程序将原始的音频流和视频流数据发送至直播平台服务器,观众便可访问直播平台服务器观看主播的直播。

直接获取iOS系统智能移动设备上的音频流和视频流,对于使用iOS系统智能移动设备的主播,能够给观众提供稳定的直播音视频内容。

本发明还提供一种基于上述方法的用于获取iOS系统智能移动设备音视频的系统,包括iOS系统设备端、直播应用程序端和服务器端,直播应用程序端运行于iOS系统设备端中。

iOS系统设备端用于向直播应用程序端发送加密的音频流和视频流数据;直播应用程序端用于对加密的音频流和视频流数据进行解密,获得原始音频流和视频流数据并发送至服务器端,观众问直播平台服务器,获取主播直播的音频流和视频流数据,便可观看主播的直播。

直播应用程序端中注册有用于与iOS系统智能移动设备间进行协议交换的Raop和Airplay服务协议,通过Raop和Airplay服务协议,iOS系统智能移动设备可以发现直播应用程序,直播应用程序可以发现iOS系统智能移动设备,以便两者间的通信和数据传输,直播应用程序端中还创建有用于接收和发送验证信息的HTTP连接,通过HTTP连接,iOS系统智能移动设备和直播应用程序端间相互传输数据,以验证直播应用程序端的身份,从而iOS系统智能移动设备能够讲加密的音频流和视频流数据发送给直播应用程序端,同时将音频流和视频流的解密KEY数据发送给直播应用程序端。

直播应用程序端上还创建有TCP连接,加密的音频流和视频流数据通过TCP连接发送至直播应用程序端,然后直播应用程序使用音频流和视频流的解密KEY数据对加密的音频流和视频流数据进行解密,获得原始的音频流和视频流数据,并将原始的音频流和视频流数据发送给服务器端。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1