发明内容
本发明的主要目的在于提供一种分布式文件系统中流媒体读取方法及服务器,旨在提高视频数据的传输效率。
为实现上述目的,本发明提供的一种分布式文件系统中流媒体读取方法,所述流媒体读取方法包括如下步骤:
接收客户端发出的观看视频的请求,并根据所述观看视频的请求发回获准观看视频的响应至所述客户端;
获取视频源发出的视频数据,并将所述视频数据发送至所述客户端;所述视频源为全部视频源中部分预先已建立映射关系的视频源。
优选地,所述接收客户端发出的观看视频的请求,并根据所述观看视频的请求发回获准观看视频的响应至所述客户端之前还包括:
与所述视频源进行交互;
启动UDP端口准备接收所述视频源发出的所述视频数据。
优选地,所述获取视频源发出的视频数据之后还包括:
将从所述视频源获取到的所述视频数据存储至后台。
优选地,所述获取视频源发出的视频数据具体包括:
获取所述视频源发出的第一视频数据;
发出包括第一网络状态的响应至所述视频源;所述第一网络状态为与所述视频源连接的网络状态;
获取所述视频源在发出第一视频数据的预设时间后发出的第二视频数据;所述第二视频数据是所述视频源根据所述第一网络状态对视频数据的大小进行调整后发出的所述视频数据。
优选地,所述将所述视频数据发送至所述客户端具体包括:
将从所述视频源获取到的第三视频数据发送给所述客户端;
接收所述客户端发出的包括第二网络状态的响应;所述第二网络状态为与所述客户端连接的网络状态;
在发出所述第三视频数据的预设时间后发出第四视频数据;所述第四视频数据是根据所述第二网络状态对视频数据的大小进行调整后发出的所述视频数据。
本发明还提供分布式文件系统中流媒体服务器,所述分布式文件系统中流媒体服务器包括第一接收模块、第一发送模块、获取模块和第二发送模块,其中:
所述第一接收模块,用于接收客户端发出的观看视频的请求;
所述第一发送模块,用于根据所述观看视频的请求发回获准观看视频的响应至所述客户端;
获取模块,用于获取视频源发出的视频数据;所述视频源为全部视频源中部分预先已建立映射关系的视频源;
第二发送模块,用于将所述视频数据发送至所述客户端。
优选地,所述分布式文件系统中流媒体服务器还包括交互模块和启动模块,其中:
所述交互模块,用于与所述视频源进行交互;
所述启动模块,用于启动UDP端口准备接收所述视频源发出的所述视频数据。
优选地,所述分布式文件系统中流媒体服务器还包括:
存储模块,用于将从所述视频源获取到的所述视频数据存储至后台。
优选地,所述获取模块包括第一获取单元、第一发送单元和第二获取单元,其中:
所述第一获取单元,用于获取所述视频源发出的第一视频数据;
所述第一发送单元,用于发出包括第一网络状态的响应至所述视频源;所述第一网络状态为与所述视频源连接的网络状态;
所述第二获取单元,用于获取所述视频源在发出第一视频数据的预设时间后发出的第二视频数据;所述第二视频数据是所述视频源根据所述第一网络状态对视频数据的大小进行调整后发出的所述视频数据。
优选地,所述第二发送模块包括第二发送单元和接收单元,其中:
所述第二发送单元,用于将从所述视频源获取到的第三视频数据发送给所述客户端;
所述接收单元,用于接收所述客户端发出的包括第二网络状态的响应;所述第二网络状态为与所述客户端连接的网络状态;
所述第三发送单元,用于在发出所述第三视频数据的预设时间后发出第四视频数据;所述第四视频数据是根据所述第二网络状态对视频数据的大小进行调整后发出的所述视频数据。
本发明通过对流媒体的项目规模配置相应的数量的流媒体服务器,将视频源均衡的与多个独立网络的所述流媒体服务器建立映射关系,避免在网络带宽不稳定的情况下,整个流媒体的视频数据仅通过一个视频监视器传输,而严重影响视频传输效率的问题;此外,通过实时响应视频源与流媒体服务器、流媒体服务器与客户端之间的网络状态,可以对应调整视频数据的大小,进一步提高了整个项目的视频传输效率。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种分布式文件系统中流媒体读取方法,请参照图1,在一实施例中,该分布式文件系统中流媒体读取方法包括:
步骤S10,接收客户端发出的观看视频的请求,并根据所述观看视频的请求发回获准观看视频的响应至所述客户端;
当用户需要观看视频源的实时监控视频时,通过客户端发出观看视频的请求,流媒体服务器接受请求后根据客户端的状态判断是否允许其观看,在允许观看的情况下,向所述客户端发回允许观看的响应,具体的,返回值为200。
步骤S20,获取视频源发出的视频数据,并将所述视频数据发送至所述客户端;所述视频源为全部视频源中部分预先已建立映射关系的视频源。
流媒体的传输的实现需要缓存。因为Internet以分组传输为基础进行断续的异步传输,对一个实时的A/V源或存储的A/V文件。在传输中它们要被分解为许多的分组,由于网络是动态变化的,各个分组选择的路由可能不尽相同,故到达客户端的时间延迟也就不等,甚至先发的数据分组有可能后到。为此,使用缓存系统来弥补延迟和抖动的影响,并保证分组的顺序正确,从而使媒体数据能连续输出,而不会因为网络暂时拥塞使播放出现停顿。在流媒体传输中,使用RTP/UDP和RTSP/TCP两种不同的通信协议与A/V服务器建立联系,是为了能够把服务器的输出重定向到一个不同于运行A/V Helper程序所在客户机的目的地址,实现流媒体传输一般都需要专用服务器和播放器。
在允许所述客户端观看视频的情况下,通过实时流传输协议(Real TimeStreaming Protocol,RTSP)和实时传输协议(Real-time Transport Protocol,RTP)将实时的视频流发送至所述客户端。RTSP由RealNetworks和Netscape共同提出,是工作在RTP之上的应用层协议。它的主要目标是为单播和多播提供可靠的播放性能。RTSP的主要思想是提供控制多种应用数据传送的功能,即提供一种选择传送通道的方法,例如UDP、TCP、IP多播,同时提供基于RTP传送机制的方法。RTSP控制通过单独协议发送的流,与控制通道无关,例如,RTSP控制可通过TCP连接,而数据流通过UDP,通过建立并控制一个或几个时间同步的连续流数据,其中可能包括控制流,RTSP能为服务器提供远程控制。另外,由于RTSP在语法和操作上与HTTP类似,RTSP请求可由标准HTTP或MIME解析器解析,并且RTSP请求可被代理、通道与缓存处理。与HTTP相比,RTSP是双向的,即客户机和服务器都可以发出RTSP请求。
现RTSP的系统必须支持通过TCP传输RTSP,并支持UDP。RTSP服务器的TCP和UDP缺省端口都是554。目前最新的微软Media Services V9和RealSystem都支持RTSP协议。
流媒体的项目中包括多个视频源和多个流媒体服务器,其中多个视频源和多个流媒体服务器之间对应建立了映射关系,所述流媒体服务器的数量不多于所述视频源的数量,具体包括1对多、1对1和多对1等多种情况,以平衡视频传输的负载。客户端需要观看视频时,只需向对应的所述流媒体服务器请求,而该服务器也只通过少量与其已建立映射关系的视频源发出的视频数据,减轻对网络带宽的依赖,提高视频数据的传输效率。
本实施例中,通过对流媒体的项目规模配置相应的数量的流媒体服务器,将视频源均衡的与多个独立网络的所述流媒体服务器建立映射关系,避免在网络带宽不稳定的情况下,整个流媒体的视频数据仅通过一个视频监视器传输,而严重影响视频传输效率的问题,提高了视频传输的效率。
进一步地,请参阅图2,步骤S20中获取视频源发出的视频数据具体包括:
步骤S21,获取所述视频源发出的第一视频数据;
步骤S22,发出包括第一网络状态的响应至所述视频源;所述第一网络状态为与所述视频源连接的网络状态;
步骤S23,获取所述视频源在发出第一视频数据的预设时间后发出的第二视频数据;所述第二视频数据是所述视频源根据所述第一网络状态对视频数据的大小进行调整后发出的所述视频数据。
步骤S20中将所述视频数据发送至所述客户端具体包括:
步骤S24,将从所述视频源获取到的第三视频数据发送给所述客户端;
步骤S25,接收所述客户端发出的包括第二网络状态的响应;所述第二网络状态为与所述客户端连接的网络状态;
步骤S26,在发出所述第三视频数据的预设时间后发出第四视频数据;所述第四视频数据是根据所述第二网络状态对视频数据的大小进行调整后发出的所述视频数据。
流媒体之所以能够实现多媒体数据的实时播放是采用了专门的网络控制协议和数据传输机制。服务器端有专门的流媒体发布系统,而客户端则有专门的播放器,这两部分都需要通过数据缓存区进行数据的缓存。
与普通的分组交换网络不同,流媒体系统的缓存区中的数据在数据传输过程中是动态的,也可成为是交换状态的,数据以堆栈方式进出缓冲区,而不需要等待数据全部达到客户机后才从缓冲区中被释放出来,由于数据缓冲区中的数据是“流动”的,再加上数据的播放需要维持一个稳定的数据输出速度,随时都要求缓冲区有相应的数据提供给播放器,如果没有相应的数据,则会出现内容播放过程中的暂停和画面的条约,出现前一种情况一般是由于网络传输速度跟不上数据的播放速度,而发生了数据的下溢,后一种情况的发生是由于网络传输速度过快,超过了播放的速度,而又没有适当的传输控制而造成的数据上溢。
本实施例中,通过所述流媒体服务器与所述视频流之间的网络状态对所述视频数据的大小进行调整,自适应调整视频数据的码率以克服上述的问题而达到监看的最佳效果。
进一步地,请参阅图3,基于本发明分布式文件系统中流媒体读取方法的第一实施例,本发明分布式文件系统中流媒体读取方法的第二实施例中,所述步骤S10之前还包括:
步骤S30,与所述视频源进行交互;
流媒体服务器向所述视频源发出获取视频数据的请求,所述视频源在允许所述流媒体服务器获取视频数据的情况下发回允许获取的响应,再由所述流媒体服务器接收该响应,具体的,返回值为200。
步骤S40,启动UDP端口以接收所述视频源发出的所述视频数据;
在所述流媒体服务器接收到允许获取的响应后,启动UDP端口,所述视频源通过所述UDP端口采用RTP协议将所述视频数据发送至所述流媒体服务器,所述流媒体服务器接收所述视频数据。
本实施例中,在客户端未请求观看视频之前所述流媒体服务器就能够收到所述视频源的数据信息,较现有技术中在客户端请求观看视频的后还需要等待所述流媒体服务器启动所述UDP端口而言,在所述客户端请求视频数据之后减少了步骤,加速了所述客户端获取所述视频数据的速度。
进一步地,请参阅图4,基于本发明分布式文件系统中流媒体读取方法的第一实施例,本发明分布式文件系统中流媒体读取方法的第三实施例中,所述步骤S20之后还包括:
S50,将从所述视频源获取到的所述视频数据存储至后台;
与市场上的现有技术相比较,通过采用市场上最先进的H264以及H265编码降低了传输的码率,在同等带宽下节省了存储空间,同时在分布式存储过程中利用分布式存储特点将视频流并发的存储到各个子存储系统中,实现高效的视频信息存储,过程中记录下通道号、日期、时间等参数。
之后如果要查看某历史视频数据,流媒体服务器则根据查询条件如:通道号、日期、时间等参数从分布式存储设备中找到最优路径,读取视频流信息,并转发给监看平台。
本实施例中,所述流媒体服务器在接收视频数据后将视频数据并发的存储到各个子存储系统中,实现了高效的视频信息存储,且便于日后查找所述视频数据。
本发明还提供一种分布式文件系统中流媒体服务器,请参照图5和图6,在一实施例中,上述分布式文件系统100中包括视频源10、流媒体30和客户端50,该分布式文件系统100中流媒体服务器30包括第一接收模块31、第一发送模块32、获取模块33和第二发送模块34,其中:
所述第一接收模块31,用于接收客户端发出的观看视频的请求;
所述第一发送模块32,用于根据所述观看视频的请求发回获准观看视频的响应至所述客户端;
当用户需要观看视频源的实时监控视频时,通过客户端发出观看视频的请求,流媒体服务器接受请求后根据客户端的状态判断是否允许其观看,在允许观看的情况下,向所述客户端发回允许观看的响应,具体的,返回值为200。
获取模块33,用于获取视频源10发出的视频数据;所述视频源10为全部视频源中部分预先已建立映射关系的视频源;
第二发送模块34,用于将所述视频数据发送至所述客户端50。
流媒体的传输的实现需要缓存。因为Internet以分组传输为基础进行断续的异步传输,对一个实时的A/V源或存储的A/V文件。在传输中它们要被分解为许多的分组,由于网络是动态变化的,各个分组选择的路由可能不尽相同,故到达客户端的时间延迟也就不等,甚至先发的数据分组有可能后到。为此,使用缓存系统来弥补延迟和抖动的影响,并保证分组的顺序正确,从而使媒体数据能连续输出,而不会因为网络暂时拥塞使播放出现停顿。在流媒体传输中。使用RTP/UDP和RTSP/TCP两种不同的通信协议与A/V服务器建立联系,是为了能够把服务器的输出重定向到一个不同于运行A/V Helper程序所在客户机的目的地址,实现流媒体传输一般都需要专用服务器和播放器。
在允许所述客户端观看视频的情况下,通过实时流传输协议(Real TimeStreaming Protocol,RTSP)和实时传输协议(Real-time Transport Protocol,RTP)将实时的视频流发送至所述客户端。RTSP由RealNetworks和Netscape共同提出,是工作在RTP之上的应用层协议。它的主要目标是为单播和多播提供可靠的播放性能。RTSP的主要思想是提供控制多种应用数据传送的功能,即提供一种选择传送通道的方法,例如UDP、TCP、IP多播,同时提供基于RTP传送机制的方法。RTSP控制通过单独协议发送的流,与控制通道无关,例如,RTSP控制可通过TCP连接,而数据流通过UDP,通过建立并控制一个或几个时间同步的连续流数据,其中可能包括控制流,RTSP能为服务器提供远程控制。另外,由于RTSP在语法和操作上与HTTP类似,RTSP请求可由标准HTTP或MIME解析器解析,并且RTSP请求可被代理、通道与缓存处理。与HTTP相比,RTSP是双向的,即客户机和服务器都可以发出RTSP请求。
现RTSP的系统必须支持通过TCP传输RTSP,并支持UDP。RTSP服务器的TCP和UDP缺省端口都是554。目前最新的微软Media Services V9和RealSystem都支持RTSP协议。
流媒体的项目中包括多个视频源和多个流媒体服务器,其中多个视频源和多个流媒体服务器之间对应建立了映射关系,所述流媒体服务器的数量不多于所述视频源的数量,具体包括1对多、1对1和多对1等多种情况,以平衡视频传输的负载。客户端需要观看视频时,只需向对应的所述流媒体服务器请求,而该服务器也只通过少量与其已建立映射关系的视频源发出的视频数据,减轻对网络带宽的依赖,提高视频数据的传输效率。
本实施例中,通过对流媒体的项目规模配置相应的数量的流媒体服务器,将视频源均衡的与多个独立网络的所述流媒体服务器建立映射关系,避免在网络带宽不稳定的情况下,整个流媒体的视频数据仅通过一个视频监视器传输,而严重影响视频传输效率的问题,提高了视频传输的效率。
进一步地,请参阅图7,所述获取模块33包括第一获取单元331、第一发送单元333和第二获取单元335,其中:
所述第一获取单元331,用于获取所述视频源10发出的第一视频数据;
所述第一发送单元333,用于发出包括第一网络状态的响应至所述视频源10;所述第一网络状态为与所述视频源10连接的网络状态;
所述第二获取单元335,用于获取所述视频源10在发出第一视频数据的预设时间后发出的第二视频数据;所述第二视频数据是所述视频源10根据所述第一网络状态对视频数据的大小进行调整后发出的所述视频数据。
请参阅图8,所述第二发送模块34包括第二发送单元341、接收单元343和第三发送单元345,其中:
所述第二发送单元341,用于将从所述视频源10获取到的第三视频数据发送给所述客户端50;
所述接收单元343,用于接收所述客户端50发出的包括第二网络状态的响应;所述第二网络状态为与所述客户端50连接的网络状态;
所述第三发送单元345,用于在发出所述第三视频数据的预设时间后发出第四视频数据;所述第四视频数据是根据所述第二网络状态对视频数据的大小进行调整后发出的所述视频数据。
流媒体之所以能够实现多媒体数据的实时播放是采用了专门的网络控制协议和数据传输机制。服务器端有专门的流媒体发布系统,而客户端则有专门的播放器,这两部分都需要通过数据缓存区进行数据的缓存。
与普通的分组交换网络不同,流媒体系统的缓存区中的数据在数据传输过程中是动态的,也可成为是交换状态的,数据以堆栈方式进出缓冲区,而不需要等待数据全部达到客户机后才从缓冲区中被释放出来,由于数据缓冲区中的数据是“流动”的,再加上数据的播放需要维持一个稳定的数据输出速度,随时都要求缓冲区有相应的数据提供给播放器,如果没有相应的数据,则会出现内容播放过程中的暂停和画面的条约,出现前一种情况一般是由于网络传输速度跟不上数据的播放速度,而发生了数据的下溢,后一种情况的发生是由于网络传输速度过快,超过了播放的速度,而又没有适当的传输控制而造成的数据上溢。
本实施例中,通过所述流媒体服务器与所述视频流之间的网络状态对所述视频数据的大小进行调整,自适应调整视频数据的码率以克服上述的问题而达到监看的最佳效果。
进一步地,请参阅图9,基于本发明分布式文件系统中流媒体服务器的第一实施例,本发明分布式文件系统中流媒体服务器的第二实施例中,所述分布式文件系统100中流媒体服务器30还包括交互模块35和启动模块36,其中:
所述交互模块35,用于与所述视频源10进行交互;
流媒体服务器向所述视频源发出获取视频数据的请求,所述视频源在允许所述流媒体服务器获取视频数据的情况下发回允许获取的响应,再由所述流媒体服务器接收该响应,具体的,返回值为200。
所述启动模块36,用于启动UDP端口准备接收所述视频源发出的所述视频数据。
在所述流媒体服务器接收到允许获取的响应后,启动UDP端口,所述视频源通过所述UDP端口采用RTP协议将所述视频数据发送至所述流媒体服务器,所述流媒体服务器接收所述视频数据。
本实施例中,在客户端未请求观看视频之前所述流媒体服务器就能够收到所述视频源的数据信息,较现有技术中在客户端请求观看视频的后还需要等待所述流媒体服务器启动所述UDP端口而言,在所述客户端请求视频数据之后减少了步骤,加速了所述客户端获取所述视频数据的速度。
进一步地,请参阅图10,基于本发明分布式文件系统中流媒体服务器的第一实施例,本发明分布式文件系统中流媒体服务器的第三实施例中,所述分布式文件系统100中流媒体服务器30还包括:
存储模块37,用于将从所述视频源10获取到的所述视频数据存储至后台。
与市场上的现有技术相比较,通过采用市场上最先进的H264以及H265编码降低了传输的码率,在同等带宽下节省了存储空间,同时在分布式存储过程中利用分布式存储特点将视频流并发的存储到各个子存储系统中,实现高效的视频信息存储,过程中记录下通道号、日期、时间等参数。
之后如果要查看某历史视频数据,流媒体服务器则根据查询条件如:通道号、日期、时间等参数从分布式存储设备中找到最优路径,读取视频流信息,并转发给监看平台。
本实施例中,所述流媒体服务器在接收视频数据后将视频数据并发的存储到各个子存储系统中,实现了高效的视频信息存储,且便于日后查找所述视频数据。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。