具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2为本发明一种视频资源管理方法的一个实施例的流程图。如图2所示,该方法包括以下步骤:
步骤S101,视频资源管理器接收到视频推流请求,根据所述视频推流请求所要求的视频码率,从至少一个视频服务器中选择一个可用带宽满足所述视频码率要求的视频服务器进行视频推流。
步骤S102,根据所选择的视频服务器,确定进行视频资源管理的视频资源管理器。
步骤S103,由所述确定的视频资源管理器将所述视频服务器进行推流后的视频资源信息更新给在线的视频资源管理器。
如图3所示,为本发明的视频资源管理器调度视频服务器的架构图,在本发明中,由视频资源管理器统一对视频服务器进行调度,会话管理器与视频服务器之间通过视频资源管理器连通,视频资源管理器实时获取并存储所有视频服务器中的视频资源信息,其中,视频资源信息包括视频服务器的可用带宽等信息。
当接收到会话管理器发送给视频资源管理器的视频推流请求时,该视频推流请求携带有所请求推流的视频信息和视频码率,该视频信息包括所请求推流的视频流的名称、标号等视频流的基本信息。首先,根据该视频信息,在视频资源管理器中查找存储有与该视频信息对应的视频流的视频服务器,由于可能多个视频服务器存储有该视频流,或者可以由多个视频服务器从内容分发网络拉取该视频流,因此,根据该视频信息可能可以查找到多个视频服务器,但是,查找到的视频服务器的可用带宽还需要满足视频推流请求所要求的视频码率,因此,可根据该视频码率筛选出可用带宽满足该视频码率要求的视频服务器。
每个在线的视频资源管理器负责对多个视频服务器的视频资源信息进行管理,为了使视频资源管理器合理地分担视频服务器的视频资源信息的更新工作,针对选择的视频服务器,需要确定进行视频资源管理的视频资源管理器。
在选择一个视频服务器进行视频推流后,由于进行视频推流会占用该视频服务器一定的带宽,所以,需要在在线的视频资源管理器中对该视频服务器的视频资源信息进行更新;同样地,当完成视频推流后,释放了该视频服务器的带宽,也需要在在线的视频资源管理器中对该视频服务器的视频资源信息进行更新。确定负责该视频服务器的视频资源管理的视频资源管理器进行自身的视频资源信息更新后,需要将该视频服务器的更新后的视频资源信息广播给其它在线的视频资源管理器,由在线的视频资源管理器对自身的该视频服务器的视频资源信息进行更新。
根据本发明实施例提供的视频资源管理方法,通过视频资源管理器对各个视频服务器的视频资源信息进行管理,根据视频推流请求所要求的视频码率选择合适的视频服务器进行视频推流,有利于视频服务器的合理调度。
图4为本发明一种视频资源管理方法的另一个实施例的流程图。如图4所示,该方法包括以下步骤:
步骤S201,当接收到一个视频资源管理器广播的注册请求时,将所述视频资源管理器作为所述在线的视频资源管理器,给所述在线的视频资源管理器重新分配实例号。
在本发明的实施例中,包括一个或多个在线的视频资源管理器,它们构成一个局域网,分别具有各自的IP地址,在每个视频资源管理器中都镜像存储有所有视频服务器的视频资源信息。
视频资源管理器想要成为在线视频资源管理器,需要进行注册。在注册时,视频资源管理器需要向各个在线的视频资源管理器广播注册请求,其中一个在线的视频资源管理器负责该注册请求的处理,其将申请注册的视频资源管理器作为在线的视频资源管理器,给所有在线的视频资源管理器重新分配实例号,以动态分配视频资源管理器的实例号。在本发明中,实例号作为视频资源管理器的唯一一个标号,以不同的实例号代表不同的视频资源管理器。
作为一种实施方式,给所有在线的视频资源管理器重新分配实例号,可包括以下步骤:
按照所述在线的视频资源管理器的IP地址的排序的序号,构建所述在线的视频资源管理器的所述实例号。
例如,视频资源管理器A的IP是192.168.1.2,视频资源管理器B的IP是192.168.1.3,则不管A和B是怎样的启动顺序,按照A和B的IP地址的排序,A的实例号是1,而B的实例号是2,因为A的IP地址比B的IP地址要小;如果一个视频资源管理器C提出注册请求,其IP是192.168.1.1则按照A、B和C的IP地址的排序,需要重新分配A、B和C的实例号,它们的实例号分别是1、2和3。采用该种实例号的分配方式简单易行。
步骤S202,所述视频资源管理器更新自身的在线列表,并将所述在线列表广播给其它所述在线的视频资源管理器以由其它所述在线的视频资源管理器进行自身的所述在线列表的更新,所述在线列表包括在线的视频资源管理器的实例号、IP地址、端口号和时间戳。
在每个视频资源管理器中存储有一个在线列表,该在线列表包括了所有在线的视频资源管理器的实例号、IP地址、端口号和时间戳,端口号即在线的视频资源管理器的端口号,时间戳即视频资源管理器注册为在线状态的时间点。
由于在步骤S201中,由于有视频资源管理器注册为在线状态,由接收注册请求的视频资源管理器重新分配了所有在线的视频资源管理器的IP地址和实例号,因此,在该视频资源管理器更新了自身的在线列表后,将该在线列表广播给其它在线的视频资源管理器以由其它在线的视频资源管理器进行自身的在线列表的更新。
步骤S203,判断所述发送注册请求的视频资源管理器是否在设定时间内接收到所述在线的视频资源管理器发送的响应消息,所述响应消息包括所述在线视频资源管理器的数据的版本号;如果是,则转至步骤S204;否则,转至步骤S205。
步骤S204,根据所接收到的数据的版本号的比较结果,由所述发送注册请求的视频资源管理器向所述数据的版本号最高的所述在线视频资源管理器发送数据同步请求。
步骤S205,由所述发送注册请求的视频资源管理器向中心数据库发送数据同步请求。
步骤S203至步骤S205为注册成为在线状态的视频资源管理器的数据的同步过程。在步骤S201中,申请注册的视频资源管理器广播注册请求后,在线的视频资源管理器向申请注册的视频资源管理器发送响应消息,该响应消息包括数据的版本号,该数据包括视频资源信息。在图3所示的视频资源管理系统调度视频服务器的架构图中,中心数据库也从视频资源管理系统中备份了以上数据。
首先,判断发送注册请求的视频资源管理器是否在设定时间内接收到了一个或多个在线视频资源管理器发送的响应消息,如果收到了一个响应消息,则从发送该响应消息的视频资源管理器中同步数据,如果收到多个响应消息,则比较该多个响应消息中的数据的版本号,选择从版本号最高的视频资源管理器中同步数据;如果没有在设定时间内收到该响应消息,则从中心数据库中同步数据。
步骤S206,当收到所述在线的视频资源管理器的定时广播或下线通知时,当检测到自身的所述在线列表需要更新时,则更新所述视频资源管理器自身的所述在线列表。
为了使每个在线的视频资源管理器都实时更新视频资源管理器的数据,例如视频资源管理器动态更新的实例号等,在线的视频资源管理器会定时广播其在线状态以及广播其下线通知,收到该状态广播或下载通知时,视频资源管理器检测自身的在线列表是否需要更新,如果是广播在线状态的情形,检测的结果一般是不需要更新;如果是下线通知的情形,检测的结果一般是需要更新在线列表。
步骤S207,视频资源管理器接收到视频推流请求,根据所述视频推流请求所要求的视频码率,从至少一个视频服务器中选择一个可用带宽满足所述视频码率要求的视频服务器进行视频推流。
当接收到会话管理器发送给视频资源管理器的视频推流请求时,该视频推流请求携带有所请求推流的视频信息和视频码率,该视频信息包括所请求推流的视频流的名称、标号等视频流的基本信息。首先,根据该视频信息,在视频资源管理器中查找存储有与该视频信息对应的视频流的视频服务器,由于可能多个视频服务器存储有该视频流,或者可以由多个视频服务器从内容分发网络拉取该视频流,因此,根据该视频信息可能可以查找到多个视频服务器,但是,查找到的视频服务器的可用带宽还需要满足视频推流请求所要求的视频码率,因此,可根据该视频码率筛选出可用带宽满足该视频码率要求的视频服务器。
步骤S208,根据所选择的视频服务器的标识号码与所述在线的视频资源管理器的个数进行取余计算的余数,确定进行视频资源管理的视频资源管理器的实例号,由所述实例号对应的视频资源管理器进行视频资源管理。
每个在线的视频资源管理器负责对多个视频服务器的视频资源信息进行管理,为了使视频资源管理器合理地分担视频服务器的视频资源信息的更新工作,针对选择的视频服务器,需要确定进行视频资源管理的视频资源管理器。
根据该取余计算,可以将视频服务器的视频资源信息例如当前可用带宽更新的工作均匀分摊到各个视频资源管理器。视频服务器的标识号码可以是视频服务器的网元ID。例如,部署了3台视频资源管理器,假定分配出去的视频服务器的网元ID是1000,根据公式可算出负责处理该视频服务器的视频资源管理器的实例号=1000%3=1(网元ID求余)。当接收到会话管理器申请请求的视频资源管理器的实例号是0,则需要把这个请求转发到实例号是1的视频资源管理器;当接收到会话管理器申请请求的视频资源管理器的实例号是1,则检查视频服务器的网元ID是1000的可用带宽,如果可用则更新带宽并响应分配成功,否则响应分配失败。
步骤S209,由所述实例号对应的视频资源管理器更新自身存储的所述视频服务器的当前可用带宽。
步骤S210,由所述实例号对应的视频资源管理器将所述视频服务器的标识号码和视频码率广播给其它所述在线的视频资源管理器,以由其它所述在线的视频资源管理器进行自身的所述视频服务器的当前可用带宽的更新。
根据以上取余计算,确定了负责视频服务器带宽更新工作的视频资源管理器之后,则由该实例号对应的视频资源管理器更新视频服务器的当前可用带宽,同时,它还需要将该视频服务器的标识号码和视频码率广播给其它在线的视频资源管理器,以由其它在线的视频资源管理器进行视频服务器的当前可用带宽的更新。
根据本发明实施例提供的视频资源管理方法,通过视频资源管理器对各个视频服务器的视频资源信息进行管理,根据视频推流请求选择合适的视频服务器进行视频推流,有利于视频服务器的合理调度;多个视频资源管理器中都镜像存储了各个视频服务器的实时的视频资源信息和运行状态信息,即使当其中的一个或多个视频资源管理器出现故障,仍然能保障安全可靠的调度视频服务器。
图5为本发明一种视频资源管理器的一个实施例的结构示意图。如图5所示,该视频资源管理器1000包括:
选择模块11,用于当接收到视频推流请求时,根据所述视频推流请求所要求的视频码率,从至少一个视频服务器中选择一个可用带宽满足所述视频码率要求的视频服务器进行视频推流。
确定模块12,用于根据所选择的视频服务器,确定进行视频资源管理的视频资源管理器。
第一更新模块13,用于由所述确定的视频资源管理器将所述视频服务器进行推流后的视频资源信息更新给在线的视频资源管理器。
如图3所示,为本发明的视频资源管理器调度视频服务器的架构图,在本发明中,由视频资源管理器统一对视频服务器进行调度,会话管理器与视频服务器之间通过视频资源管理器连通,视频资源管理器实时获取并存储所有视频服务器中的视频资源信息,其中,视频资源信息包括视频服务器的可用带宽等信息。
当接收到会话管理器发送给视频资源管理器的视频推流请求时,该视频推流请求携带有所请求推流的视频信息和视频码率,该视频信息包括所请求推流的视频流的名称、标号等视频流的基本信息。首先,根据该视频信息,在视频资源管理器中查找存储有与该视频信息对应的视频流的视频服务器,由于可能多个视频服务器存储有该视频流,或者可以由多个视频服务器从内容分发网络拉取该视频流,因此,根据该视频信息可能可以查找到多个视频服务器,但是,查找到的视频服务器的可用带宽还需要满足视频推流请求所要求的视频码率,因此,选择模块11可根据该视频码率筛选出可用带宽满足该视频码率要求的视频服务器。
每个在线的视频资源管理器负责对多个视频服务器的视频资源信息进行管理,为了使视频资源管理器合理地分担视频服务器的视频资源信息的更新工作,针对选择的视频服务器,确定模块12需要确定进行视频资源管理的视频资源管理器。
在选择一个视频服务器进行视频推流后,由于进行视频推流会占用该视频服务器一定的带宽,所以,第一更新模块13需要在在线的视频资源管理器中对该视频服务器的视频资源信息进行更新;同样地,当完成视频推流后,释放了该视频服务器的带宽,也需要在在线的视频资源管理器中对该视频服务器的视频资源信息进行更新。确定负责该视频服务器的视频资源管理的视频资源管理器进行自身的视频资源信息更新后,需要将该视频服务器的更新后的视频资源信息广播给其它在线的视频资源管理器,由在线的视频资源管理器对自身的该视频服务器的视频资源信息进行更新。
根据本发明实施例提供的视频资源管理器,通过视频资源管理器对各个视频服务器的视频资源信息进行管理,根据视频推流请求所要求的视频码率选择合适的视频服务器进行视频推流,有利于视频服务器的合理调度。
图6为本发明一种视频资源管理器的另一个实施例的结构示意图。如图6所示,该视频资源管理器2000包括:
分配模块21,用于当接收到一个视频资源管理器广播的注册请求时,将所述视频资源管理器作为所述在线的视频资源管理器,给所述在线的视频资源管理器重新分配实例号。
在本发明的实施例中,包括一个或多个在线的视频资源管理器,它们构成一个局域网,分别具有各自的IP地址,在每个视频资源管理器中都镜像存储有所有视频服务器的视频资源信息。
视频资源管理器想要成为在线视频资源管理器,需要进行注册。在注册时,视频资源管理器需要向各个在线的视频资源管理器广播注册请求,其中一个在线的视频资源管理器负责该注册请求的处理,分配模块21将申请注册的视频资源管理器作为在线的视频资源管理器,给所有在线的视频资源管理器重新分配实例号,以动态分配视频资源管理器的实例号。在本发明中,实例号作为视频资源管理器的唯一一个标号,以不同的实例号代表不同的视频资源管理器。
作为一种实施方式,分配模块21具体用于按照所述在线的视频资源管理器的IP地址的排序的序号,构建所述在线的视频资源管理器的所述实例号。
例如,视频资源管理器A的IP是192.168.1.2,视频资源管理器B的IP是192.168.1.3,则不管A和B是怎样的启动顺序,按照A和B的IP地址的排序,A的实例号是1,而B的实例号是2,因为A的IP地址比B的IP地址要小;如果一个视频资源管理器C提出注册请求,其IP是192.168.1.1则按照A、B和C的IP地址的排序,需要重新分配A、B和C的实例号,它们的实例号分别是1、2和3。采用该种实例号的分配方式简单易行。
第二更新模块22,用于更新所述视频资源管理器自身的在线列表。
广播模块23,用于将所述在线列表广播给其它所述在线的视频资源管理器以由其它所述在线的视频资源管理器进行自身的所述在线列表的更新,所述在线列表包括在线的视频资源管理器的实例号、IP地址、端口号和时间戳。
在每个视频资源管理器中存储有一个在线列表,该在线列表包括了所有在线的视频资源管理器的实例号、IP地址、端口号和时间戳,端口号即在线的视频资源管理器的端口号,时间戳即视频资源管理器注册为在线状态的时间点。
由于有视频资源管理器注册为在线状态,由接收注册请求的视频资源管理器重新分配了所有在线的视频资源管理器的IP地址和实例号,因此,在该视频资源管理器的第二更新模块22更新了自身的在线列表后,广播模块23将该在线列表广播给其它在线的视频资源管理器以由其它在线的视频资源管理器进行自身的在线列表的更新。
第一发送模块24,用于当所述发送注册请求的视频资源管理器在设定时间内接收到所述在线的视频资源管理器发送的响应消息时,所述响应消息包括所述在线视频资源管理器的数据的版本号,根据所接收到的数据的版本号的比较结果,由所述发送注册请求的视频资源管理器向所述数据的版本号最高的所述在线视频资源管理器发送数据同步请求。
第二发送模块25,用于当所述发送注册请求的视频资源管理器在设定时间内没有接收到所述响应消息时,由所述发送注册请求的视频资源管理器向中心数据库发送数据同步请求。
第一发送模块24和第二发送模块25的功能为注册成为在线状态的视频资源管理器的数据的同步。申请注册的视频资源管理器广播注册请求后,在线的视频资源管理器向申请注册的视频资源管理器发送响应消息,该响应消息包括数据的版本号,该数据包括视频资源信息。在图3所示的视频资源管理系统调度视频服务器的架构图中,中心数据库也从视频资源管理系统中备份了以上数据。
首先,判断发送注册请求的视频资源管理器是否在设定时间内接收到了一个或多个在线视频资源管理器发送的响应消息,如果收到了一个响应消息,则从发送该响应消息的视频资源管理器中同步数据,如果收到多个响应消息,则比较该多个响应消息中的数据的版本号,选择从版本号最高的视频资源管理器中同步数据;如果没有在设定时间内收到该响应消息,则从中心数据库中同步数据。
第三更新模块26,用于当收到所述在线的视频资源管理器的定时广播或下线通知时,当检测到自身的所述在线列表需要更新时,则更新所述视频资源管理器自身的所述在线列表。
为了使每个在线的视频资源管理器都实时更新视频资源管理器的数据,例如视频资源管理器动态更新的实例号等,在线的视频资源管理器会定时广播其在线状态以及广播其下线通知,第三更新模块26收到该状态广播或下载通知时,检测自身的在线列表是否需要更新,如果是广播在线状态的情形,检测的结果一般是不需要更新;如果是下线通知的情形,检测的结果一般是需要更新在线列表。
选择模块27,用于当接收到视频推流请求时,根据所述视频推流请求所要求的视频码率,从至少一个视频服务器中选择一个可用带宽满足所述视频码率要求的视频服务器进行视频推流。
当接收到会话管理器发送给视频资源管理器的视频推流请求时,该视频推流请求携带有所请求推流的视频信息和视频码率,该视频信息包括所请求推流的视频流的名称、标号等视频流的基本信息。首先,根据该视频信息,在视频资源管理器中查找存储有与该视频信息对应的视频流的视频服务器,由于可能多个视频服务器存储有该视频流,或者可以由多个视频服务器从内容分发网络拉取该视频流,因此,根据该视频信息可能可以查找到多个视频服务器,但是,查找到的视频服务器的可用带宽还需要满足视频推流请求所要求的视频码率,因此,选择模块27可根据该视频码率筛选出可用带宽满足该视频码率要求的视频服务器。
确定模块28,用于根据所选择的视频服务器,确定进行视频资源管理的视频资源管理器。
在本实施例中,确定模块28具体用于根据所选择的视频服务器的标识号码与所述在线的视频资源管理器的个数进行取余计算的余数,确定进行视频资源管理的视频资源管理器的实例号,由所述实例号对应的视频资源管理器进行视频资源管理。
每个在线的视频资源管理器负责对多个视频服务器的视频资源信息进行管理,为了使视频资源管理器合理地分担视频服务器的视频资源信息的更新工作,针对选择的视频服务器,需要确定进行视频资源管理的视频资源管理器。
根据该取余计算,可以将视频服务器的视频资源信息例如当前可用带宽更新的工作均匀分摊到各个视频资源管理器。视频服务器的标识号码可以是视频服务器的网元ID。例如,部署了3台视频资源管理器,假定分配出去的视频服务器的网元ID是1000,根据公式可算出负责处理该视频服务器的视频资源管理器的实例号=1000%3=1(网元ID求余)。当接收到会话管理器申请请求的视频资源管理器的实例号是0,则需要把这个请求转发到实例号是1的视频资源管理器;当接收到会话管理器申请请求的视频资源管理器的实例号是1,则检查视频服务器的网元ID是1000的可用带宽,如果可用则更新带宽并响应分配成功,否则响应分配失败。
第一更新模块29,用于由所述确定的视频资源管理器将所述视频服务器进行推流后的视频资源信息更新给在线的视频资源管理器。
在本实施例中,第一更新模块29包括更新单元291、广播单元292。
更新单元291,用于由所述实例号对应的视频资源管理器更新自身存储的所述视频服务器的当前可用带宽。
广播单元292,用于由所述实例号对应的视频资源管理器将所述视频服务器的标识号码和视频码率广播给其它所述在线的视频资源管理器,以由其它所述在线的视频资源管理器进行自身的所述视频服务器的当前可用带宽的更新。
根据以上取余计算,确定了负责视频服务器带宽更新工作的视频资源管理器之后,则由该实例号对应的视频资源管理器更新视频服务器的当前可用带宽,同时,它还需要将该视频服务器的标识号码和视频码率广播给其它在线的视频资源管理器,以由其它在线的视频资源管理器进行视频服务器的当前可用带宽的更新。
根据本发明实施例提供的视频资源管理器,通过视频资源管理器对各个视频服务器的视频资源信息进行管理,根据视频推流请求选择合适的视频服务器进行视频推流,有利于视频服务器的合理调度;多个视频资源管理器中都镜像存储了各个视频服务器的实时的视频资源信息和运行状态信息,即使当其中的一个或多个视频资源管理器出现故障,仍然能保障安全可靠的调度视频服务器。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。