一种流媒体协议转换系统及其方法

文档序号:7710041阅读:195来源:国知局
专利名称:一种流媒体协议转换系统及其方法
技术领域
本发明涉及一种用流媒体协议转换系统及其方法,更具体地说,涉及一种用于将 RTSP协议转换成mms协议的系统和方法。
背景技术
RTSP和mms是现在网络上应用最广泛的的两大实时流媒体传输协议。RTSP (Real Time Streaming Protocol)实时流传输协议是TCP/IP协议体系中的一个应用层协议,是 为控制实时数据(如音频和视频内容)的传递而专门创建的。由哥伦比亚大学、网景和 RealNetworks公司提交的IETF RFC标准。该协议定义了一对多应用程序如何有效地通过 IP网络传送多媒体数据。RTSP在体系结构上位于SIE和E1£E之上,它使用I£E或RTP完 成数据传输。MMS (Microsoft Media Server Protocol),中文是“微软媒体服务器协议,,,mms 的 最初目的是通过网络传输多媒体广播、视频、音轨、现场直播和一系列的实时或实况材料, 以和rtsp抗衡。MMS建立在UDP或TCP传输/网络层上,也是属于应用层的。使用TCP的 MMS 上 URL 是 MMS // 或者 MMST //,如果是 UDP 的 MMS 使用 MMSU //。但自wmp8开始,mms就逐步变成了现在的协议翻转协议,当使用匪S协议连接 到发布点时,依据服务器发布的具体环境,为客户端选择适用于情况的最佳协议获得稳定 的连接。协议翻转是为了确保客户端享受到最佳的流式播放体验。目前Microsoft在 windows2003服务器版的windows media services已经支持了微软格式的rtsp协议的发 布。目前网络上发布的实况流媒体视频也基本上是属于这两大类别。目前网络视频发布工具主要有两种即HELEX和WMS。HELEX支持rstp流格式的播 放,如real one ;丽S支持mms流格式的播放,如Windows media player。因此现在的视频 播放软件或者只能支持HELEX发布的rstp流格式的数据,或者只能支持WMS发布的mms流 格式的数据,而不存在既能支持HELEX发布的rstp流格式的数据又能支持WMS发布的mms 流格式的数据。

发明内容
为了解决上述传统问题,因此本发明的一个目的就是提出了一种用于将RTSP协 议转换成mms协议的系统及其方法。在一个方面中,提出了一种流媒体协议转换系统,该系统包括读取器,用于接收 来自外部的rtsp流文件并且对该rtsp流文件进行处理以生成干净的视频元数据;生成器, 用于对读取器所生成的干净的视频元数据进行流化以生成mms流数据;以及输出器,用于 输出mms流数据。根据这个方面,其中读取器进一步包括设置模块,用于设置读取器所输出的流的 格式;协议翻转模块,用于对来自外部的rtsp流文件进行预读并进行协议翻转;读写模块, 用于读取协议翻转之后的数据;缓冲模块,用于对读写模块所读取的数据进行缓冲;以及数据剥离模块,用于对缓冲模块中的数据进行剥离处理以生成干净的视频元数据。根据这个方面,其中生成器进一步包括设置模块,用于设置采样方式;缓冲模 块,用于将读取器所处理的数据复制到该缓冲模块中;处理模块,用于根据设置模块设置的 采样方式对复制到缓冲区中的数据进行处理,并且产生asf文件格式的媒体数据,该asf格 式媒体文件以普通的http方式推送出去即是mmst流。在另一个方面中,提出了一种流媒体协议转换方法,该方法包括步骤:A、读取器接 收来自外部的rtsp流文件并且对该rtsp流文件进行处理以生成干净的视频元数据;B、生 成器对读取器所生成的干净的视频元数据进行流化以生成mms流数据;以及C、输出器输出 mms流数据。根据这个方面,其中步骤A进一步包括A1、设置读取器所输出的流的格式;A2、对 来自外部的rtsp流文件进行预读并进行协议翻转;A3、读取协议翻转之后的数据;A4、对所 读取的数据进行缓冲;以及A5、对缓冲的数据进行剥离处理以生成干净的视频元数据。根据这个方面,其中步骤B进一步包括在步骤Al至A5中的任何一个步骤之前或 之后或同时执行步骤B1、设置采样方式。根据这个方面,其中步骤B进一步包括与步骤A5同时执行步骤B2、将读取器所 处理的数据复制到该生成器的缓冲区中;以及B3、根据所设置的采样方式对复制到缓冲模 块中的数据进行处理,并且产生asf文件格式的媒体数据,该asf格式媒体文件以普通的 http方式推送出去即是mmst流。


