编解码集群传输视频流的方法和系统与流程

文档序号:12008399阅读:177来源:国知局
编解码集群传输视频流的方法和系统与流程
本发明涉及视频编解码集群技术领域,特别是涉及一种编解码集群传输视频流的方法和系统。

背景技术:
视频编解码集群系统包括多个编码设备、多个解码设备和用于连接编码设备与解码设备的网络。其中编码设备用于从前端采集视频数据和将视频数据压缩为视频流,并通过两者间的网络将视频流传输到解码设备,解码设备用于将视频流解压后输出到后端进行显示。目前,在编解码集群系统中主要有以下三种传输视频流的方式:一、解码设备与编码设备间通过建立TCP(TransmissionControlProtocol,传输控制协议)或者UDP(UserDatagramProtocol,用户数据包协议)连接传输视频流;二、编码设备在某一组播地址向解码设备发送视频流;三、编码设备与解码设备通过RTSP(RealTimeStreamingProtocol,实时流媒体协议)传输视频流。但是,多个解码设备在短时段内向同一个编码设备请求同一视频流时,第一种方式中,由于编码设备的网络带宽有限,在同一时刻其只能将其视频流发送给有限数量的解码设备,而且向多个解码设备发送视频流将影响其编码效率;第二种方式,只能在局域网中传输视频流;第三种方式中,向多个解码设备传送视频流,同样会因占用网络带宽而降低编码效率。

