一种流媒体适配器、流媒体网络交互的系统及方法
技术领域
本发明涉及多媒体交互技术,特别涉及一种流媒体适配器、流媒体网络交互的系统及方法。
背景技术
流媒体(Streaming Media)为采用流式传输的方式在因特网与内联网播放的媒体格式,流式传输的方式能够使音频、视频和其他多媒体元素在因特网及无线网络上实时的、无需下载等待的方式进行播放。
图1为现有的流媒体网络交互的方法流程图。现结合图1,对现有的流媒体网络交互的方法进行说明,具体如下:
鉴于流媒体所采用的流式传输的方式及流式传输的方式的实时性,用以进行流媒体网络交互的客户端需要支持实时传送协议(Real-time TransportProtocol,RTP)或实时流传输协议(Real Time Streaming Protocol,RTSP),同理,用以进行流媒体网络交互的服务器也需要支持实时传送协议或实时流传输协议。
现有的流媒体网络交互的方法包括:步骤101,客户端发送流媒体业务请求至服务器;步骤102,服务器发送流媒体业务响应至客户端。
现有的流媒体网络交互的方法中,客户端和服务器在进行流媒体网络交互前,需要根据所支持的协议,建立用以交互流媒体的网络链路,只有在客户端和服务器所支持的协议相同时,才能成功地建立用以交互流媒体的网络链路;在成功地建立网络链路后,客户端和服务器再按照步骤101和步骤102的方法,进行流媒体网络交互。但是,当网络中服务器所采用的协议类型不支持流媒体实时传输时,比如,文件传输协议(File Transfer Protocol,FTP)、超文本传输协议(Hyper Text Transfer Protocol,HTTP),该服务器无法为接入网络的客户端提供其所需的流媒体文件;当网络中客户端所采用的协议类型不支持流媒体实时传输时,比如,FTP、HTTP,该客户端无法从支持流媒体实时传输的服务器获取流媒体文件。
综上所述,由于支持的传输协议的不兼容,导致了客户端或服务器上的流媒体文件不能被共享,使得流媒体网络交互具有一定的局限性。
发明内容
有鉴于此,本发明的目的在于提供一种流媒体网络交互的系统,该系统能够实现采用不同传输协议的客户端和服务器间的流媒体交互。
本发明的目的在于提供一种流媒体网络交互的方法,该方法能够实现采用不同传输协议的客户端和服务器间的流媒体交互。
为达到上述目的,本发明的技术方案具体是这样实现的:
一种流媒体适配器,所述流媒体适配器连接至少一个客户端和至少一个目标服务器,
所述流媒体适配器根据来自客户端的按照第一协议的格式发送的流媒体请求,确定客户端所采用的第一协议,利用流媒体请求所携带的目标服务器的IP地址及端口号,通过与目标服务器的协议适配,确定目标服务器所采用的第二协议;
所述流媒体适配器按照第二协议的格式,发送流媒体请求至目标服务器,按照客户端发送的其IP地址、端口号及第一协议的格式,发送流媒体文件至客户端;
所述第一协议和所述第二协议为不同类型的传输协议。
较佳地,该适配器进一步根据第一协议及第二协议,对来自目标服务器的流媒体文件进行格式转换,获得转换后的流媒体文件。
上述适配器中,该适配器包含:
协议存储模块,用以保存多个支持实时传送流媒体文件的传输协议和多个不支持实时传送流媒体文件的传输协议;
协议适配模块,根据适配指令及第一协议的格式确定第一协议;利用端口号确定一协议,在利用端口号确定的协议成功与目标服务器进行交互时,选择端口号确定的协议为第二协议,在利用端口号确定的协议未成功与目标服务器进行交互时,利用协议存储模块保存的协议与目标服务器进行交互来确定第二协议;输出携带第一协议和第二协议的适配响应至流媒体控制模块;
流媒体控制模块,接收来自客户端的流媒体请求,输出适配指令及第一协议的格式至协议适配模块;根据适配响应,按照第二协议的格式发送流媒体请求至目标服务器;按照客户端的IP地址和端口号,将接收到的流媒体文件按照第一协议的格式发送至客户端;
所述第一协议和所述第二协议为支持实时传送流媒体文件的传输协议,或为不支持实时传送流媒体文件的传输协议。
上述适配器中,该适配器包含:
协议存储模块,用以保存多个支持实时传送流媒体文件的传输协议和多个不支持实时传送流媒体文件的传输协议;
协议适配模块,根据适配指令及第一协议的格式确定第一协议;利用端口号确定一协议,在利用端口号确定的协议成功与目标服务器进行交互时,选择端口号确定的协议为第二协议,在利用端口号确定的协议未成功与目标服务器进行交互时,利用协议存储模块保存的协议与目标服务器进行交互来确定第二协议;输出携带第一协议和第二协议的适配响应至流媒体控制模块;
流媒体控制模块,接收来自客户端的流媒体请求,输出适配指令及第一协议的格式至协议适配模块;根据适配响应,按照第二协议的格式发送流媒体请求至目标服务器;按照第一协议及第二协议,输出格式转换指令和接收到的流媒体文件输出至流媒体转换模块;按照第一协议的格式,发送转换后的流媒体文件至客户端;
流媒体转换模块,根据格式转换指令,对流媒体文件进行转码和/或转封装,将转换后的流媒体文件输出至流媒体控制模块;
所述第一协议为支持实时传送流媒体文件的传输协议,所述第二协议为不支持实时传送流媒体文件的传输协议,或者所述第一协议为不支持实时传送流媒体文件的传输协议,所述第二协议为支持实时传送流媒体文件的传输协议。
一种流媒体网络交互的系统,该系统包含:至少一个客户端、至少一个目标服务器、和前述的流媒体适配器;
所述客户端根据流媒体适配器的IP地址和端口号,按照第一协议的格式,发送携带目标服务器的IP地址及端口号的流媒体请求、客户端的IP地址和端口号至流媒体适配器,接收来自流媒体适配器的流媒体文件;
所述目标服务器根据来自流媒体适配器的流媒体请求,按照第二协议的格式发送流媒体文件至流媒体适配器。
一种流媒体网络交互的方法,该方法包括:
A、根据来自客户端的按照第一协议的格式发送的流媒体请求,确定客户端所采用的第一协议;
B、利用流媒体请求携带的目标服务器的IP地址及端口号,通过与目标服务器的协议适配,确定目标服务器所采用的第二协议;
C、按照第二协议的格式发送流媒体请求至目标服务器;
D、按照客户端的IP地址、端口号和第一协议的格式,发送流媒体文件至客户端;
所述第一协议和所述第二协议为不同类型的传输协议。
较佳地,所述步骤C与所述步骤D之间进一步包括:
判断是否需要对流媒体文件进行格式转换,如果是,对流媒体文件进行格式转换,否则执行步骤D。
上述方法中,所述步骤B包括:
B1、根据流媒体请求携带的目标服务器的端口号确定一协议;
B2、判断采用步骤B1所述的协议是否能与目标服务器成功进行交互,如果是,则将步骤B1所述的协议确定为第二协议,否则执行步骤B3;
B3、采用保存的协议与目标服务器进行交互,并将与目标服务器成功交互时所采用的协议确定为第二协议。
上述方法中,所述对流媒体文件进行格式转换包括:
根据第一协议确定客户端支持的封装方式和编解码方式;
根据第二协议确定流媒体文件的封装方式和编解码方式;
对来自目标服务器的流媒体文件进行转码和/或转封装处理,获得转换后的流媒体文件。
上述方法中,所述判断是否需要对流媒体文件进行格式转换包括:判断第一协议和第二协议是否为支持实时传送流媒体文件的传输协议,或为不支持实时传送流媒体文件的传输协议。
由上述的技术方案可见,本发明提供了一种流媒体适配器、流媒体网络交互的系统及方法,流媒体适配器根据确定的客户端采用的协议和目标服务器采用的协议,在客户端与目标服务器进行流媒体数据和/或指令的交互时,进行协议格式的转换。采用本发明的适配器、系统及方法,能够实现采用不同传输协议的客户端和服务器间的流媒体交互。
附图说明
图1为现有的流媒体网络交互的方法流程图。
图2为本发明流媒体网络交互的系统的结构示意图。
图3为本发明流媒体网络交互的方法流程图。
具体实施方式
为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本发明提供了一种流媒体适配器、流媒体网络交互的系统及方法,流媒体适配器根据接收到的请求消息所采用的协议格式,确定客户端所采用的协议,还可根据客户端所采用的协议确定客户端的编解码方式和封装方式;流媒体适配器根据目标服务器的端口号及与目标服务器间的交互,确定目标服务器所采用的协议,通过协议格式转换,从目标服务器获取客户端请求的流媒体文件,且在目标服务器所提供的流媒体文件无法在客户端上播放时,对流媒体文件进行格式转换,以便客户端能够对其所请求的流媒体文件进行解封装和解码操作。
本发明流媒体网络交互的系统包含至少一个客户端、一个流媒体适配器和至少一个目标服务器;本发明的下述实施例中仅以系统包含一个客户端、一个流媒体适配器和一个目标服务器为例进行说明,在系统增加了客户端和/或目标服务器时,流媒体适配器可根据IP地址和端口号确定进行此次交互的客户端和目标服务器,本发明不再对系统包含多个客户端和/或多个目标服务器的实例进行说明。
图2为本发明流媒体网络交互的系统的结构示意图。现结合图2,对本发明的流媒体网络交互的系统进行说明,具体如下:
本发明的流媒体网络交互的系统包含:客户端20、流媒体适配器21和目标服务器22。其中,流媒体适配器21分别连接客户端20和目标服务器22。
客户端20根据流媒体适配器21的IP地址和端口号,按照第一协议的格式,发送携带目标服务器21的IP地址及端口号的流媒体请求、客户端20的IP地址和端口号至流媒体适配器21,接收流媒体适配器21输出的流媒体文件。
流媒体适配器21根据第一协议的格式确定客户端20所采用的第一协议,利用目标服务器21的IP地址及端口号,通过与目标服务器21的协议适配,确定目标服务器21所采用的第二协议。流媒体适配器21按照第二协议的格式,发送流媒体请求至目标服务器22,按照客户端20的IP地址和端口号,将接收到的流媒体文件按照第一协议的格式发送至客户端20。
其中,流媒体适配器21可根据协议的具体协议描述,确定采用该协议的设备上的流媒体文件的封装方式及编解码方式,比如,根据第一协议确定客户端20上的流媒体文件的封装方式及编解码方式,根据第二协议确定目标服务器22上的流媒体文件的封装方式及编解码方式;第一协议和第二协议为不同类型的传输协议,比如,第一协议为http、ftp、rtsp及rtp协议的其中之一,则第二协议为http、ftp、rtsp及rtp协议中的与第一协议不同的协议。
目标服务器22根据流媒体请求,按照第二协议的格式发送流媒体文件至流媒体适配器21。
本发明的流媒体适配器包括:协议存储模块211、协议适配模块212和流媒体控制模块213。其中,流媒体控制模块213连接客户端20、目标服务器22和协议适配模块212,协议适配模块连接协议存储模块211和目标服务器22。
协议存储模块211用以保存多个支持实时传送流媒体文件的传输协议和多个不支持实时传送流媒体文件的传输协议。其中,支持实时流媒体文件的传输协议可为rtsp或rtp;不支持实时传送流媒体文件的传输协议为http或ftp。
协议适配模块212根据适配指令及第一协议的格式确定第一协议;利用端口号确定一协议,在利用端口号确定的协议成功与目标服务器22进行交互时,选择端口号确定的协议为第二协议,在利用端口号确定的协议未成功与目标服务器22进行交互时,利用协议存储模块211保存的协议与目标服务器22进行交互来确定第二协议;输出携带第一协议和第二协议的适配响应至流媒体控制模块213。其中,协议适配模块212在利用协议存储模块211保存的协议与目标服务器22进行交互来确定第二协议时,协议适配模块212遍历协议存储模块211保存的协议,将与目标服务器22进行成功交互时所采用的协议确定为第二协议;协议适配模块212输出的适配响应中,将客户端20采用的第一协议及目标服务器22采用的第二协议输出至流媒体控制模块213。
流媒体控制模块213接收来自客户端20的流媒体请求,输出适配指令及第一协议的格式至协议适配模块212;根据适配响应,按照第二协议的格式发送流媒体请求至目标服务器22;按照客户端20的IP地址和端口号,将接收到的流媒体文件按照第一协议的格式发送至客户端20。
其中,第一协议和第二协议为支持实时传送流媒体文件的传输协议,或为不支持实时传送流媒体文件的传输协议,比如,第一协议为rtsp,第二协议为rtp,或者第一协议为rtp,第二协议为rtsp,或者第一协议为http,第二协议为ftp,或者第一协议为ftp,第二协议为http,此时,流媒体控制模块213在将来自目标服务器22的流媒体文件发送给客户端20时,仅进行协议格式的转换,不对流媒体文件的进行转码和/或转封装。
为了请求的流媒体文件能够在客户端20上播放,流媒体适配器21还进一步用于根据第一协议和第二协议,对来自目标服务器22的流媒体文件进行格式转换,获取转换后的流媒体文件并发送至客户端20。其中,第一协议为支持实时传送流媒体文件的传输协议,第二协议为不支持实时传送流媒体文件的传输协议,或者第一协议为不支持实时传送流媒体文件的传输协议,第二协议为支持实时传送流媒体文件的传输协议,比如,第一协议为rtsp或rtp,第二协议为ftp或http,或者第一协议为ftp或http,第二协议为rtsp或rtp。
流媒体适配器21进一步包含一流媒体转换模块214。流媒体转换模块214根据格式转换指令,对流媒体文件进行转码和/或转封装,将转换后的流媒体文件输出至流媒体控制模块213。
相应地,流媒体控制模块213进一步在接收到来自目标服务器22的流媒体文件后,根据第一协议和第二协议,输出格式转换指令和来自目标服务器22的流媒体文件至流媒体转换模块214,按照第一协议的格式,发送转换后的流媒体文件至客户端20。
为了保证流媒体适配器21在客户端20和目标服务器22间建立的通讯链路不中断,客户端20按照预设的间隔时间,发送一检测链路状态的请求至流媒体适配器21,流媒体适配器21的流媒体控制模块212根据接收到的检测链路状态的请求,向目标服务器22发送检测链路状态的请求,且在接收到目标服务器22的响应时,向客户端20反馈检测链路状态的响应,以通知客户端20其与目标服务器间的链路未终端。
图3为本发明流媒体网络交互的方法流程图。现结合图3,对本发明流媒体网络交互的方法进行说明,具体如下:
步骤31:客户端发送流媒体请求至流媒体适配器;
该步骤中的流媒体携带有目标服务器22的IP地址和端口号。
在该步骤中,客户端20按照第一协议的格式发送流媒体请求,还进一步发送客户端20的IP地址和端口号至流媒体适配器21。
步骤32:流媒体适配器确定客户端和目标服务器所采用的协议;
流媒体适配器21根据客户端20发送的流媒体请求时采用的第一协议的格式,确定客户段20采用的第一协议。
流媒体适配器21确定目标服务器22所采用的协议的方法包括:步骤321,根据流媒体请求携带的目标服务器22的端口号确定一协议;步骤322,判断采用步骤321中的协议是否能与目标服务器成功进行交互,如果是,则将步骤321中的协议确定为第二协议,否则执行步骤323;步骤323,采用保存的协议与目标服务器22进行交互,并将与目标服务器22成功交互时所采用的协议确定为第二协议。
步骤33:流媒体适配器发送流媒体请求至目标服务器;
流媒体适配器21按照第二协议的格与目标服务器22进行交互。
步骤34:目标服务发送流媒体文件至流媒体适配器;
目标服务器22按照第二协议的格式发送流媒体文件至流媒体适配器21。
步骤35:流媒体适配器发送流媒体文件至客户端;
该步骤中,流媒体适配器21按照第一协议的格式、客户端21的IP地址和端口号,发送流媒体文件至客户端20。
优选地,步骤34与步骤35之间进一步包括:步骤34’,流媒体适配器对流媒体文件进行格式转换。
具体地,流媒体适配器21根据第一协议和第二协议的类型,判断是否需要对流媒体文件进行格式转换,在第一协议和第二协议为支持实时传送流媒体文件的传输协议,或为不支持实时传送流媒体文件的传输协议时,直接执行步骤35,否则对流媒体文件进行格式转换。
其中,对流媒体文件进行格式转换包括:根据第一协议确定客户端支持的封装方式和编解码方式;根据第二协议确定流媒体文件的封装方式和编解码方式;对来自目标服务器的流媒体文件进行转码和/或转封装处理,获得转换后的流媒体文件。
本发明的上述较佳实施例中,流媒体适配器根据与目标服务器的交互,确定目标服务器所采用的协议,根据来自客户端的流媒体请求所采用的协议格式,确定客户端所采用的协议,对客户端与目标服务器间交互的数据和指令进行协议格式的转换,实现采用不同传输协议的客户端和服务器间的流媒体交互;另外,流媒体适配器还进一步根据客户端和目标服务器所支持的流媒体文件的编解码方式和封装方式,对交互的流媒体文件进行格式转换。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。