基于文件的动态影像网络直播方法

文档序号:6602828阅读:180来源:国知局
专利名称:基于文件的动态影像网络直播方法
技术领域
本发明涉及动态影像网络直播技术,具体涉及由电视调谐器(timer)、监控摄像 头、摄像机等设备所捕捉的实时变化的动态影像、或者由录制文件如DVD所保存的动态影 像在网络上直播的方法。
背景技术
互联网的迅猛发展和普及为流媒体业务发展提供了强大的市场动力,流媒体业务 正变得日益流行。目前,流媒体技术广泛应用于多媒体新闻发布、在线直播、网络广告、电子 商务、视频点播、远程教育、远程医疗、网络电台、实时视频会议等互联网信息服务的方方面 面。流媒体技术的应用为网络信息交流带来革命性的变化,提高了社会交流的效率和质量, 其中较为常见的是动态影像网络直播技术。目前动态影像网络直播技术的实现大致分为两种。一种是使用硬件编码器和流媒 体服务器。这种方法比较昂贵,而且也不灵活。因为流媒体服务器是一个很大的软件,需要 占用较多的内存和CPU,这就增加了硬件成本;而硬件编码器通常限定输出格式类型、编码 方法等。另外一种是使用指定的软件编码器和流媒体服务器。这种方法由于流媒体服务器 的采用,因而同前一种方法一样,实现的费用昂贵。另外,上述两种方法通常都受限于所支 持的协议类型,客户端也需要支持相同的协议。这就限制了动态影像网络直播技术的广泛 使用。因此有必要提供一种改进的动态影像网络直播方法来克服现有技术的缺陷。

发明内容
本发明的目的是提供一种基于文件的动态影像网络直播方法,实现时费用较低, 并且不受协议类型的影响。为了实现上述目的,本发明提供了一种基于文件的动态影像网络直播方法,包括 如下步骤浏览器通过超文本传输协议发送请求,以请求观看某个频道或某个设备上的动 态影像;当Web服务器判断所述客户端请求为请求观看某个频道或某个设备上的动态影像 并且所述客户端请求的内容合法时,编码器对视频设备或者录制文件进行编码输出,CGI可 执行程序或脚本向浏览器发送包含各个编码输出文件信息的播放列表文件URL的报文;当 所述浏览器判断所述报文内容为播放列表文件URL地址时,在页面上嵌入播放器插件,准 备播放编码输出文件,并向Web服务器发送请求发送编码输出文件的发送文件请求;Web服 务器根据所述发送文件请求发送编码输出文件;浏览器中的播放器插件播放所述编码输出 文件。在本发明的一个实施例中,所述浏览器发送的客户端请求包含请求获得指定显示 格式、指定音频和视频格式、指定波特率的直播节目视频数据信息,则,所述编码器对视频 设备进行编码输出的步骤具体为所述编码器根据套接字报文中指定的显示格式、音频和 视频格式、波特率,对视频设备或录制文件进行编码输出。
在本发明的另一实施例中,所述浏览器向Web服务器发送请求发送编码输出文件 的发送文件请求之后,还包括步骤所述Web服务器向所述浏览器发送大容量通知报文, 所述大容量通知报文包括将要发送的编码输出文件为大容量的信息,则,所述Web服务器 根据所述发送文件请求发送编码输出文件的步骤具体为,所述Web服务器不断发送编码 输出文件则,所述浏览器中的播放插件播放所述编码输出文件的步骤具体为所述浏览器 持续接收所述Web服务器发送的编码输出文件的数据流,所述播放器持续播放编码输出文 件。 在本发明的再一实施例中,所述编码器对视频设备进行编码输出的步骤具体为 所述编码器以预定的编码时长或预定输出文件大小为单位对视频设备或者录制文件进行 编码输出。在本发明的又一实施例中,所述CGI可执行程序或脚本向浏览器发送包含各个编 码输出文件信息的播放列表文件URL的报文的步骤具体为对应各个编码输出文件创建通 过外网访问的各个URL;新建一个文件,在所述文件中依次写入所述通过外网访问各个编 码输出文件的各个URL ;对应所述文件创建通过外网访问的URL ;向浏览器发送包含所述 文件的报文,则,所述浏览器向Web服务器发送请求发送编码输出文件的发送文件请求的 步骤具体为播放器插件在播放所述文件时,根据所述文件中记录的各个编码输出文件的 URL,发送请求发送编码输出文件的发送文件请求以获取实际编码输出文件,则,所述Web 服务器根据所述发送请求文件请求发送编码输出文件的步骤具体为Web服务器依次发送 实际编码输出文件,则,所述浏览器中的播放器插件播放所述编码输出文件的步骤具体为 浏览器接收所述实际编码输出文件,播放器插件依次播放所述实际编码输出文件。在本发明的再一实施例中,所述播放器插件依次播放各个编码输出文件的步骤具 体为所述播放器插件播放当前编码输出文件时,Web服务器删掉服务器上存储的上一个 编码输出文件。在本发明的又一实施例中,所述方法还包括步骤当所述Web服务器收到所述浏 览器发送的停止播放请求或者在指定时间内浏览器未接收已发送的编码输出文件的数据 包时,所述编码器停止编码输出,删掉暂存的编码输出文件。与现有技术相比,本发明采用播放文件的方式来实现实时内容的播放,采用标准 的Web服务器来发送文件,并利用超文本传输协议(HTTP)在客户端与服务器端之间进行数 据传输,实现动态影像的网络直播。本方法中标准的Web服务器费用较少,并且客户端与服 务器端之间不需要其他特殊协议,不受协议类型的影响。另外,本实施例也可以在不增加任 何成本的前提下,扩充新的格式和编码器。