技术实现要素:
基于此,有必要针对上述现有技术中向多个解码设备传输同一视频流时影响编码效率或无法跨广域网的问题,提供一种编解码集群传输视频流的方法和系统。一种编解码集群传输视频流的方法,包括:获取预设时段内向多个编码设备中的第一编码设备请求视频流的解码设备的数量;请求所述视频流的解码设备的数量高于预设值时,从多个编码设备中除所述第一编码设备外其他的编码设备中选取至少一个编码设备作为待发送所述视频流的编码设备;将所述视频流发送至选取的编码设备,通过所述选取的编码设备将所述视频流传送至对应的解码设备。一种编解码集群传输视频流的系统,包括:计数模块,用于获取预设时段内向多个编码设备中的第一编码设备请求视频流的解码设备的数量;第一控制模块,用于在请求所述视频流的解码设备的数量高于预设值时,从多个编码设备中除所述第一编码设备外其他的编码设备中选取至少一个编码设备作为待发送所述视频流的编码设备;第二控制模块,用于将所述视频流发送至选取的编码设备,通过所述选取的编码设备将所述视频流传送至对应的解码设备。上述编解码集群传输视频流的方法和系统,通过借助编解码集群中其它解码设备,可在不影响编码设备的编码效率和网络带宽负载的情况下,通过交换机和路由器等网络设备的支持能跨广域网向多个解码设备同时传输同一视频流。附图说明图1是本发明编解码集群传输视频流的方法实施例一的流程示意图;图2是本发明编解码集群传输视频流的方法实施例二的流程示意图;图3是本发明编解码集群传输视频流的方法实施例三的流程示意图;图4是本发明编解码集群传输视频流的系统优选实施例的结构示意图。具体实施方式下面以具体实施例的方式对本发明的方案进行详细描述。图1所示,是本发明编解码集群传输视频流的方法实施例一的流程示意图。所述编解码集群传输视频流的方法包括以下步骤:步骤101,获取预设时段内向多个编码设备中的第一编码设备请求视频流的解码设备的数量。所述预设时段,优选地可以是3秒、5秒、10秒或30秒等,可根据解码设备请求视频流的频率或第一编码设备的一些传输属性设定。所述第一编码设备可以是所述多个编码设备中的任意一个编码设备。在本步骤中,优选地,在预设时段内,可根据解码设备的IP(InternetProtocol,网络之间互连的协议)地址或预设身份标识,识别向所述第一编码设备请求视频流的解码设备,从而统计得出其具体数值。所述预设身份标识优选地为解码设备的设备名称或编号。步骤102,请求所述视频流的解码设备的数量高于预设值时,从多个编码设备中除所述第一编码设备外其他的编码设备中选取至少一个编码设备作为待发送所述视频流的编码设备。在本步骤中,优选地,所述预设值可根据所述第一编码设备在不影响自身编码效率的情况下最多能同时传输的所述视频流的链路的路数设定。若第一编码设备能同时传输6路视频流,可将预设值设置为6,也可以设置为1至5之间任意值。优选地,所述预设值也可根据执行步骤1之前所述第一编码设备的可用带宽设定。在本发明的一实施例中,在执行上述步骤中从多个编码设备中除第一编码设备外其他的编码设备中选取至少一个编码设备作为待发送所述视频流的编码设备的操作之前,还可执行以下操作:获取所述第一编码设备当前可用的带宽(剩余带宽),将所述当前可用的带宽和所述第一编码设备的带宽阈值比较;所述当前可用的带宽大于所述带宽阈值时,选取所述第一编码设备作为待发送所述视频流的编码设备。优选地,所述带宽阈值大于或等于同时传送2路所述视频流所需占用的带宽值。若带宽阈值等于2路视频流占用的带宽,其中,1路用于向其他编码设备传送作为源数据的所述视频流,1路用于向请求所述视频流的解码设备传送所述视频流。上述操作用于判断所述第一编码设备是否可作为待发送所述视频流的编码设备。选取第一编码设备作为发送所述视频流的编码设备,可优先向急需所述视频流或较早时间请求所述视频流的解码设备发送所述视频流。在本发明的其他实施例中,可直接跳过上述操作,发送所述视频流的编码设备全部从多个编码设备中除所述第一编码设备之外的其他编码设备中选取。在本发明的一实施例中,优选地,所述从多个编码设备中除第一编码设备外其他的编码设备中选取至少一个编码设备作为待发送所述视频流的编码设备的步骤可包括以下步骤:获取所述其他的编码设备中每个编码设备当前可用的带宽(剩余带宽)。选取前N个剩余带宽值最大的编码设备作为待发送所述视频流的编码设备,所述N为大于或等于1的自然数。若多个编码设备的剩余带宽值相等,则可优选与第一编码设备的物理距离小的编码设备。在本操作中,优选地,也可不完全选取剩余带宽值大的编码设备。可根据请求所述视频流的解码设备的数量,以及传输单个所述视频流所需占用带宽,计算得出同时将所述视频流传送至所有请求所述视频流的解码设备所需要的总带宽,而后在选取解码设备时,选取的至少一个编码设备的剩余带宽值的总和恰好能满足所需的所述总带宽。也可使用其他本领域管用技术手段选取待发送所述视频流的编码设备。上述选取发送所述视频流的编码设备的方式,根据除第一编码设备外的其他编码设备的传输性能(可用带宽),选取传输性能较高的编码设备,既能减少选取的编码设备的数量,又能更快的将所述视频流传输至请求所述视频流的解码设备。在本发明的另一实施例中,优选地,所述从多个编码设备中除第一编码设备外其他的编码设备中选取至少一个编码设备作为待发送所述视频流的编码设备的步骤还可包括以下步骤:依次选取所述其他的编码设备其中的一个,优选地,可根据所述其他编码设备与所述第一编码设备的物理距离从大到小依次选取,也可根据预设的编号或IP地址依次选取。对于每次选取的一个编码设备,判断所述编码设备当前可用的带宽是否高于预设带宽值(统一设定的比较值)或所述选取的编码设备的带宽阈值(根据编码设备自身工作状况设定),若高于,选取所述编码设备作为待发送所述视频流的编码设备。判断作为待发送所述视频流的编码设备的数量是否超过预设数量,若超过,停止选取和判断。若不高于,跳过所述编码设备。上述选取编码设备的方式,随机性较大,但是,该方式可自动、快速的选取编码设备,也适用用于无法获取所述编码设备的可用带宽的情况。步骤103,将所述视频流发送至选取的编码设备,通过所述选取的编码设备将所述视频流传送至对应的解码设备。在本发明的一实施例中,优选地,可通过所述第一编码设备将所述视频流发送至所有所述选取的编码设备。可同时将所述视频流传送至所有的所述选取的编码设备,也可按时序将依次所述视频流传送至所有的所述选取的编码设备。这种通过第一编码设备将所述视频流传送至所述选取的编码设备的方式,可避免面所述选取的编码设备因彼此互传所述视频流而消耗可用带宽。优选地,也可先通过所述第一编码设备将所述视频流传送至所述选取的编码设备中的任意一个编码设备,然后再通过所述任意一个编码设备将所述视频流传送至所述选取的编码设备中的其他编码设备。所述选取的编码设备中任意一个获取所述视频流后,可根据预设顺序或根据编码设备间的物理距离,将所述视频流在所述选取的编码设备中的其他编码设备中互传。如,获得所述视频流的编码设备都将所述视频流传送至相距最近的编码设备,或获得所述视频流的编码设备都将所述视频流传送至编号接近的编码设备,或获得所述视频流的编码设备都将所述视频流传送至剩余带宽仅次的编码设备。上述在选取的编码设备间传输视频流的方式,可节约第一编码设备的带宽。在本发明的一实施例中,确定好请求所述视频流的解码设备与待发送所述视频流的编码设备后,优选地,可通过以下操作,确定解码设备与编码设备间的连接链路(对应关系或视频传送链路):首先,根据所述选取的编码设备中每个编码设备当前可用的带宽,确定每个编码设备能同时发送的所述视频流的路数。根据所述能同时发送的所述视频流的路数,确定每个编码设备对应的解码设备。使用所述选取的编码设备将所述视频流传送至所述对应的解码设备。在上述操作中,若选取的编码设备足够多或其剩余带宽总和足够,仅通过一次映射即可将所有编码设备与所有解码设备链路对应。若不足,那么可以分批映射对应。在本发明的另一实施例中,确定好请求所述视频流的解码设备与待发送所述视频流的编码设备后,优选地,根据预设的对应关系或传输顺序,使用所述选取的编码设备将所述视频流传送至所述对应的解码设备。所述传输顺序可以是按编码设备与解码设备的IP地址预设的传输视频流的先后顺序,也可以根据编码设备与解码设备的编号预设的传输视频流的先后顺序。如,编号大的编码设备优先向编号大的解码设备传送所述视频流。在本发明方法的实施例中,优选地,可循环执行图1中的步骤102和103,即:在步骤102中每选取出预设个数的(1个或多个)作为待发送所述视频流的编码设备,立即执行步骤103的步骤,然后回到步骤102继续选取编码设备,直至请求所述视频流的所有解码设备都接收到所述视频流为止。优选地,也可仅执行一次步骤102,一次性选取足够的编码设备。图2所示,是本发明编解码集群传输视频流的方法实施例二的流程示意图。在本实施例中,编解码集群包括20个编码设备和20个解码设备,编码设备与解码设备间的网络设备可包括交换机和路由器,支持广域网。在其他实施例中,编解码集群中的编码设备和解码设备的数量可更多或者更少,网络设备也可以是支持局域网的设备。在本实施例中,编解码集群传输视频流的方法流程(软件程序)安装在一台控制PC(personalcomputer),控制PC通过网络设备与编解码集群中的各编码设备和各解码设备连接。在本实施例中,编解码集群中的每个编码设备在不影响编码效率的情况下,最多能同时对外发送或接收7路视频数据。解码设备优选地与编码设备具有相同性能。在本实施例中,以下20个IP地址用于标示20个解码设备:192.168.1.10、192.168.1.11、192.168.1.12、...192.168.1.29。子网掩码为255.255.255.0。以下以编码设备10到编码设备29来表征20个编码设备。20解码设备的IP地址为:192.168.2.10、192.168.2.10、…192.168.2.29。子网掩码为255.255.255.0。以下以解码设备10到解码设备29来表征20个解码设备。这样通过路由器模拟成广域网环境,控制PC的IP地址设置为192.168.1.30,预先将上述所有IP地址进行存储。本实施例中,对应图1中的步骤102,包括判断第一编码设备是否能作为发送所述视频流的步骤、并详述了从其他编码设备中选取编码设备的步骤,对应图1中的步骤103,包括建立编码设备与解码设备间对应关系的步骤。参照图2,编解码集群传输视频流的方法包括以下步骤:步骤201,在预设时段内,获取请求第一编码设备的视频流的解码设备的数量。在本实施例中,在预设时段内,控制PC通过解码设备的视频流请求,获取请求同一编码设备的视频流的解码设备的数量。查询到解码设备10至解码设备19这10个编码设备需要请求编码设备10的视频流。步骤202,判断所述解码设备的数量是否高于预设值。在本实施例中,比较请求编码设备10的视频流的解码设备的数量与预设数值7的大小,大于时,执行步骤203,即比较10与7(预设值,根据编码设备10能够同时传输7路数据的性能预先设定)可知,请求编码设备10的视频流的解码设备的数量已高于预设值7,那么接下来进入步骤203,若低于,直接终止控制PC上的软件程序。步骤203,第一编码设备的可用带宽高于其带宽阈值时,选取第一编码设备作为待发送所述视频流的编码设备,在本实施例中,控制PC获取编码设备10当前可用的带宽能够同时传输7路所述视频流,高于阈值3,选取编码设备10为待发送所述视频流的编码设备。步骤204,查询其他编码设备的可用带宽,并选取前N个可用带宽最大的编码设备。即,控制PC查询编码设备11到编码设备29中每个编码设备当前可用的带宽分别能传输所述视频流的路数为:7、6、6、5、4、3、2、2、2、2。选取前2个可用带宽最大的编码设备11与编码设备12作为待发送所述视频流的编码设备。其中编码设备12与编码设备10的物理距离比编码设备13与编码设备10的物理距离近。步骤205,通过第一编码设备将所述视频流传送至选取的编码设备中的任意一个编码设备,然后通过所述任意一个编码设备将所述视频流传送至选取的编码设备中剩余的编码设备。即,控制PC控制编码设备10与编码设备11间建立连接,并控制所述视频流传向所述编码设备11,然后控制编码设备11与编码设备12间建立连接,并控制所述视频流传向编码设备12。步骤206,建立选取的编码设备与请求所述视频流的解码设备间的对应关系。即,根据编码设备与解码设备的IP地址,控制PC控制编码设备10分别与解码设备10至解码设备14建立视频传送连接、编码设备11分别于解码设备15至解码设备18建立视频传送连接,编码设备12与解码设备19建立视频传送连接。步骤207,控制PC控制编码设备与解码设备间建立对应关系后,发送指令至编码设备10、编码设备11和编码设备12将所述视频流传送至各自对应的解码设备。在上述实施例二中,每个发送所述视频流的编码设备都预留了能发送1路所述视频流的带宽,用于各编码设备接收和发送本地的视频流。在其他实施例中,可根据各编码设备和解码设备的实际工作情况,预先设定不同的预留带宽或预留0路所述视频流的带宽。此外,本实施例中的各种具体限定并不用于限定本发明的所有实施例。图3所示,是本发明编解码集群传输视频流的方法实施例三的流程示意图。在本实施例中,编解码集群包括20个编码设备和20个解码设备,编码设备与解码设备间的网络设备可包括交换机和路由器,支持广域网。在其他实施例中,编解码集群中的编码设备和解码设备的数量可更多或者更少,网络设备也可以是支持局域网的设备。在本实施例中,编解码集群传输视频流的方法流程(软件程序)安装在每台解码设备中,没有额外增加的控制设备,如实施例二中的控制PC。在本实施例中,编解码集群中的每个编码设备在不影响编码效率的情况下,最多能同时对外发送或接收7路视频数据。解码设备优选地与编码设备具有相同性能。在本实施例中,以下20个IP地址用于标示20个解码设备:192.168.1.10、192.168.1.11、192.168.1.12、...192.168.1.29。子网掩码为255.255.255.0。以下以编码设备10到编码设备29来表征20个编码设备。20解码设备的IP地址为:192.168.2.10、192.168.2.10、…192.168.2.29。子网掩码为255.255.255.0。以下以解码设备10到解码设备29来表征20个解码设备。这样通过路由器模拟成广域网环境,预先将上述所有IP地址进行存储。本实施例中,不包括判断第一编码设备是否能作为发送所述视频流的步骤,对应图1中的步骤102和步骤103,进一步分别详述了在选取的编码设备间传输视频流的方式不同时,不同的建立编码设备与解码设备间对应关系的步骤。参照图3,编解码集群传输视频流的方法包括以下步骤:步骤301,在预设时段内,获取请求第一编码设备的视频流的解码设备的数量。在本实施例中,在预设时段内,通过编码设备10接收到的来自各解码设备的视频流请求,查询请求解码设备10的视频流的解码设备的数量,查询到解码设备10至解码设备19这10个编码设备需要请求其视频流。步骤302,判断请求所述视频流的解码设备的数量是否高于预设值,即比较10与6(预设值,根据编码设备10能够同时传输7路数据的性能预先设定)可知,请求编码设备10的视频流的解码设备的数量已高于预设值6,那么接下来进入步骤303,若低于,直接退出上述传输程序。步骤303,查询其他编码设备的剩余带宽,并选取前N个剩余带宽最大的编码设备。在本实施例中,编码设备10查询编码设备11到编码设备29中每个编码设备当前可用的带宽分别能传输所述视频流的路数为:6、5、5、5、4、3、2、2、2、2。选取前3个可用带宽最大的编码设备11、编码设备12与编码设备13作为待发送所述视频流的编码设备。其中编码设备12、编码设备13与编码设备10的物理距离比编码设备14与编码设备10的物理距离近。步骤304,判断是否能通过第一编码设备将所述视频流传送至所有选取的编码设备。在本实施例中,判断编码设备10是否当前能同时传输3路以上所述视频流,若能,则执行步骤305,若不能则执行步骤306。步骤305,通过第一编码设备将所述视频流传送至所有选取的编码设备。即,控制编码设备10与选取的编码设备(编码设备11、编码设备12和编码设备13)建立连接,并控制所述视频流传向选取的编码设备。并执行步骤307。步骤306,通过第一编码设备将所述视频流传送至所述选取的编码设备中任意一个编码设备,然后通过所述任意一个编码设备将所述视频流传送至剩余的编码设备。即,控制编码设备10与选取的编码设备中的任意一个编码设备(如编码设备11)建立连接,并控制所述视频流传向所述任意一个编码设备,然后通过所述任意一个编码设备将所述视频流传输至剩余的编码设备(控制编码设备11与编码设备12间建立连接,并控制所述视频流传向编码设备12,最后控制编码设备12与编码设备13建立连接,并控制所述视频流传向编码设备13)。并执行步骤308。步骤307,根据编码设备与解码设备的IP地址,建立选取的编码设备与请求所述视频流的解码设备间的对应关系。即,控制编码设备11分别与解码设备10至解码设备14建立视频传送连接、编码设备12分别于解码设备15至解码设备18建立视频传送连接,编码设备13与解码设备19建立视频传送连接。步骤308,根据编码设备与解码设备的IP地址,建立选取的编码设备与请求所述视频流的解码设备间的对应关系。即,控制编码设备11分别与解码设备10至解码设备13建立视频传送连接、编码设备12分别于解码设备14至解码设备16建立视频传送连接,编码设备13分别与解码设备17至解码设备19建立视频传送连接。步骤309,控制编码设备与解码设备间建立对应关系后,解码设备10发送指令至编码设备11、编码设备12和编码设备13将所述视频流传送至各自对应的解码设备。在上述实施例三中,没有选取编码设备10发送所述视频流。对于编解码集群,若其中任意一个编码设备由于一些暂时的工作需要,无法向解码设备传送其上的视频流,可通过将步骤302中的预设值设置为0,实施具体实施例2中的传输视频流的方法可有效克服其无法传送视频流的困难。此外,本实施例中的各种具体限定并不用于限定本发明的所有实施例。如图4所示,本发明的编解码集群传输视频流的系统,包括计数模块10、第一控制模块20和第二控制模块30,其中:计数模块10,用于获取预设时段内向多个编码设备中的第一编码设备请求视频流的解码设备的数量。第一控制模块20,用于在请求所述视频流的解码设备的数量高于预设值时,从多个编码设备中除所述第一编码设备外其他的编码设备中选取至少一个编码设备作为待发送所述视频流的编码设备。第二控制模块30,用于将所述视频流发送至选取的编码设备,通过所述选取的编码设备将所述视频流传送至对应的解码设备。在本发明的优选实施例中,第一控制模块20还可用于:获取所述第一编码设备当前可用的带宽,将所述当前可用的带宽和所述第一编码设备的带宽阈值比较。在所述当前可用的带宽大于所述带宽阈值时,选取所述第一编码设备作为待发送所述视频流的编码设备。在本发明的优选实施例中,所述第二控制模块30还可用于:根据所述选取的编码设备中每个编码设备当前可用的带宽,确定每个编码设备能同时发送的所述视频流的路数。根据所述能同时发送的所述视频流的路数,确定每个编码设备对应的解码设备。使用所述选取的编码设备将所述视频流传送至所述对应的解码设备。在本发明的优选实施例中,第一控制模块20还可用于:获取所述其他的编码设备中每个编码设备当前可用的带宽;选取前N个所述带宽的值最大的编码设备作为待发送所述视频流的编码设备,所述N为大于或等于1的自然数。在本发明的其他优选实施例中,第一控制模块20还用于:依次选取所述其他的编码设备其中的一个。对于每次选取的一个编码设备,判断所述编码设备当前可用的带宽是否高于预设带宽值或所述选取的编码设备的带宽阈值,若高于,选取所述编码设备作为待发送所述视频流的编码设备。判断作为待发送所述视频流的编码设备的数量是否超过预设数量,若超过,停止选取和判断。若不高于,跳过所述编码设备。在本发明的优选实施例中,第二控制模块30可通过所述第一编码设备将所述视频流发送至所有所述选取的编码设备。第二控制模块30也可先通过所述第一编码设备将所述视频流传送至所述选取的编码设备中的任意一个编码设备,然后通过所述任意一个编码设备将所述视频流传送至所述选取的编码设备中的其他编码设备。本发明的编解码集群传输视频流的系统中的计数模块10、第一控制模块20和第二控制模块30可至少部分地安装在编解码集群中的任意编码设备上,也可至少部分地安装在编解码集群额外增设的控制PC中。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1