结合随后的附图,从下面的详细说明中可显而易见的得出本发明的上述及其他目 的、特征及优点。在附图中图1给出了根据本发明的流媒体协议转换系统的方框图;图2给出了根据本发明的流媒体协议转换系统的读取器的具体结构图;图3给出了根据本发明的流媒体协议转换系统的生成器的具体结构图;图4给出了根据本发明的流媒体协议转换方法的流程图。
具体实施例方式在下文中将详细地论述的,本公开可以采用完全硬件的实施例、完全软件的实施 例或包括硬件和软件元件两者的实施例的形式。在优选实施例中,本公开可以用软件来实 施,其可以包括但不局限于固件、驻留软件、微码等等。现在参考附图,对本发明的原理进行详细的说明。 首先,参考图1,对根据本发明的流媒体协议转换系统进行详细的说明。如图1所示,该流媒体协议转换系统包括读取器、生成器、以及输出器。读取器接收来自外部的rtsp流文件并且对该rtsp流文件进行处理以生成干净的 视频元数据。该rtsp流文件可以是通过HELEX提供的,但是rtsp流文件的提供并不局限 于此,而是可以是以任何方式提供的。读取器输出的流是普通的数据流,即就是没有杂夹标 志的流。随后对该读取器进行更详细地描述。生成器对读取器所读取的数据源进行流化以生成mms流数据。随后对该生成器进行更详细地描述。输出器输出生成器所生成的mms流数据。现在,参考图2,对根据本发明的流媒体协议转换系统的读取器进行进一步说明。 如图2所示,该读取器进一步包括设置模块、协议翻转模块、缓冲模块、读写模块、以及数 据剥离模块。此外,更好地是,该读取器还可包括响应模块,该响应模块用于接收缓冲模块 的响应消息。设置模块设置读取器所输出的流的格式,其中读取器输出的流是普通的数据流, 即就是没有杂夹标志的流。此外,优选的是,设置模块还可以设置源路径以及流的号码等寸。协议翻转模块进行预读并进行协议翻转以可将rtsp协议的数据下载下来,自动 选择相应的协议来连接。该协议翻转模块包括对象open函数,对象open函数是为本领域普 通技术人员所熟知的函数。具体地说,将输入的rtsp协议名称改成mms,当对象open函数 打开mms协议地址时就会触发对象open函数进行协议翻转,即当使用MMS协议连接到发布 点时,依据服务器发布的具体环境,为客户端选择适用于情况的最佳协议获得稳定的连接。 协议翻转是为了确保获得最佳的流式连接。需要说明是,在协议翻转模块中仅仅是将rtsp 协议的协议头改为mms,因此此时的数据并不是实际意义上的mms数据流。由于在现有技术 中Windows media player是不能将rtsp协议的数据下载到本地的,因此通过将rtsp协议 头改为mms,就可将rtsp的数据下载下来。读写模块读取进行协议翻转之后的数据,并且将所读取的数据写入到缓冲模块 中,开始整个读写网络流过程。缓冲模块对读写模块所读取的数据进行缓冲。该缓冲模块可以具有事先分配好 的固定大小的本地缓冲区,但是本发明并不局限于此,该缓冲模块也可以动态地创建本地 缓冲区,其中缓冲区的大小是与所读取的视频源质量、大小、以及码率有关,并不是固定不 变的,但是对于一个视频源而言,在整个处理过程中是固定不变的。当开始创建本地缓冲区 时,向响应模块发送WMT_BUFFERING_START消息。当对输入的视频源数据处理完成之后,缓 冲模块释放所创建的缓冲区。然而,不管缓冲区是事先分配好的还是动态分配的,但是对于 一个视频源而言,由于在整个处理过程中缓冲模块的缓冲区是固定不变的并且是可反复写 入的,因此在读写模块的读写过程中,当本地缓冲区第一次写满时,缓冲模块向响应模块发 送WMT_BUFFERING_ST0P消息,这说明流的读取已经进入正常状态。当缓冲区写满后,读写 模块按照先进先出方式继续将数据写入到缓冲区中。数据剥离模块对读写模块写入到本地缓冲区中的数据进行剥离处理以生成干净 的视频元数据。具体地说,数据剥离模块对本地缓冲区中的数据进行回调处理,即对本地缓 冲区中的数据进行解压或解码,根据设置模块的设置来对数据进行剥离,去除数据中表征 rtsp特征的信息头、标识位,剩余干净的视频元数据,并按照一定采样方式重新产生数据 流。此外,更好地是,该数据剥离模块包括回调函数OnSample或者函数Or^treamSample以 实现对数据的解压或解码,其中回调函数OnSample对本地缓冲区中的数据进行处理以生 成非压缩的数据流,或通过函数Or^treamSample对本地缓冲区中的数据进行处理以生成 压缩的数据流。当然,对于本领域普通技术人员来说,本发明并不局限于回调函数OnSample 或者函数Or^treamSample,而是可采用任何对数据进行解压或解码的适当技术。
现在,参考图3,对根据本发明的流媒体协议转换系统的生成器进行进一步说明。 如图3所示,该生成器进一步包括设置模块、缓冲模块、以及处理模块。设置模块设置采样方式,并且更好地是,设置模块还设置网络连接传输协议和端□。缓冲模块将数据剥离模块所处理的数据复制到该缓冲区中,这时的数据仍是干净 的视频元数据。与上述一样,该缓冲模块可以具有事先分配好的固定大小的缓冲区,但是本 发明并不局限于此,该缓冲模块也可以动态地开辟缓冲区。处理模块根据设置模块设置的采样方式对复制到缓冲区中的数据进行采样,对 复制到缓冲区中的数据进行加压,加码,并且产生asf文件格式的媒体数据。也就是说, 处理模块对干净的视频元数据进行一系列的处理,从而产生asf格式的数据。该asf格 式媒体文件以普通的http方式推送出去即是mmst流。此外,更好地是,该处理模块包括 对象BeginWriting函数。当然,对于本领域普通技术人员来说,本发明并不局限于对象 Beginffriting函数,而是可采用任何的适当技术,只要它可实现对干净的视频元数据进行 一系列处理以产生asf流数据这样的功能。接下来,参考图4,对根据本发明的流媒体协议转换方法进行详细的说明。图4给 出了根据本发明的流媒体协议转换方法的流程图。如图4所示,根据本发明的流媒体协议转换方法包括步骤首先,在步骤A中,读取器的设置模块设置读取器所输出的流的格式。如上所述, 读取器输出的流是普通的数据流,即就是没有杂夹标志的流。在步骤B中,生成器的设置模块设置采样方式,并且更好地是,设置模块还设置网 络连接传输协议和端口。在步骤C中,读取器的协议翻转模块进行预读并进行协议翻转以可将rtsp协议的 数据下载下来,自动选择相应的协议来连接。该协议翻转模块包括对象open函数。具体地 说,将输入的rtsp协议名称改成mms,当对象open函数打开mms协议地址时就会触发对象 open函数进行协议翻转,即当使用MMS协议连接到发布点时,依据服务器发布的具体环境, 为客户端选择适用于情况的最佳协议获得稳定的连接。协议翻转是为了确保获得最佳的流 式连接。需要说明是,在协议翻转模块中仅仅是将rtsp协议的协议头改为mms,因此此时的 数据并不是实际意义上的mms数据流。在步骤D中,读取器的读写模块读取协议翻转之后的数据,并且将所读取的数据 写入到缓冲模块的本地缓冲区中以进行缓冲,开始整个读写网络流过程。由于本地缓冲区 是固定大小的并且是可反复写入的,因此在读写模块的读写过程中,当本地缓冲区第一次 写满时,缓冲模块向响应模块发送WMT_BUFFERING_STOP消息,这说明流的读取已经进入正 常状态。当缓冲区写满后,读写模块按照先进先出方式继续将数据写入到本地缓冲区中。在步骤E中,读取器的数据剥离模块对写入到本地缓冲区中的数据进行剥离处 理以生成干净的视频元数据。具体地说,数据剥离模块对缓冲区中的数据进行回调处理, 即对本地缓冲区中的数据进行解压或解码,根据设置模块的设置来对数据进行剥离,去 除数据中表征rtsp特征的信息头、标识位,剩余干净的视频元数据,并按照一定采样方 式重新产生数据流。此外,更好地是,该数据剥离模块包括回调函数OnSample或者函数 OnStreamSample以实现对数据的解压或解码,其中回调函数OnSample对本地缓冲区中的数据进行处理以生成非压缩的数据流,或通过函数Or^treamSample对本地缓冲区中的数 据进行处理以生成压缩的数据流。当然,对于本领域普通技术人员来说,本发明并不局限于 回调函数OnSample或者函数Or^treamSample,而是可采用任何对数据进行解压或解码的 适当技术。在步骤F中,将数据剥离模块所处理的数据复制到生成器的缓冲模块的缓冲区 中,这时的数据仍是干净的视频元数据。在步骤G中,生成器的处理模块根据设置模块设置的采样方式对复制到缓冲区中 的数据进行采样,对复制到缓冲区中的数据进行加压,加码,并且产生asf文件格式的媒体 数据。也就是说,处理模块对干净的视频元数据进行一系列的处理,从而产生asf式的数 据。该asf格式媒体文件以普通的http方式推送出去即是mmst流。应该注意的是,步骤F 和G是与步骤E同步进行的,也就是说,只要数据剥离模块剥离出干净的视频元数据,就将 干净的视频元数据复制到生成器的缓冲区中并且同时由处理模块进行处理,即一边剥离一 边处理。在步骤H中,输出器输出mms流数据。应该注意的是,步骤B可以在步骤A至E中的任何一个步骤之前或之后执行,也可 以与步骤A至E中的任何一个同时执行。对于本领域的普通技术人员来说可显而易见的得出其他优点和修改。因此,具有 更广方面的本发明并不局限于这里所示出的并且所描述的具体说明及示例性实施例。因 此,在不脱离由随后权利要求及其等价体所定义的一般发明构思的精神和范围的情况下, 可对其做出各种修改。
权利要求
1.一种流媒体协议转换系统,该系统包括读取器,用于接收来自外部的rtsp流文件并且对该rtsp流文件进行处理以生成干净 的视频元数据;生成器,用于对读取器所生成的干净的视频元数据进行流化以生成mms流数据;以及 输出器,用于输出mms流数据。
2.根据权利要求1的流媒体协议转换系统,其中读取器进一步包括 设置模块,用于设置读取器所输出的流的格式;协议翻转模块,用于对来自外部的rtsp流文件进行预读并进行协议翻转; 读写模块,用于读取协议翻转之后的数据; 缓冲模块,用于对读写模块所读取的数据进行缓冲;数据剥离模块,用于对缓冲模块中的数据进行剥离处理以生成干净的视频元数据。
3.根据权利要求1的流媒体协议转换系统,其中生成器进一步包括 设置模块,用于设置采样方式;缓冲模块,用于将读取器所处理的数据复制到该缓冲模块中; 处理模块,用于根据设置模块设置的采样方式对复制到缓冲区中的数据进行处理,并 且产生asf文件格式的媒体数据,该asf格式媒体文件以普通的http方式推送出去即是 mmst 流。
4.一种流媒体协议转换方法,该系统包括步骤A、读取器接收来自外部的rtsp流文件并且对该rtsp流文件进行处理以生成干净的视 频元数据;B、生成器对读取器所生成的干净的视频元数据进行流化以生成mms流数据;以及C、输出器输出mms流数据。
5.根据权利要求4的流媒体协议转换方法,其中步骤A进一步包括 Al、设置读取器所输出的流的格式;A2、对来自外部的rtsp流文件进行预读并进行协议翻转; A3、读取协议翻转之后的数据; A4、对所读取的数据进行缓冲;A5、对缓冲的数据进行剥离处理以生成干净的视频元数据。
6.根据权利要求5的流媒体协议转换方法,其中步骤B进一步包括 在步骤Al至A5中的任何一个步骤之前或之后或同时执行步骤 Bi、设置采样方式;
7.根据权利要求6的流媒体协议转换方法,其中步骤B进一步包括与步骤A5同时执行步骤B2、将读取器所处理的数据复制到该生成器的缓冲区中;以 及B3、根据所设置的采样方式对复制到缓冲模块中的数据进行处理,并且产生asf文件格 式的媒体数据,该asf格式媒体文件以普通的http方式推送出去即是mmst流。
全文摘要
一种流媒体协议转换系统及其方法,该系统包括读取器,用于接收来自外部的rtsp流文件并且对该rtsp流文件进行处理以生成干净的视频元数据;生成器,用于对读取器所生成的干净的视频元数据进行流化以生成mms流数据;以及输出器,用于输出mms流数据。
文档编号H04L29/06GK102082761SQ200910153929
公开日2011年6月1日 申请日期2009年11月27日 优先权日2009年11月27日
发明者叶挺群, 袁江, 邢小良, 黄炜 申请人:浙江省公众信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1