图1为本发明基于文件的动态影像网络直播方法的流程图。
具体实施例方式现在参考附图描述本发明的实施例,附图中类似的元件标号代表类似的元件。本方法的实现是建立在服务器端和客户端组成的系统架构上。所述服务器端的 硬件部分包括电视调谐器(timer)、摄像头或摄像机、普通X86个人电脑。将电视调谐器(timer)、摄像头或摄像机等在普通X86个人电脑主机上连接好。所述电视调谐器(timer) 的作用是提供标准电视接收功能。所述摄像头或摄像机的作用是对其摄程范围内的的人或 者物体进行监视或进行图像捕捉。选用X86个人电脑主机是由于根据用户所要求的视频输 出格式和视频质量很容易更换内存和CPU,增加了硬件选配的灵活性。这样,本发明可以对 电视调谐器(timer)、监控摄像头、摄像机等设备所捕捉的实时变化的动态影像在服务器端 进行编码,进而在客户端进行直播。另外,所述X86个人电脑中设置有录制文件,如DVD,这 样,本发明可以对录制文件所保存的动态影像在服务器端进行编码,进而在客户端进行直 播。所述服务器端的软件部分包括++TV软件1.0、软件编码器。其中++TV软件1.0包含 了本发明中所描述的Web服务器、CGI可执行程序或脚本、编码服务监听。所述客户端的硬 件部分包括具有上网功能的普通个人电脑或终端。所述客户端的软件部分包括浏览器。由 于浏览器是具有上网功能的普通个人电脑或终端的一个必不可少的软件,所以本实施例无 需额外安装任何软件。结合图1,本实施例基于文件的动态影像网络直播方法的步骤具体为步骤Si,客户端的浏览器通过超文本传输协议(HTTP)向Web服务器发送请求,以 请求观看某个频道或某个设备上的动态影像,所述请求内容包含请求获得指定显示格式、 指定音频和视频格式、指定波特率的直播节目视频数据信息;步骤S2,服务器端的Web服务器接收所述请求,并对所述请求进行解析,判断解 析的结果是否为观看某个频道或某个设备上的动态影像的请求,如果是,继续下一步,如果 否,转步骤S4 ;步骤S3,Web服务器记录所述请求的内容,并通过通用网关接口(CGI)标准调用服 务器端的CGI可执行程序或脚本,转步骤S5 ;步骤S4, Web服务器判断解析的结果是否为请求发送编码输出文件的发送文件请 求,如果是,转步骤S17 ;如果否,则向浏览器发送错误信息,结束。步骤S5,CGI可执行程序或脚本对所述请求的内容进行解析,判断所述请求的内 容是否合法,如果是,继续下一步,如果否,转步骤S7 ;步骤S6,CGI可执行程序或脚本通过套接字(socket)与服务器端的编码服务监 听建立连接,并通过套接字向编码服务监听发送包含所述请求内容的套接字报文,转步骤 S8 ;步骤S7,CGI可执行程序或脚本向浏览器发送错误信息,结束;步骤S8,编码服务监听接收套接字报文,并对所述套接字报文进行解析,判断所述 套接字报文是否合法,如果是,继续下一步,如果否,转步骤SlO ;步骤S9,编码服务监听调用服务器端的编码器(encoder),编码器根据套接字报 文中指定的显示格式、音频和视频格式、波特率,对视频设备或者录制文件(电视调谐器 (tuner)、摄像头或摄像机、录制文件如DVD)进行实时编码输出,此时,编码服务监听向CGI 可执行程序或脚本发送包含编码输出文件名(如tv. l.wmv)的报文,转步骤Sll ;步骤S10,编码服务监听向CGI可执行程序或脚本发送失败响应报文,CGI可执行 程序或脚本收到报文后,向客户端的浏览器发送错误信息,结束;步骤Sll,CGI可执行程序或脚本接收所述包含编码输出文件名的报文后,对所述 包含编码输出文件名的报文进行解析,判断解析是否成功,如果是,继续下一步,如果否,转步骤S13 ; 步骤S12,CGI可执行程序或脚本创建一个播放列表文件(如tv. asx),所述播 放列表文件包含所述CGI可执行程序或脚本接收的报文中的实际编码输出文件名(如 tv. 1. wmv, tv. 2. wmv, tv. 3. wmv. · ·)的URL, CGI可执行程序或脚本向浏览器发送包含所述 播放列表文件名URL(如http://59. 174. 46. 120/tv. asx)的报文,转步骤S14 ;步骤S13,CGI可执行程序或脚本向客户端的浏览器发送错误信息,结束;步骤S14,浏览器接收所述包含所述播放列表文件名URL的报文,并对所述包含所 述播放列表文件名URL的报文进行解析,判断所述包含所述播放列表文件名URL的报文内 容是否为编码输出文件URL地址,如果是,继续下一步,如果否,转步骤S16 ;步骤S15,在浏览器页面上嵌入播放器插件,准备播放Web服务器上的编码输出文 件,浏览器通过超文本传输协议发送请求发送编码输出文件(如tv. l.wmv)的发送文件请 求,转步骤S17 ;步骤S16,浏览器将所收到的报文内容显示到显示区,结束;步骤S17, Web服务器接收所述发送文件请求后,发送编码输出文件;步骤S18,浏览器接收所述编码输出文件后,浏览器中的播放器插件播放所述编码 输出文件,结束。由上可以看出,本实施例采用B/S^rower/Server,浏览器/服务器)通信模式,能 实现将电视、直播监控摄像头、摄像机等设备捕捉的动态影像在网络上直播。也可以远程观 看DVD、录制文件等等。另外,本实施例采用播放文件的方式来实现实时内容的播放,采用标准的Web服 务器来发送文件,并利用超文本传输协议(HTTP)在客户端与服务器端之间进行数据传输, 实现动态影像的网络直播。本方法中标准的Web服务器费用较少,并且客户端与服务器端 之间不需要其他特殊协议,不受协议类型的影响。另外,本实施例也可以在不增加任何成本 的前提下,扩充新的格式和编码器。在步骤S17中,Web服务器接收所述发送文件请求后,发送实际编码输出文件之 前,还包括步骤Web服务器向浏览器发送大容量通知报文,所述大容量通知报文包括将要发送的 编码输出文件为大容量(例如4G大小)的信息(此时,浏览器收到Web服务器通知的编码 输出文件是大容量信息后,浏览器则会等待接收大容量文件),贝丨J,所述步骤S18具体为所述浏览器持续接收所述Web服务器发送的编码输出文件的数据流,所述播放器 持续播放所述编码输出文件。由上可以看出,由于实际编码输出文件大小是实时增长的,Web服务器通知浏览器 文件大小时,不告诉浏览器编码输出文件(tv. l.wmv)的实际大小,而是通知浏览器将要发 送的编码输出文件是超大容量的,因而浏览器不断接收编码输出文件数据流,播放器插件 持续播放所接收到的数据流。因此,本实施例利用超大文件通知技术来支持基于文件的视 频内容实时流化。在步骤S9中,所述编码器对视频设备进行编码输出的步骤具体为所述编码器以预定的编码时长(如30分钟)或预定输出文件大小(如200M)为单位对视频设备进行编码输出。具体地,编码时,编码时长达到预定时长或编码输出文件达 到预定大小时,编码器终止编码输出文件tv. 1. wmv,重新开始编码输出文件tv. 2. wmv,当 编码输出文件tv. 2. wmv达到预定时长或编码输出文件tv. 2. wmv达到预定大小时,终止编 码输出文件tv. 2. wmv,重新开始编码输出文件tv. 3. wmv直到编码达到预定时长或预定大 小,依次类推;在步骤S12中,CGI可执行程序或脚本生成并发送包含编码输出文件名的报文的 步骤具体为对应各个编码输出文件(如编码输出文件tv. 1. wmv、编码输出文件tv. 2. wmv、编 码输出文件tv. 3.wmv等)创建通过外网访问的各个URL ;新建一个文件(如tv. asx),在所述文件中依次写入所述通过外网访问各个编码 输出文件的各个URL;对应所述文件(tv. asx)创建通过外网访问的URL ;向浏览器发送包含所述文件的URL的报文,则,所述步骤S15中浏览器通过超文本传输协议发送请求发送编码输出文件的发 送文件请求具体为播放器插件在播放文件(tv. asx)时,发现该文件中记录的是一个文件列表,根据 文件(tv.asx)中记录的各个编码输出文件的URL,发送请求发送编码输出文件的发送文件 请求以获取实际编码输出文件tv. 1. wmv、编码输出文件tv. 2. wmv、编码输出文件tv. 3. wm
寸,则,步骤S17中Web服务器发送编码输出文件的步骤具体为Web服务器依次发送实际编码输出文件tv. 1. wmv、编码输出文件tv. 2. wmv、编码 输出文件tv. 3. wmv等。贝U,步骤S18具体为浏览器接收编码输出文件tv. 1. wmv、编码输出文件tv. 2. wmv、编码输出文件 tv. 3. wmv等,在浏览器接收编码输出文件的同时,播放器插件依次播放编码输出文件 tv. 1. wmv、编码输出文件tv. 2. wmv、编码输出文件tv. 3. wmv等;播放器插件播放当前编码输出文件时,Web服务器会删掉服务器上存储的上一个 编码输出文件。例如当播放器开始播放编码输出文件tv. 2. wmv时,编码输出文件tv. 1. wmv 将会删掉;当播放器开始播放编码输出文件tv. 3. wmv时,编码输出文件tv. 2. wmv将会删掉 依次类推,以节省服务器有限的存储空间。本实施例还包括步骤当服务器端收到浏览器发送的停止播放请求或者在指定时间内浏览器未接收已 发送的编码输出文件的数据包时,所述编码器停止编码输出,删掉暂存的编码输出文件。在本实施例中,在客户端的浏览器上输入URL,如http //59. 174. 46. 120/ cgi-bin/tvview ? id = 013&size = 360 X 400&vbitrate = 400,客户端浏览器艮口 向Web服务器(59.174.46.120)发送观看电视频道13、视频大小为360X400、波特率 为400的请求,Web服务器(如59. 174. 46. 120)收到客户端合法请求后,就会调用编 码器对电视频道13进行编码,然后将包含各个实际编码输出文件信息的文件tv. asx 的URL(如http://59. 174. 46. 120/tv. asx)发送给浏览器。客户端浏览器收到文件(http://59. 174.46. 120/tv. asx) URL后,就会在浏览器页面上嵌入播放器插件,并让播放器插件开始播放文件(http://59. 174.46. 120/tv. asx),播放器插件播放文 件tv. asx时就会依次请求服务器发送tv. asx中记录的各个实际编码输出文件(如 http://59. 174. 46. 120/tv. 1. wmv, http://59. 174. 46. 120/tv. 2. wmv...),服务器收到发 送文件请求后,首先通知浏览器该文件是超大容量的,然后不断的向浏览器发送文件(如 http://59. 174. 46. 120/tv. 1. wmv)数据包,浏览器一边接收数据包一边使用播放器插件进 行播放。这样就可在浏览器上看到直播内容。 以上结合最佳实施例对本发明进行了描述,但本发明并不局限于以上揭示的实施 例,而应当涵盖各种根据本发明的本质进行的修改、等效组合。
权利要求
一种基于文件的动态影像网络直播方法,包括如下步骤浏览器通过超文本传输协议发送请求,以请求观看某个频道或某个设备上的动态影像;当Web服务器判断所述请求为请求观看某个频道或某个设备上的动态影像并且所述请求的内容合法时,编码器对视频设备或者录制文件进行编码输出,CGI可执行程序或脚本向浏览器发送包含各个编码输出文件信息的播放列表文件URL的报文;当所述浏览器判断所述报文内容为播放列表文件URL地址时,在页面上嵌入播放器插件,准备播放编码输出文件,并向Web服务器发送请求发送编码输出文件的发送文件请求;Web服务器根据所述发送文件请求发送编码输出文件;浏览器中的播放器插件播放所述编码输出文件。
2.如权利要求1所述的基于文件的动态影像网络直播方法,其特征在于,所述浏览器 发送的请求包含请求获得指定显示格式、指定音频和视频格式、指定波特率的直播节目视 频数据信息,则,所述编码器对视频设备进行编码输出的步骤具体为所述编码器根据套接字报文中指定的显示格式、音频和视频格式、波特率,对视频设备 或录制文件进行编码输出。
3.如权利要求1所述的基于文件的动态影像网络直播方法,其特征在于,所述浏览器 向Web服务器发送请求发送编码输出文件后,还包括步骤所述Web服务器向所述浏览器发送大容量通知报文,所述大容量通知报文包括将要发 送的编码输出文件为大容量的信息,则,所述Web服务器根据所述发送文件请求发送编码输出文件的步骤具体为 所述Web服务器不断发送编码输出文件,则,所述浏览器中的播放器插件播放所述编码输出文件的步骤具体为 所述浏览器持续接收所述Web服务器发送的编码输出文件的数据流,所述播放器持续 播放编码输出文件。
4.如权利要求1所述的基于文件的动态影像网络直播方法,其特征在于,所述编码器 对视频设备进行编码输出的步骤具体为所述编码器以预定的编码时长或预定输出文件大小为单位对视频设备或者录制文件 进行编码输出。
5.如权利要求4所述的基于文件的动态影像网络直播方法,其特征在于,所述CGI可执 行程序或脚本向浏览器发送包含各个编码输出文件信息的播放列表文件URL的报文的步 骤具体为对应各个编码输出文件创建通过外网访问的各个URL ;新建一个文件,在所述文件中依次写入所述通过外网访问各个编码输出文件的各个 URL ;以及对应所述文件创建通过外网访问的URL ;以及 向所述浏览器发送包含所述文件的URL的报文,则,所述浏览器向Web服务器发送请求发送编码输出文件的发送文件请求的步骤具体为所述播放器插件在播放所述文件时,根据所述文件中记录的各个编码输出文件的URL, 发送请求发送编码输出文件的发送文件请求以获取实际编码输出文件,则,所述Web服务器根据所述发送文件请求发送编码输出文件的步骤具体为 Web服务器依次发送实际编码输出文件,则,所述浏览器中的播放器插件播放所述编码输出文件的步骤具体为 所述浏览器接收实际编码输出文件,所述播放器插件依次播放实际编码输出文件。
6.如权利要求5所述的基于文件的动态影像网络直播方法,其特征在于,所述播放器 插件依次播放各个编码输出文件的步骤具体为所述播放器插件播放当前编码输出文件时,Web服务器删掉服务器上存储的上一个编 码输出文件。
7.如权利要求5所述的基于文件的动态影像网络直播方法,其特征在于,还包括步骤 当所述Web服务器收到所述浏览器发送的停止播放请求或者在指定时间内浏览器未接收已发送的编码输出文件数据包时,所述编码器停止编码输出,删掉暂存的编码输出文 件。
全文摘要
本发明公开了一种基于文件的动态影像网络直播方法,主要包括当浏览器通过超文本传输协议发送的请求为请求观看某个频道或某个设备上的动态影像并且请求的内容合法时,服务器端编码器开始对视频设备或者录制文件进行编码输出,CGI可执行程序或脚本发送包含各个编码输出文件信息的播放列表文件URL的报文,浏览器解析该报文,当解析的结果为编码输出文件URL地址时,浏览器在页面上嵌入播放器插件,准备播放编码输出文件,并发送请求发送编码输出文件的发送文件请求;Web服务器根据发送文件请求发送编码输出文件,播放器插件播放编码输出文件。本方法使用标准的Web服务器并利用超文本传输协议进行数据传输,因而实现的费用较低,通信过程不受协议的局限。
文档编号G06F17/30GK101848367SQ201010179110
公开日2010年9月29日 申请日期2010年5月14日 优先权日2010年5月14日
发明者黄晓麟 申请人:武汉宽信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1