具体实施方式
下面,将参考附图详细地描述根据本申请的示例实施例。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解,本申请不受这里描述的示例实施例的限制。
申请概述
正如背景技术所述,现有技术的视频处理系统是通过将待处理的视频任务所对应的输入视频流添加到视频处理系统中来完成该视频任务的处理的,但该视频处理系统的并无任何关于该视频任务的信息,从而使得用户并不能从该视频处理系统中直观获知任何关于该视频任务的信息。
因此本申请提供一种视频处理任务项的创建方法、输入视频流的调度方法、视频处理任务项的创建装置、输入视频流的调度装置、电子设备以及计算机可读存储介质。该视频处理任务项的创建方法包括在用户界面上检测到用于创建视频处理任务项的事件时,确定与视频处理任务项相关的摄像头的信息;确定视频处理任务项的任务项名称以及视频处理任务项的运行时间段;以及基于与视频处理任务项相关的摄像头的信息、任务项名称与运行时间段,在用户界面上创建视频处理任务项。本申请实施例提供的视频处理任务项的创建方法使得用户可以在视频处理系统的用户界面上创建视频处理任务项,进而使得用户可以直观获知任何关于视频处理任务项的信息。
示例性系统
图1是本申请所适用的视频系统的示意性框架图。
如图1所示,视频系统可以包括多个摄像头130和电子设备110,且多个摄像头130可以通过传输网络120与电子设备110进行通信。具体地,摄像头130通过传输网络120将获取的输入视频流传送至电子设备110,以便电子设备110对该输入视频流进行处理。在这里,传输网络120可以是指有线网络,也可以是指无线网络,这里对于传输网络120的传输方式不做限定。
示例性方法
图2是本申请一示例性实施例提供的视频处理任务项的创建方法的流程示意图。本实施例可执行在上述图1所示中的电子设备110上,如图2所示,该方法可以包括如下步骤:
步骤205,在用户界面上检测到用于创建视频处理任务项的事件时,确定与视频处理任务项相关的摄像头130的信息。
具体地,用户可以通过用户界面与电子设备110进行交互。例如,用户界面可以包括视频处理任务项的创建按钮。当用户触发该按钮时,电子设备110可以检测到用于创建视频处理任务项的事件,并在用户界面上显示与该系统相连接的摄像头130的信息,以供用户进行选择。在进行选择之前,用户已经确定了视频处理任务项,并已经根据该确定的视频处理任务项获知了相关的摄像头130信息。在进行选择时,用户根据该获知的相关的摄像头130的信息,完成与视频处理任务项相关的摄像头130的信息的确定。
在这里,一个视频处理任务项与至少一个摄像头130相关。相应地,多个视频处理任务项与多个摄像头130相关,且不同的视频处理任务项之间可以存在摄像头130复用的情况。又由于一个摄像头130获取一路输入视频流,因此,一个视频处理任务项与至少一路输入视频流相关。相应地,多个视频处理任务项与多路输入视频流相关,且不同的视频处理任务项之间可以存在输入视频流复用的情况。
下面结合鞋店的应用场景,对视频处理任务项的概念进行描述。店主为了详细了解店内的情况,在鞋店的东西南北四个方向均设置了摄像头。为了便于区分,这四个摄像头可以分别称为摄像头a、摄像头b、摄像头c和摄像头d。为了能够了解鞋店内前台区域人员轨迹,则需要使用这四个摄像头的获取的输入视频流。为了能够了解前台区域进出的用户数量,则需要使用摄像头a和摄像头c的获取的输入视频流。在这里,对于电子设备110来说,统计前台区域人员轨迹以及前台区域进出的用户数量即为视频处理任务项。由于统计前台区域人员轨迹与摄像头a、摄像头b、摄像头c和摄像头d相关,前台区域进出的用户数量与摄像头a和摄像头c相关,因此,统计前台区域人员轨迹和前台区域进出的用户数量复用的输入视频流为摄像头a获取的输入视频流以及摄像头c获取的输入视频流。
步骤210,确定视频处理任务项的任务项名称以及视频处理任务项的运行时间段。
具体地,任务项名称可以用于对不同的视频处理任务项进行识别。运行时间段可以用于确定视频处理任务项的执行状态,从而为后续在用户界面上直接展示视频处理任务项的执行状态奠定基础。
在这里,运行时间段可以包括运行开始时间点和运行结束时间点,且运行时间段可以根据视频处理任务项对应的摄像头130的拍摄位置(即任务场景)来确定。对于某些拍摄位置的视频处理任务项来说,电子设备110每天处理的输入视频流的内容可以不是24小时的内容。换句话说,视频处理任务项的运行时间段可以根据实际需要来确定,从而避免运算资源的浪费。
除此之外,运行时间段的设置还使得电子设备110可以空余出运算资源,从而使得在空余出运算资源的时间段内,电子设备110可以处理其它待处理的输入视频流。
步骤215,基于与视频处理任务项相关的摄像头130的信息、任务项名称与运行时间段,在用户界面上创建视频处理任务项。
具体地,用户界面上可以存在任务列表,创建的视频处理任务项可以在该任务列表中展示。此外,相应的摄像头130的信息、任务项名称以及运行时间段也可以在任务列表中展示,以便用户对这些信息的核对。应该理解,当这些信息中存在错误信息时,用户可以点击该错误信息进行修改。
本申请实施例提供的视频处理任务项的创建方法使得用户可以在电子设备110的用户界面上创建视频处理任务项,进而使得用户可以直观获知任何关于视频处理任务项的信息。
图3是本申请另一示例性实施例提供的视频处理任务项的创建方法的流程示意图。
在本申请的一个实施例中,步骤205、210和215可以执行多次,从而使得用户界面上创建有多个视频处理任务项。在用户界面上创建有多个视频处理任务项之后,如图3所示,该方法可以进一步包括如下步骤:
步骤220,执行多个视频处理任务项。
具体地,步骤220即是对该多个视频处理任务项对应的多路输入视频流进行处理。当该多个视频处理任务项存在复用的输入视频流时,该被复用的输入视频流仅被处理一次。
此外,步骤220可以通过轮询的方式自动执行。例如,当用户界面的任务列表中存在新创建的视频处理任务项,由于存在轮询机制,该新创建的视频处理任务项将被自动执行步骤220。例如,相邻的两次询问之间的时间间隔可以为10秒。
再有,步骤220的具体实现方式可以参考下面的输入视频流的调度方法的实施例,为了避免重复,这里不再赘述。
在这里,电子设备110从用户角度出发,以执行多个视频处理任务项的方式来对该多个视频处理任务项对应的多路输入视频流进行处理,方法直观简洁,从而避免了用户需要先将多个视频处理任务项告知多个具有专业知识的人员来获知该多个视频处理任务项对应的多路输入视频流,再将获知的多路输入视频流添加至现有技术的视频处理系统中进行处理,进而加速了处理效率,并易于用户操作。
再有,步骤220的执行过程对于用户来说可以是隐藏的,从而进一步增加用户的体验友好度。
步骤225,确定每个视频处理任务项的执行状态。
具体地,步骤225也可以通过轮询的方式穿插在步骤220的执行过程中,且执行状态可以至少包括视频处理任务项正在运行、视频处理任务项运行结束或视频处理任务项等待运行。
例如,当一个视频处理任务项对应的输入视频流中存在等待处理的视频流时,该视频处理任务项的执行状态可以确定为视频处理任务项等待运行。当一个视频处理任务项的运行结束时间点与当前时间点相等时,该视频处理任务项的执行状态可以由视频处理任务项正在运行更新为视频处理任务项运行结束。对于剩余的情况,执行状态则可以确定为视频处理任务项正在运行。
步骤230,在用户界面上展示每个视频处理任务项的执行状态。
具体地,用户界面的任务列表中可以包括执行状态栏。当一个视频处理任务项的执行状态确定之后,可以在该执行状态栏中展示该视频处理任务项的执行状态。应当理解,当有视频处理任务项的执行状态发生更新时,由于轮询机制的存在,执行状态栏中相应的状态也可以更新。
在本申请的实施例中,电子设备110通过对视频处理任务项进行处理并在用户界面上展示视频处理任务项的执行状态,从用户的角度来说,相较于现有技术的视频处理系统,处理结果更加直观,用户的友好体验度更高。
上面描述了根据本申请实施例的视频处理任务项的创建方法,下面结合图4至图6描述根据本申请实施例的输入视频流的调度方法。在这里,该输入视频流的调度方法可以为图3中步骤220的具体实现方式。
图4是本申请一示例性实施例提供的输入视频流的调度方法的流程示意图。本实施例可执行在上述图1所示中的电子设备110上,如图4所示,该输入视频流的调度方法可以包括如下步骤,也就是说,图3中步骤220可以包括如下步骤:
步骤2200,确定多路输入视频流中的视频流的类型。
具体地,对于目前的视频处理系统来说,运算资源是有限的,从而导致该视频处理系统只能处理有限路数的输入视频流。但是,当用户向现有技术的视频处理系统添加待处理的输入视频流时,由于用户可以无法对每路输入视频流的权重考虑周全,进而导致一些重要的输入视频流由于运算资源被占用而无法被处理。因此,确定多路输入视频流中的视频流的类型变得尤为重要。
在这里,多路输入视频流可以分为两类,分别为第一预设类型的视频流和第二预设类型的视频流,且第一预设类型的视频流的权重大于等于第二预设类型的视频流的权重。
步骤2205,将类型属于第一预设类型的视频流加入运算资源池。
由于第一预设类型的视频流的权重大于等于第二预设类型的视频流的权重,因此,类型属于第一预设类型的视频流将优先加入运算资源池中进行处理,从而避免重要的输入视频流由于运算资源被占用而无法被处理。
步骤2210,对类型属于第二预设类型的视频流进行实时录制。
具体地,由于类型属于第二预设类型的视频流存在等待状态,因此,在等待的时间段内,为了避免错过相应的视频内容,可以对类型属于第二预设类型的视频流进行实时录制。
在本申请的一个实施例中,在步骤2210之后,该方法可以进一步包括在有第一预设类型的视频流从运算资源池取出后,将第二预设类型的视频流的录制内容加入运算资源池。
具体地,对于运算资源完全被占用的电子设备110来说,当有输入视频流从运算资源池中取出后,可以将处于等待状态的输入视频流加入到运算资源池中进行处理,以便充分利用运算资源,处理更多的视频处理任务项,以及加快每个视频处理任务项的处理速率。相应地,运算资源池对处于等待状态的输入视频流的处理可以首先是对该视频流的录制内容的处理。
在本申请的另一个实施例中,在将第二预设类型的视频流的录制内容加入运算资源池之前,该方法可以进一步包括判断运算资源池中每路第一预设类型的视频流是否符合第三预设条件,以及在第一预设类型的视频流符合第三预设条件时,将该第一预设类型的视频流从运算资源池取出。
例如,对于不同的视频处理任务项来说,被复用的输入视频流可以有不同的统计时间段,且统计时间段可以包括统计开始时间点和统计结束时间点。具体地,第三预设条件可以为当前时间点与运算资源池中一路第一预设类型的视频流的最晚的统计结束时间点相同。应当理解,当第一预设类型的视频流不存在被复用的情况时,该最晚的统计结束时间点即是该第一预设类型的视频流的统计结束时间点。
在本申请的实施例中,通过确定每路输入视频流的类型,从而使得权重高的输入视频流可以优先在运算资源池中进行处理,进而避免了重要的输入视频流由于运算资源被占用而无法被处理的问题。
图5是本申请另一示例性实施例提供的输入视频流的调度方法的流程示意图。图6是本申请又一示例性实施例提供的输入视频流的调度方法的流程示意图。
在本申请的一个实施例中,如图5所示,在上述图4所述实施例的基础上,步骤2200可以包括如下步骤:
步骤22000,统计每路输入视频流复用多个视频处理任务项的任务项数量。
具体地,输入视频流的权重可以由复用多个视频处理任务项的任务项数量来决定。统计的顺序可以按照视频处理任务项在任务列表中创建的顺序。
例如,如图6所示,图5中的步骤22000可以具体通过如下步骤实现:
步骤220000,依次判断多个视频处理任务项各自对应的输入视频流是否已加入视频流集。在这里,多个视频处理任务项的判断顺序可以依照多个视频处理任务项的的创建顺序。一个视频处理任务项对应的多路输入视频流的判断顺序可以依照对应的摄像头130的选择顺序。
步骤220002,若一个视频处理任务项对应的一路输入视频流未加入视频流集,则将该输入视频流加入视频流集,并将该视频流集的任务项数量加预设数。例如,该预设数可以为1。
步骤220004,若一个视频处理任务项对应的一路输入视频流已加入视频流集,则将该视频流集的任务项数量加该预设数。
步骤22002,将多路输入视频流按照该任务项数量由高到低进行排列,形成调度队列。
具体地,可以通过将一路输入视频流的任务项数量与其他输入视频流的任务项数量进行比较,选出任务项数量最大的输入视频流放入队列,以此类推,形成上述调度队列。在这里,输入视频流从队列的队尾加入。
在本申请的一个实施例中,可以存在至少两路输入视频流对应的任务项数量相等的情况。在这样的情况下,步骤22002可以包括将任务项数量相同的输入视频流按照统计任务项数量的先后进行排列,从而实现任务项数量相等的输入视频流的排列。
步骤22004,按照调度队列的排列顺序依次判断每路输入视频流是符合第一预设条件还是符合第二预设条件。
具体地,从调度队列的队首到队尾依次判断每路输入视频流是符合第一预设条件还是符合第二预设条件。
应当理解,当输入视频流未被多个视频处理任务项复用时,该输入视频流的最早的统计开始时间点即是统计开始时间点。
在本申请的一个实施例中,图4中的步骤2205可以具体包括在输入视频流符合第一预设条件时,将该输入视频流确定为第一预设类型的视频流,以及将该输入视频流加入运算资源池。
在本申请的另一个实施例中,图4中的步骤2210可以具体包括在输入视频流符合第二预设条件时,将该输入视频流确定为第二预设类型的视频流,以及对该输入视频流进行实时录制。
例如,第一预设条件可以是指当前时间点与正在被判断的输入视频流的最早的统计开始时间点相同,且运算资源池中输入视频流的数量小于预设数量。第二预设条件可以是指当前时间点与正在被判断的输入视频流的最早的统计开始时间点相同,且运算资源池中输入视频流的数量等于预设数量。
下面结合具体例子,更加详细地描述本申请的实施例。
图7是本申请一示例性实施例提供的整体流程示意图。图8a是本申请一示例性实施例提供的视频处理任务项的示意图。图8b是本申请一示例性实施例提供的处理逻辑示意图。图8c是本申请一示例性实施例提供的输入视频流的时间维度示意图。
步骤710,在用户界面上检测到用于创建视频处理任务项的事件时,确定与视频处理任务项相关的摄像头的信息。
具体地,在创建视频处理任务项时,需要从多个摄像头信息中选出与该视频处理任务项相关的摄像头信息。
步骤715,确定视频处理任务项的任务项名称以及运行时间段。
在这里,该任务项名称可以是由用户输入的,也可以是由用户选择。类似地,该运行时间段也是如此。
步骤720,基于摄像头的信息、任务项名称与运行时间段,在用户界面上创建视频处理任务项。
例如,如图8a所示,创建的视频处理任务项可以分别为视频处理任务项311、视频处理任务项312和视频处理任务项313。这些视频处理任务项与五个摄像头相关,分别标记为Camera1、Camera2、Camera3、Camera4和Camera5,且获取的输入视频流可以分别标记为输入视频流301、输入视频流302、输入视频流303、输入视频流304和输入视频流305。具体地,视频处理任务项311与输入视频流301、输入视频流302、输入视频流303和输入视频流304相关,且视频处理任务项311的运行时间段为8:00-19:00。视频处理任务项312与输入视频流301和输入视频流304相关,且视频处理任务项312的运行时间段为8:00-20:00。视频处理任务项313与输入视频流301、输入视频流302、输入视频流304和输入视频流305相关,且视频处理任务项313的运行时间段为10:00-18:00。
如图8b所示,电子设备110对三个视频处理任务项的处理可以分为三个层次,分别为任务层、视频流层和运算层。任务层可以先后完成视频处理任务项311、视频处理任务项312和视频处理任务项313的创建。
步骤725,统计多个视频处理任务项对应的多路输入视频流中每路输入视频流复用该多个视频处理任务项的任务项数量。
如图8b所示,视频流层可以完成每路输入视频流的权重确定,从而使得权重高的输入视频流可以优先被调度到运算资源池330中去处理,进而避免重要的输入视频流由于运算资源被占用而无法被处理。在这里,每路输入视频流的权重可以通过复用多个视频处理任务项的任务项数量来衡量。例如,如图8a所示,输入视频流301和输入视频流304均被视频处理任务项311、视频处理任务项312和视频处理任务项313三个任务项复用,输入视频流302被视频处理任务项311和视频处理任务项313两个任务项复用,输入视频流303和输入视频流305均只被一个任务项使用。
在这里,步骤725的具体实现方式可以参考图6。在步骤725中,多路输入视频流从多个视频处理任务中拆出,被拆出的输入视频流被放置在视频流集中,而该视频流集可以如图8b中的视频流层所示。
步骤730,将多路输入视频流按照上述任务项数量由高到低进行排列,形成调度队列。在这里,任务项数量相同的输入视频流可以按照统计任务项数量的先后进行排列。
例如,如图8a所示,由于输入视频流301、输入视频流302、输入视频流303、输入视频流304和输入视频流305的任务项数量分别为3个、2个、1个、3个和1个,因此,调度队列中多路输入视频流的排列顺序可以为输入视频流301、输入视频流304、输入视频流302、输入视频流303和输入视频流305。
如图8b的任务层所示,由于视频处理任务项311与输入视频流303相关而与输入视频流305不相关,视频处理任务项313与输入视频流305相关而与输入视频流303不相关,且视频处理任务项311的创建在视频处理任务项313的创建之前,因此,相较于输入视频流305,输入视频流303先被加入视频流集320,并先被统计任务项数量,进而使得在调度队列中输入视频流303可以排在输入视频流305的前面。
步骤735,判断当前时间点与调度队列中一路输入视频流的最早的统计开始时间点是否相等。在这里,步骤735可以是轮询执行的,且相邻的两次询问之间的时间间隔可以根据实际情况进行预设。
如图8b所示,运算层可以完成多路输入视频流的调度和处理。在这里,多路输入视频流的调度可以是指将调度队列中的多路输入视频流依次加入运算资源池330中或者等待队列331中。
具体地,从调度队列的队首到队尾,依次判断当前时间点与调度队列中的输入视频流的最早的统计开始时间点是否相同。例如,如图8a所示,视频处理任务项311、视频处理任务项312和视频处理任务项313复用输入视频流301。对于视频处理任务项311来说,输入视频流301的统计时间段为8:00-19:00。对于视频处理任务项312来说,输入视频流301的统计时间段为8:00-20:00。对于视频处理任务项313来说,输入视频流301的统计时间段为10:00-18:00。因此,如图8c所示,在一天中,输入视频流301的最早的统计开始时间点为8:00,输入视频流301的最晚的统计结束时间点为20:00,即输入视频流301的实际统计时间段为8:00-20:00。类似地,输入视频流302、输入视频流303、输入视频流304和输入视频流305各自的实际统计时间段也是如此。
应当理解,当输入视频流不存在复用的情况时,输入视频流的最早的统计开始时间点即是该输入视频流的统计开始时间点。
具体地,当步骤735的判断结果为是时,执行步骤740。当步骤735的判断结果为否时,继续执行步骤735,判断当前时间点与调度队列中下一路输入视频流的最早的统计开始时间点是否相等。
步骤740,判断运算资源池中的输入视频流的数量是小于预设数量还是等于预设数量。
具体地,当步骤740的判断结果为小于预设数量时,执行步骤745。当步骤740的判断结果为等于预设数量时,执行步骤750。在这里,预设数量可以为运算资源池能同时处理的输入视频流的最大数量。
步骤745,将输入视频流加入运算资源池。
例如,如图8c所示,在8:00时,输入视频流301、输入视频流304、输入视频流302和输入视频流303四路输入视频流达到统计开始时间点,被加入运算资源池330中进行运算。在10:00时,输入视频流305也达到统计开始时间点,但此时运算资源不足,输入视频流305被加入等待队列331中,并实时录制内容以等待被处理。在19:00时,由于视频处理任务项311和视频处理任务项313的运行时间段已结束,因此,输入视频流302和输入视频流303被从运算资源池330中取出,而空余下来的运算资源将被用于处理输入视频流305的录制内容。在20:00时,由于视频处理任务项312的运行时间段已结束,因此,输入视频流301和输入视频流304被从运算资源池330中取出。第二天早上8:00时,视频处理任务项311、视频处理任务项312和视频处理任务项313可以开始重新执行。
具体地,在执行步骤745之后,将继续执行步骤735,判断当前时间点与调度队列中下一路输入视频流的最早的统计开始时间点是否相等。
步骤750,将输入视频流加入等待队列,并对该输入视频流进行实时录制。
具体地,运算资源池中的输入视频流可以指前面实施例中提到的第一预设类型的视频流,等待队列中的输入视频流可以指前面实施例中提到的第二预设类型的视频流。
再有,输入视频流可以从等待队列的队首插入,从而使得等待队列中的输入视频流的排列次序与这些输入视频流在调度队列中的排列次序一致。在这里,该排列次序是指按照任务项数量由高到低进行排列。
例如,如图8b中的运算层所示,运算资源池330只能承载四路输入视频流的同时运算。因此,Camera1、Camera4、Camera2、Camera3对应的输入视频流被优先加入运算资源池330中进行运算。Camera5对应的输入视频流由于运算资源不足,被加入在等待队列331中。
步骤755,判断当前时间点与运算资源池中一路输入视频流的最晚的统计结束时间点是否相同。
具体地,当步骤755的判断结果为是时,执行步骤760。当步骤755的判断结果为否时,继续执行步骤755,判断当前时间点与运算资源池中下一路输入视频流的最晚的统计结束时间点是否相同。
步骤760,将输入视频流从运算资源池中取出,并将等待队列中位于队首的输入视频流对应的录制内容加入运算资源池。相应地,该位于队首的输入视频流也将从等待队列中取出。
具体地,当一个视频处理任务项对应的输入视频流已全部从运算资源池中取出后,该对应的输入视频流被运算后生成的格式化处理结果将被再次统计,生成基于该视频处理任务项的统计结果,以便用户直接使用。
步骤765,确定多个视频处理任务项中每个视频处理任务项的执行状态。
在这里,步骤765可以轮询执行,且当运算资源池中有输入视频流加入时,步骤765就可以开始执行,且确定的顺序可以按照该多个视频处理任务项的创建顺序。
另外,执行状态可以至少包括视频处理任务项正在运行、视频处理任务项运行结束或视频处理任务项等待运行。
具体地,当一个视频处理任务项对应的至少一路输入视频流在等待队列中时,该视频处理任务项的执行状态为视频处理任务项等待运行。当一个视频处理任务项的运行结束时间点与当前时间点相等时,该视频处理任务项的执行状态由视频处理任务项正在运行更新为视频处理任务项运行结束。对于剩余的情况,执行状态则为视频处理任务项正在运行。
步骤770,在用户界面上展示每个视频处理任务项的执行状态。
示例性装置
图9是本申请一示例性实施例提供的视频处理任务项的创建装置的示意性结构图。
如图9所示,该视频处理任务项的创建装置可以包括第一确定模块140,用于在用户界面上检测到用于创建视频处理任务项的事件时,确定与视频处理任务项相关的摄像头130的信息,以及确定视频处理任务项的任务项名称以及视频处理任务项的运行时间段;创建模块141,用于基于与视频处理任务项相关的摄像头130的信息、任务项名称与运行时间段,在用户界面上创建视频处理任务项。
本申请实施例提供的视频处理任务项的创建装置使得用户可以在电子设备110的用户界面上创建视频处理任务项,进而使得用户可以直观获知任何关于视频处理任务项的信息。
图10是本申请另一示例性实施例提供的视频处理任务项的创建装置的示意性结构图。
在本申请的一个实施例中,用户界面上创建有多个视频处理任务项,如图10所示,该装置可以进一步包括执行模块142,用于执行多个视频处理任务项,以及确定每个视频处理任务项的执行状态;展示模块143,用于在用户界面上展示每个视频处理任务项的执行状态。在这里,执行状态可以至少包括视频处理任务项正在运行、视频处理任务项运行结束或视频处理任务项等待运行。
在本申请的一个实施例中,一个摄像头130获取一路输入视频流,一个视频处理任务项对应至少一路输入视频流,执行模块142确定多路输入视频流中的视频流的类型,将类型属于第一预设类型的视频流加入运算资源池,以及对类型属于第二预设类型的视频流进行实时录制。
在本申请的一个实施例中,执行模块142还在对类型属于第二预设类型的视频流进行实时录制之后,在有第一预设类型的视频流从运算资源池取出后,将第二预设类型的视频流的录制内容加入运算资源池。
在本申请的一个实施例中,执行模块142统计每路输入视频流复用多个视频处理任务项的任务项数量,将多路输入视频流按照任务项数量由高到低进行排列,形成调度队列,以及按照调度队列的排列顺序依次判断每路输入视频流是符合第一预设条件还是符合第二预设条件。
在本申请的一个实施例中,执行模块142在输入视频流符合第一预设条件时,将该输入视频流确定为第一预设类型的视频流,以及将该输入视频流加入运算资源池。
在本申请的一个实施例中,执行模块142在输入视频流符合第二预设条件时,将该输入视频流确定为第二预设类型的视频流,以及对该输入视频流进行实时录制。
在本申请的一个实施例中,执行模块142将任务项数量相同的输入视频流按照统计任务项数量的先后进行排列。
在本申请的一个实施例中,执行模块142依次判断多个视频处理任务项各自对应的输入视频流是否已加入视频流集,若一个视频处理任务项对应的一路输入视频流未加入视频流集,则将该输入视频流加入视频流集,并将该视频流集的任务项数量加预设数,以及若一个视频处理任务项对应的一路输入视频流已加入视频流集,则将该视频流集的任务项数量加预设数。
在本申请的一个实施例中,执行模块142还在将第二预设类型的视频流的录制内容加入运算资源池之前,判断运算资源池中每路第一预设类型的视频流是否符合第三预设条件,以及在第一预设类型的视频流符合第三预设条件时,将该第一预设类型的视频流从运算资源池取出。
在视频处理任务项的创建装置的实施例中,第一确定模块140、创建模块141、执行模块142和展示模块143的操作和功能可以参考视频处理任务项的创建方法的实施例,为了避免重复,在此不再赘述。
图11是本申请一示例性实施例提供的输入视频流的调度装置的示意性结构图。本实施例可以是上述图1所示的电子设备110的组成部分。
在输入视频流的调度装置所在的视频系统中,一个视频处理任务项与至少一个摄像头130的信息相关,一个摄像头130获取一路输入视频流,多个视频处理任务项对应多路输入视频流。如图11所示,该调度装置可以包括第二确定模块150,用于确定多路输入视频流中的视频流的类型;调度模块151,用于将类型属于第一预设类型的视频流加入运算资源池;以及录制模块152,用于对类型属于第二预设类型的视频流进行实时录制。
在本申请的实施例中,通过确定每路输入视频流的类型,从而使得权重高的输入视频流可以优先在运算资源池中进行处理,进而避免了重要的输入视频流由于运算资源被占用而无法被处理的问题。
在本申请的一个实施例中,调度模块151还在对类型属于第二预设类型的视频流进行实时录制之后,在有第一预设类型的视频流从运算资源池取出后,将第二预设类型的视频流的录制内容加入运算资源池。
在本申请的一个实施例中,第二确定模块150统计每路输入视频流复用多个视频处理任务项的任务项数量,将多路输入视频流按照任务项数量由高到低进行排列,形成调度队列,以及按照调度队列的排列顺序依次判断每路输入视频流是符合第一预设条件还是符合第二预设条件。
在本申请的一个实施例中,调度模块151在输入视频流符合第一预设条件时,将该输入视频流确定为第一预设类型的视频流,以及将该输入视频流加入运算资源池。
在本申请的一个实施例中,录制模块152在输入视频流符合第二预设条件时,将该输入视频流确定为第二预设类型的视频流,以及对该输入视频流进行实时录制。
在本申请的一个实施例中,第二确定模块150将任务项数量相同的输入视频流按照统计任务项数量的先后进行排列。
在本申请的一个实施例中,第二确定模块150依次判断多个视频处理任务项各自对应的输入视频流是否已加入视频流集,若一个视频处理任务项对应的一路输入视频流未加入视频流集,则将该输入视频流加入视频流集,并将该视频流集的任务项数量加预设数,以及若一个视频处理任务项对应的一路输入视频流已加入视频流集,则将该视频流集的任务项数量加预设数。
在本申请的一个实施例中,调度模块151还在将第二预设类型的视频流的录制内容加入运算资源池之前,判断运算资源池中每路第一预设类型的视频流是否符合第三预设条件,以及在第一预设类型的视频流符合第三预设条件时,将该第一预设类型的视频流从运算资源池取出。
在输入视频流的调度装置的实施例中,第二确定模块150、调度模块151和录制模块152的操作和功能可以参考输入视频流的调度方法的实施例,为了避免重复,在此不再赘述。
示例性电子设备
下面,参考图12来描述根据本申请实施例的电子设备。图12是本申请一示例性实施例提供的电子设备的框图。
如图12所示,电子设备160包括一个或多个处理器161和存储器162。
处理器161可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备160中的其他组件以执行期望的功能。
存储器162可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器161可以运行所述程序指令,以实现上文所述的本申请的各个实施例的视频处理任务项的创建方法以及/或者其他期望的功能,或者,实现上文所述的本申请的各个实施例的输入视频流的调度方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备160还可以包括:输入装置163和输出装置164,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,该输入装置163可以是通信网络连接器,还可以包括键盘、鼠标等等。
该输出装置164可以向外部输出各种信息,可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图12中仅示出了该电子设备160中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备160还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的视频处理任务项的创建方法中的步骤,或者,输入视频流的调度方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的视频处理任务项的创建方法中的步骤,或者,输入视频流的调度方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。