CN114741198B - 视频流处理方法及装置、电子设备、计算机可读介质 - Google Patents
视频流处理方法及装置、电子设备、计算机可读介质 Download PDFInfo
- Publication number
- CN114741198B CN114741198B CN202210413028.2A CN202210413028A CN114741198B CN 114741198 B CN114741198 B CN 114741198B CN 202210413028 A CN202210413028 A CN 202210413028A CN 114741198 B CN114741198 B CN 114741198B
- Authority
- CN
- China
- Prior art keywords
- processing
- video stream
- video
- processed
- edge server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 349
- 238000000034 method Methods 0.000 claims abstract description 70
- 239000011159 matrix material Substances 0.000 claims abstract description 49
- 238000013507 mapping Methods 0.000 claims abstract description 25
- 230000008569 process Effects 0.000 claims description 42
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 238000005111 flow chemistry technique Methods 0.000 description 3
- 238000012384 transportation and delivery Methods 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/502—Proximity
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请的实施例揭示了一种视频流处理方法及装置、电子设备、计算机可读介质。该方法包括:接收云服务器发送的待处理视频流以及多个处理模型;对待处理视频流进行解码处理,得到多个视频帧,并根据多个视频帧构建视频帧矩阵,视频帧矩阵的维度与处理模型的数量匹配;构建视频帧矩阵中含有的视频帧与多个处理模型之间的映射关系,并基于映射关系将视频帧矩阵中含有的视频帧分别输入至对应的处理模型中进行处理,得到多个处理模型输出的处理结果;对输出的处理结果进行汇总和编码处理,得到目标视频流,并对目标视频流进行推流处理。本申请的实施例可以在节约系统时延的同时提升边缘服务器对待处理视频流的处理效率。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种视频流处理方法、视频流处理装置、电子设备以及计算机可读介质。
背景技术
随着深度学习技术的发展,智能监控所用到的检测、识别、跟踪等技术逐步成熟,这使得视频流数据的数量增长迅速,随着实时视频流数据的数量增加,需要能够同时对数百路、数千路的视频流进行并行处理。随着构成并行处理系统的计算资源规模的增加,在分配计算资源,建立编程环境和部署用户应用程序方面,技术的编排对于正确管理计算资源已经变得至关重要。
相关技术中,当边缘服务器堆积大量待处理视频流时,需要对待处理视频流进行一一处理,处理时长较长,极大地影响了待处理视频的处理效率,进而影响了推流效率,推流效果较差。
可见,如何提升视频流处理效率从而提升推流效率、推流效果是亟待解决的问题。
发明内容
为解决上述技术问题,本申请的实施例提供了一种视频流处理方法、视频流处理装置、电子设备以及计算机可读介质。
根据本申请实施例的一个方面,提供了一种视频流处理方法,该方法包括:接收云服务器发送的待处理视频流以及多个处理模型;其中,所述待处理视频流以及所述处理模型是所述云服务器基于分配条件确定出目标边缘服务器,并为所述目标边缘服务器分配与发送的;对所述待处理视频流进行解码处理,得到多个视频帧,并根据所述多个视频帧构建视频帧矩阵,所述视频帧矩阵的维度与所述处理模型的数量匹配;构建所述视频帧矩阵中含有的视频帧与所述多个处理模型之间的映射关系,并基于所述映射关系将所述视频帧矩阵中含有的视频帧分别输入至对应的处理模型中进行处理,得到所述多个处理模型输出的处理结果;对所述输出的处理结果进行汇总和编码处理,得到目标视频流,并对所述目标视频流进行推流处理。
根据本申请实施例的一个方面,提供了一种视频流处理方法,该方法包括:从多个边缘服务器中选择满足分配条件的边缘服务器作为目标边缘服务器;为所述目标边缘服务器分配待处理视频流以及用于处理所述待处理视频流的多个处理模型;将所述待处理视频以及所述多个处理模型发送至所述目标边缘服务器,以使所述目标边缘服务器根据所述多个处理模型对所述待处理视频流进行处理,得到目标视频流。
根据本申请实施例的一个方面,提供了一种视频流处理装置,配置于边缘服务器中,该装置包括:接收模块,配置为接收云服务器发送的待处理视频流以及多个处理模型;其中,所述待处理视频流以及所述处理模型是所述云服务器基于分配条件确定出目标边缘服务器,并为所述目标边缘服务器分配与发送的;视频解码模块,配置为对所述待处理视频流进行解码处理,得到多个视频帧,并根据所述多个视频帧构建视频帧矩阵,所述视频帧矩阵的维度与所述处理模型的数量匹配;模型处理模块,配置为构建所述视频帧矩阵中含有的视频帧与所述多个处理模型之间的映射关系,并基于所述映射关系将所述视频帧矩阵中含有的视频帧分别输入至对应的处理模型中进行处理,得到所述多个处理模型输出的处理结果;推流模块,配置为对所述输出的处理结果进行汇总和编码处理,得到目标视频流,并对所述目标视频流进行推流处理。
根据本申请实施例的一个方面,提供了一种视频流处理装置,配置于云服务器中,该装置包括:目标服务器确定模块,配置为从多个边缘服务器中选择满足分配条件的边缘服务器作为目标边缘服务器;分配模块,配置为为所述目标边缘服务器分配待处理视频流以及用于处理所述待处理视频流的多个处理模型;发送模块,配置为将所述待处理视频以及所述多个处理模型发送至所述目标边缘服务器,以使所述目标边缘服务器根据所述多个处理模型对所述待处理视频流进行处理,得到目标视频流。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如前所述的视频流处理方法。
根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的视频流处理方法。
在本申请的实施例所提供的技术方案中,一方面,云服务器向满足分配条件的目标边缘服务器分配待处理视频流和处理模型,完成资源分配和下发,根据分配条件,只有满足分配条件的目标边缘服务器才能分配到待处理视频流和处理模型,使得每个目标边缘服务器的负载均在承受的范围内,有助于减小整个系统的负载,节约系统时延。另一方面,满足分配条件的目标边缘服务器可以是多个,目标边缘服务器对待处理视频流解码处理之后,再通过多个处理模型对解码后的视频帧进行并行处理,与相关技术中边缘处理器的串行处理方式相比,采用并行处理方式有助于提升待处理视频流的处理效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本申请的一示例性实施例示出的视频流处理系统框架示意图;
图2是本申请的一示例性实施例示出的视频流处理方法的流程图;
图3是图2所示实施例中的步骤S220在一示例性实施例中的流程图;
图4是图3所示实施例中的步骤S310在一示例性实施例中的流程图;
图5是本申请的另一示例性实施例示出的视频流处理方法的流程图;
图6是本申请的另一示例性实施例示出的视频流处理方法的流程图;
图7是图6所示实施例中的步骤S610在一示例性实施例中的流程图;
图8是本申请的另一示例性实施例示出的视频流处理方法的流程图;
图9是本申请的一示例性实施例示出的视频流处理装置的框图;
图10是本申请的另一示例性实施例示出的视频流处理装置的框图;
图11是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本申请实施例提供的方案涉及视频流并行处理技术。可以理解的是,随着实时视频流数据的数量增加,需要能够同时对数百路、数千路的视频流进行并行处理。相关技术中视频流处理系统无法动态自适应的处理分配的处理模型和待处理视频流,因此,当边缘服务器的面对大规模的待处理视频流时,边缘服务器执行任务的负载高,处理效率低下,导致实时推流的效果不佳。
因此,本申请提出一种视频流处理系统,请参阅图1,图1是本申请的一示例性实施例示出的视频流处理系统框架示意图,如图1所示,该视频流处理系统包括云服务器101和多个边缘服务器102,从图1可以看出,云服务器101和边缘服务器102均具有逻辑计算功能,其中:
云服务器101从多个边缘服务器102中选择满足分配条件的边缘服务器102作为目标边缘服务器102;之后为目标边缘服务器102分配待处理视频流以及用于处理待处理视频流的多个处理模型;之后将待处理视频以及多个处理模型发送至目标边缘服务器102。
边缘服务器102接收云服务器101发送的待处理视频流以及多个处理模型;之后对待处理视频流进行解码处理,得到多个视频帧,并根据多个视频帧构建视频帧矩阵,视频帧矩阵的维度与处理模型的数量匹配;之后构建视频帧矩阵中含有的视频帧与多个处理模型之间的映射关系,并基于映射关系将视频帧矩阵中含有的视频帧分别输入至对应的处理模型中进行处理,得到多个处理模型输出的处理结果;之后对输出的处理结果进行汇总和编码处理,得到目标视频流,并对目标视频流进行推流处理。
可以理解的是,在视频流处理系统中,云服务器101负责资源协调和资源下发,边缘服务器102负责处理云服务器101下发的资源,与云服务器101进行通信连接的边缘服务器102为多个。满足分配条件的目标边缘服务器102可以是一个或多个。
需要说明的是,本申请实施例中的资源是指云服务器101为满足分配条件的目标边缘服务器102分配的待处理视频流和处理模型,其中,处理模型是用于处理待处理视频流的智能模型,例如可以是行人检测模型、人脸检测与识别模型、行人检测与跟踪模型、行人姿态估计模型、车辆检测模型或车型识别模型等,本实施例对此不做限制。
本申请实施例中的处理模型的类型与视频流处理系统期望实现的功能相匹配,云服务器101可以根据视频流处理系统期望实现的功能向满足资源分配条件的目标边缘服务器102分配对应功能类型的处理模型,本申请实施例对处理模型的类型不做限制。例如,若视频流处理系统期望实现的功能是进行行人检测,则处理模型可以是进行图像处理的深度学习模型,如行人识别模型,云服务器101确定满足分配条件的目标边缘服务器102后,向目标边缘服务器102分配并下发行人识别模型,以使视频流处理系统实现行人检测功能。
本申请实施例中的分配条件包括边缘服务器执行任务所占中央处理器的比例、边缘服务器执行任务所占图像处理器的比例以及边缘服务器执行任务所运行的进程数量。
在本申请的一个实施例中,边缘服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统。云服务器101是能够提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。云服务器101和边缘服务器102可以通过3G(第三代的移动信息技术)、4G(第四代的移动信息技术)、5G(第五代的移动信息技术)等无线网络与管控设备103进行通信,本处也不对此进行限制。
基于图1的应用场景,在采用了本申请实施例的技术方案之后,云服务器101向满足分配条件的目标边缘服务器102分配待处理视频流和处理模型,进行资源分配和下发,目标边缘服务器102负责根据云服务器分配的处理模型处理待处理视频流,通过多个目标边缘服务器并行处理,以及多个处理模型并行处理的方式,在节约系统时延的同时提升了对待处理视频流的处理效率。
以下对本申请实施例的技术方案的各种实现细节进行详细阐述:
图2是本申请的一示例性实施例示出的一种视频流处理方法的流程图。如图2所示,该方法可以由图1所示视频流处理系统框架中的云服务器101执行。应理解的是,该方法也可以适用于其它的示例性实施环境,并由其它实施环境中的设备具体执行,本实施例不对该方法所适用的实施环境进行限制。
如图2所示,视频流处理方法至少包括步骤S210至步骤S240,详细介绍如下:
步骤S210,接收云服务器发送的待处理视频流以及多个处理模型;其中,待处理视频流以及处理模型是云服务器基于分配条件确定出目标边缘服务器,并为目标边缘服务器分配与发送的。
在本申请实施例中,云服务器负责确定出目标边缘服务器,以及对边缘服务器进行资源协调,云服务器基于分配条件向满足分配条件的边缘服务器发送待处理视频流和用于处理待处理视频流的处理模型。
步骤S220,对待处理视频流进行解码处理,得到多个视频帧,并根据多个视频帧构建视频帧矩阵,视频帧矩阵的维度与处理模型的数量匹配。
在本申请实施例中的解码处理可以通过跳帧处理算法实现,这是由于视频流处理系统的实际应用中,为了减少系统的时延和处理效率,无需对视频流中的每一帧都进行处理,只需要将视频流中的关键帧进行处理就能实现业务需求,因此,采用跳帧处理算法提取视频流中的关键帧,能够很大程度上减少系统时延,保证对视频流的处理效率,从而能够显著提高系统的可用性。
在本申请的一个实施例中,请参阅图3,步骤S220中对待处理视频流进行解码处理,得到多个视频帧的过程,可以包括步骤S310至步骤S320,详细介绍如下:
步骤S310,根据待处理视频流的帧率以及指定的处理模型对应的处理时长,确定时长值。
本申请实施例中的帧率表示图形处理器处理场时每秒钟能够更新的次数,视频的帧率决定了每一帧的延迟,高帧率则延迟小,可以得到更流畅、更逼真的动画。
本申请实施例中,各个处理模型输入的待处理视频流的数量可能不一致,因此各个处理模型在处理对应的待处理视频流时,处理时长也不一致,可以将处理时长最长的那一个作为指定的处理模型。
在本申请的一个实施例中,请参阅图4,步骤S310中根据待处理视频流的帧率以及指定的处理模型对应的处理时长,确定时长值的过程,可以包括步骤S410至步骤S430,详细介绍如下:
步骤S410,从多个处理模型中选择出处理时长最多的处理模型作为指定的处理模型,并获取指定的处理模型对应的处理时长。
本申请实施例中,边缘服务器中的处理模型在处理视频流时,是并行执行的,因此视频流处理系统处理业务的时长与处理时长最多的处理模型相同。
步骤S420,根据待处理视频流的帧率计算第一时间值。
应当理解的是,视频流的帧率决定了每一帧的延迟,本申请实施例中的第一时间值可以为视频流中连续N帧的总时延。
示例性的,第一时间值的计算表达式如下:
其中,T为第一时间值,fps为帧率。
步骤S430,将第一时间值与处理时长进行求差运算,得到时长值。
示例性的,时长值的计算表达式如下:
T-Max(time_mideli)
其中,T为第一时间值,T-Max(time_modeli)为时长值。
这样,通过实施可选实施例,由于待处理视频流的帧率决定了每一帧的延迟,因此根据帧率计算表达时延的第一时间值,再根据第一时间值和指定的处理模型对应的处理时长计算确定时长值,使得计算结果更加准确,从而保证跳帧取值的准确性。
步骤S320,根据时长值和目标边缘服务器执行多个任务的总时长值,确定对待处理视频流进行解码处理所依据的跳帧取值。
需要说明的是,目标边缘服务器执行的任务包括推流任务、拉流任务和其他任务,且目标边缘服务器可以并行执行多个任务。
这样,通过实施可选实施例,目标边缘服务器通过确定出的跳帧取值对接收到的待处理视频流进行跳帧解码处理,不仅能够在节约边缘服务器时延的同时提升处理模型和待处理视频流的业务处理效率,还能减少边缘服务器的负载。
本申请实施例中的跳帧表示视频流的处理过程中有一帧或几帧,跳过不进行处理,不进行处理的这些视频帧可以为非关键帧,保留的视频帧可以为关键帧。关键帧和非关键帧的确定取决于跳帧取值,跳帧取值通常由数字来表示,例如在一定时间内视频帧有10帧,若跳帧取值为1,则表示跳过连续的一帧的视频帧,若跳帧取值为2,则跳过连续的2帧视频帧。
在本申请的一个实施例中,步骤S320中根据时长值和目标边缘服务器执行多个任务的总时长值,确定对待处理视频流进行解码处理所依据的跳帧取值的过程,可以包括以下过程:
将时长值与总时长值进行求商运算,得到对待处理视频流进行解码处理所依据的跳帧取值。
示例性的,跳帧取值可以采用如下计算表达式:
其中,Kip_N为跳帧取值,T为第一时间值,T-Max(time_modeli)为时长值,为目标边缘服务器执行多个任务的总时长值,time_worki为目标边缘服务器执行其他任务的时长,time_pulli为目标边缘服务器执行拉流任务的时长,time_pushi为目标边缘服务器执行推流任务的时长,数学符号/>表示做向下取整的运算。
步骤S330,按照跳帧取值对待处理视频流进行解码处理,得到解码后的多个视频帧。
本申请实施例中通过跳帧算法实现跳帧取值,只将关键帧输入至处理模型中做处理,而非关键帧则舍弃不做处理,能够在节约时延的同时提升处理模型和待处理视频流的处理效率,并减少了中央处理器CPU和图像处理器GPU的负载。
步骤S230,构建视频帧矩阵中含有的视频帧与多个处理模型之间的映射关系,并基于映射关系将视频帧矩阵中含有的视频帧分别输入至对应的处理模型中进行处理,得到多个处理模型输出的处理结果。
本申请实施例中,构建视频帧矩阵中含有的视频帧与多个处理模型之间的映射关系使得每个处理模型都有对应的输入,例如,视频帧矩阵的维度与处理模型的数量相同,每一个维度对应输入到处理模型中进行处理,得到处理模型的处理结果。
步骤S240,对输出的处理结果进行汇总和编码处理,得到目标视频流,并对目标视频流进行推流处理。
本申请实施例中的编码处理可以为视频编码处理,将处理模型输出的视频帧处理结果编码为目标视频流,以便进行推流处理。
由上可知,本申请实施例中的云服务器为满足分配条件的目标边缘服务器分配待处理视频流和处理模型,完成资源的分配和下发,云服务器可以将待处理视频流和处理模型分配给多个满足分配条件的目标边缘服务器,各个目标边缘服务器根据接收到的处理模型对接收到的待处理视频流进行并行处理,使得每个目标边缘服务器的负载均在承受的范围内,有助于减小整个系统的负载,并行的处理方式有助于提升系统对视频流的处理效率;目标边缘服务器对接收到的待处理视频流进行解码处理,在解码时通过跳帧算法实现跳帧取值,不仅能够在节约边缘服务器时延的同时提升处理模型和待处理视频流的业务处理效率,还能减少边缘服务器的负载。
图5是本申请的另一示例性实施例示出的一种视频流处理方法的流程图。如图5所示,该方法可以由图1所示视频流处理系统框架中的边缘服务器102执行。应理解的是,该方法也可以适用于其它的示例性实施环境,并由其它实施环境中的设备具体执行,本实施例不对该方法所适用的实施环境进行限制。
图5实施例是在图2所示实施例的基础上提出的,与图2所示实施例的不同之处仅在于,在步骤S240对输出的处理结果进行汇总和编码处理,得到目标视频流的过程之后,视频流处理方法还包括步骤S510至步骤S520,详细介绍如下:
步骤S510,计算边缘服务器的负载,并生成负载数据。
在本申请实施例中,边缘服务器的负载包括中央处理器的负载、图像处理器的负载和任务进程负载。
步骤S520,将负载数据发送至云服务器,以使云服务器根据负载数据调整向目标边缘服务器发送的待处理视频流以及多个处理模型。
示例性的,若边缘服务器A的负载超出了预设负载阈值,则说明该边缘服务器A已满负荷工作或超负荷工作,无法再处理高效率处理更多视频流了,云服务器将该边缘服务器标记为不满足分配条件,在进行下一次资源分配时,不再为该边缘服务器A分配待处理视频流和处理模型。
需要说明的是,步骤S510至步骤S520的执行时序是在边缘服务器对输出的处理结果进行汇总和编码处理得到目标视频流之后,其也可以是在边缘服务器对目标视频流进行推流处理之后,还可以是任意时刻例如可以是每隔几分钟周期性执行等,在实际应用中,可以根据具体应用场景进行灵活调整。
由上可知,本申请实施例中的云服务器为满足分配条件的目标边缘服务器分配待处理视频流和处理模型,目标服务器根据接收到的待处理视频流和处理模型确定出目标视频流并对目标视频流进行推流处理后,计算目标边缘服务器的负载情况并发送至云服务器,云服务器去根据各个目标边缘服务器的负载情况动态调整为各个目标边缘服务器分配的待处理视频流数量和处理模型数量,实现了处理模型和待处理视频流业务的动态调整,对目标边缘服务器进行资源的动态协调有助于减少目标边缘服务器的CPU负载及GPU负载,从而有助于在节约时延和提升视频流处理系统的稳定性。
图4至图5所示实施例是从边缘服务器的角度进行的阐述,以下结合图6从云服务器的角度对本申请实施例的技术方案的实现细节进行详细阐述:
图6是本申请的另一示例性实施例示出的一种视频流处理方法的流程图。如图6所示,该方法可以由图1所示视频流处理系统框架中的云服务器102执行。应理解的是,该方法也可以适用于其它的示例性实施环境,并由其它实施环境中的设备具体执行,本实施例不对该方法所适用的实施环境进行限制。
如图6所示,视频流处理方法至少包括步骤S610至步骤S630,详细介绍如下:
步骤S610,从多个边缘服务器中选择满足分配条件的边缘服务器作为目标边缘服务器。
在本申请的一个实施例中,分配条件包括针对执行任务的预设参数阈值。步骤S610中从多个边缘服务器中选择满足分配条件的边缘服务器作为目标边缘服务器的过程,可以包括步骤S710至步骤S720,详细介绍如下:
步骤S710,获取各个边缘服务器当前执行任务的执行相关数据;其中,执行相关数据包括执行所占中央处理器比例,执行所占图像处理器比例,以及执行所运行的进程数量。
本申请实施例中,边缘服务器当前执行任务包括拉流任务、推流任务和其他任务,且拉流任务、推流任务和其他任务可以是并行执行的。
步骤S720,根据执行相关数据与预设参数阈值之间的匹配关系,确定各个边缘服务器是否满足分配条件,并将满足分配条件的边缘服务器作为目标边缘服务器。
本申请实施例的预设参数阈值是根据实验或人工经验而预先设置的用于判断边缘服务器是否满足分配条件的期望值。
在本申请实施例中,预设参数阈值可以包括:第一预设值、第二预设值和第三预设值。
示例性的,第一预设值与边缘服务器执行任务时所占的中央处理器的比例有关,第一预设值的计算方式可以包括以下过程:获取第一阈值,根据第一阈值与边缘服务器能负载的最大核心数计算第一预设值。
本申请实施例中的第一阈值用于将边缘服务器执行任务占中央处理器的比例约束在边缘服务器能负载的最大核心数范围内,第一阈值的取值范围可以为0.8-1.2。
示例性的,第二预设值的计算方式可以包括以下过程:获取第二阈值,根据第二阈值与边缘服务器的最大进程数计算第二预设值。
本申请实施例中的第二阈值可以用于约束边缘服务器执行任务的进程数,第二阈值的范围可以为0.8-1。
示例性的,第三预设值的计算方式可以包括以下过程:获取第三阈值,根据第三阈值与边缘服务器的最大GPU计算第三预设值。
本申请实施例中的第三阈值可以用于约束边缘服务器执行任务的图像处理器比例,第三阈值的取值范围可以为0.9-1。
在本申请实施例中,执行相关数据与预设参数阈值之间的匹配关系可以为:若边缘服务器同时满足执行所占中央处理器比例小于第一预设值,执行所占图像处理器比例小于第二预设值,执行所运行的进程数量小于第三阈值,则确定边缘服务器满足分配条件,可以作为目标边缘服务器。
示例性的,分配条件的计算表达式可以如下:
其中,CPU(modeli)为目标边缘服务器通过处理模型执行任务所占用的中央处理器CPU比例,n为处理模型的数量,CPU(PUllj)为目标边缘服务器执行拉流任务所占用的CPU比例,s为拉流的视频流数量,CPU(PUSHk)为目标边缘服务器执行拉流任务所占用的CPU比例,p为推流的视频流数量,即并行处理的视频流的数量,CPU(WORKq)为目标边缘服务器执行其他任务所占的CPU比例,w表示其他任务的任务数量,Th1表示第一阈值,根据不同的服务器动态的调节第一阈值的取值范围,Th1取值范围为(0.8-1.2),Max_cores表示目标边缘服务器能负载的最大核心数。
其中,Process(PUlli)为目标边缘服务器执行拉流任务的进程,Process(PUSHj)为目标边缘服务器执行推流任务的进程,Process(WORKq)为目标边缘服务器执行其他任务的进程,Th2为第二阈值,根据不同的边缘服务器动态的调节第二阈值的取值范围,Th2取值范围为(0.8-1),Max_Process为目标边缘服务器的最大进程数。
其中,GPU(modeli)为目标边缘服务器通过处理模型执行任务时所占用的图像处理器GPU比例,Th3为第三阈值,根据不同的服务器动态调节第三阈值的取值范围,Th3取值范围为(0.9-1),Max_GPU为目标边缘服务器的最大GPU。
步骤S620,为目标边缘服务器分配待处理视频流以及用于处理待处理视频流的多个处理模型。
本申请实施例中云服务器从多个边缘服务器中选择满足分配条件的边缘服务器作为目标边缘服务器,之后可以为目标边缘服务器分配待处理视频流以及用于处理待处理视频流的多个处理模型。
举例说明,若与云服务器进行通信连接的边缘服务器包括边缘服务器A、边缘服务器B、边缘服务器C和边缘服务器D,经过计算,其中边缘服务器A和边缘服务器C满足分配条件,边缘服务器B和边缘服务器D不满足分配条件,则云服务器只为满足分配条件的边缘服务器A和边缘服务器C分配待处理视频流以及用于处理待处理视频流的多个处理模型,对于不满足分配条件的边缘服务器B和边缘服务器D,无需分配待处理视频流和处理模型。
步骤S630,将待处理视频流以及多个处理模型发送至目标边缘服务器,以使目标边缘服务器根据多个处理模型对待处理视频流进行处理,得到目标视频流。
本申请实施例中云服务器为目标边缘服务器分配待处理视频流以及用于处理待处理视频流的多个处理模型,之后可以将待处理视频流以及多个处理模型发送至目标边缘服务器,这样目标边缘服务器就可以根据多个处理模型对待处理视频流进行处理,得到目标视频流,并进行相应推流,具体请参见前述实施例。
本申请实施例中,云服务器为目标边缘服务器发送的待处理视频流的数量可以为多个。
由上可知,在本申请实施例中在得到目标视频流并对目标视频流进行推流处理之后,计算边缘服务器的负载并发送至云服务器,云服务器根据各个边缘服务器的负载情况动态调整分配给边缘服务器的待处理视频流和处理模型的数量,在节约时延的同时增加了处理模型和待处理视频流的业务处理效率。
以上分别从边缘服务器和云服务器的角度对本申请实施例的技术方案进行了阐述,以下从边缘服务器和云服务器进行交互为例,对本申请实施例的一个具体应用场景进行详细说明:
图8是本申请的另一示例性实施例示出的一种视频流处理方法的流程图。如图8所示,与云服务器进行通信连接的边缘服务器包括GPU边缘服务器-1和GPU边缘服务器-2,视频流处理方法至少包括步骤S810至步骤S860,详细介绍如下:
步骤S810,云服务器从多个边缘服务器中选择满足分配条件的边缘服务器作为目标边缘服务器。
在申请实施例中,GPU边缘服务器-1和GPU边缘服务器-2均满足分配条件,均作为目标边缘服务器。
本申请实施例中与分配条件有关的内容可以参照上述实施例,此处不再赘述。
步骤S820,为目标边缘服务器分配待处理视频流以及用于处理待处理视频流的多个处理模型。
在本申请实施例中,由于目标边缘服务器为多个,需要分别为各个目标边缘服务器都分配待处理视频流和用于处理待处理视频流的多个处理模型,以便多个目标边缘服务器对待处理视频流进行并行处理,有助于提升处理小率。也即,分别向GPU边缘服务器-1和GPU边缘服务器-2分配待处理视频流和用于处理待处理视频流的多个处理模型。
步骤S830,将待处理视频流以及多个处理模型发送至目标边缘服务器。
本申请实施例中,为各个满足分配条件的GPU边缘服务器-1和GPU边缘服务器-2同时发送待处理视频流以及多个处理模型,以保证两个边缘服务器能够对待处理视频流进行并行处理。
步骤S840,目标边缘服务器对待处理视频流进行解码处理,得到多个视频帧,并根据多个视频帧构建视频帧矩阵,视频帧矩阵的维度与处理模型的数量匹配。
本申请实施例中,GPU边缘服务器-1和GPU边缘服务器-2分别对接收到的待处理视频流进行解码处理,解码处理后的得到多个视频帧,之后根据多个视频帧构建视频帧矩阵。
在本申请的一个实施例中,GPU边缘服务器-1和GPU边缘服务器-2在对待处理视频流进行解码处理时可以采用上述实施例中的跳帧解码算法实现,跳帧解码算法的详细过程请参照上述实施例。
步骤S850,构建视频帧矩阵中含有的视频帧与多个处理模型之间的映射关系,并基于映射关系将视频帧矩阵中含有的视频帧分别输入至对应的处理模型中进行处理,得到多个处理模型输出的处理结果。
GPU边缘服务器-1和GPU边缘服务器-2分别构建视频帧矩阵中含有的视频帧与多个处理模型之间的映射关系,并基于映射关系,将视频帧矩阵中含有的视频帧输入对应的处理模型中进行处理。
示例性的,处理模型的处理过程可以包括维度变换、numpy确认、数据类型转换以及视频流的智能处理过程,但不仅限于此。处理模型对视频帧处理完毕后,输出处理结果。
步骤S860,对多个处理模型输出的处理结果进行汇总和视频编码处理,得到目标视频流,并对目标视频流进行推流处理。
本申请实施例中,GPU边缘服务器-1和GPU边缘服务器-2分别汇总多个处理模型输出的处理结果得到处理模型最终输出的处理结果,并对处理模型最终输出的处理结果进行视频编码处理,得到目标视频流。
图9是本申请的一示例性实施例示出的视频流处理装置的框图。该装置可以应用于图1所示的实施环境,并具体配置在第一光传送网设备101中。该装置也可以适用于其它的示例性实施环境,并具体配置在其它设备中,本实施例不对该装置所适用的实施环境进行限制。
如图9所示,该示例性的视频流处理装置包括:
接收模块910,配置为接收云服务器发送的待处理视频流以及多个处理模型;其中,待处理视频流以及处理模型是云服务器基于分配条件确定出目标边缘服务器,并为目标边缘服务器分配与发送的;
视频解码模块920,配置为对待处理视频流进行解码处理,得到多个视频帧,并根据多个视频帧构建视频帧矩阵,视频帧矩阵的维度与处理模型的数量匹配;
模型处理模块930,配置为构建视频帧矩阵中含有的视频帧与多个处理模型之间的映射关系,并基于映射关系将视频帧矩阵中含有的视频帧分别输入至对应的处理模型中进行处理,得到多个处理模型输出的处理结果;
推流模块940,配置为对输出的处理结果进行汇总和编码处理,得到目标视频流,并对目标视频流进行推流处理。
在本申请的一个实施例中,视频解码模块920还包括:
时长确定子模块,配置为根据待处理视频流的帧率以及指定的处理模型对应的处理时长,确定时长值;
跳帧取值计算子模块,配置为根据时长值和目标边缘服务器执行多个任务的总时长值,确定对待处理视频流进行解码处理所依据的跳帧取值;
解码子模块,配置为按照跳帧取值对待处理视频流进行解码处理,得到解码后的多个视频帧。
在本申请的一个实施例中,时长确定子模块还包括:
时长获取单元,配置为从多个处理模型中选择出处理时长最多的处理模型作为指定的处理模型,并获取指定的处理模型对应的处理时长;
第一计算单元,配置为将待处理视频流的帧率与处理时长进行求差运算,得到时长值。
在本申请的一个实施例中,跳帧取值计算子模块还包括:
第二计算单元,配置为将时长值与总时长值进行求商运算,得到对待处理视频流进行解码处理所依据的跳帧取值。
在本申请的一个实施例中,视频流处理装置还包括:
负载计算模块,配置为计算边缘服务器的负载,并生成负载数据;
负载发送模块,配置为将负载数据发送至云服务器,以使云服务器根据负载数据调整向目标边缘服务器发送的待处理视频流以及多个处理模型。
需要说明的是,上述实施例所提供的视频流处理装置与上述实施例所提供的视频流处理方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的视频流处理装置在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。
图10是本申请的一示例性实施例示出的视频流处理装置的框图。该装置可以应用于图1所示的实施环境,并具体配置在云服务器101中。该装置也可以适用于其它的示例性实施环境,并具体配置在其它设备中,本实施例不对该装置所适用的实施环境进行限制。
如图10所示,该示例性的视频流处理装置包括:
目标服务器确定模块1010,配置为从多个边缘服务器中选择满足分配条件的边缘服务器作为目标边缘服务器;
分配模块1020,配置为为目标边缘服务器分配待处理视频流以及用于处理待处理视频流的多个处理模型;
发送模块1030,配置为将待处理视频以及多个处理模型发送至目标边缘服务器,以使目标边缘服务器根据多个处理模型对待处理视频流进行处理,得到目标视频流。
在本申请的一个实施例中,分配模块1010还包括:
获取模块,配置为获取各个边缘服务器当前执行任务的执行相关数据;其中,执行相关数据包括执行所占中央处理器比例,执行所占图像处理器比例,以及执行所运行的进程数量;
确定模块,配置为根据执行相关数据与预设参数阈值之间的匹配关系,确定各个边缘服务器是否满足分配条件,并将满足分配条件的边缘服务器作为目标边缘服务器。
需要说明的是,上述实施例所提供的视频流处理装置与上述实施例所提供的视频流处理方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的视频流处理装置在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。
本申请的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得电子设备实现上述各个实施例中提供的视频流处理方法。
图11示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。需要说明的是,图11示出的电子设备的计算机系统1100仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图11所示,计算机系统1100包括中央处理单元(Central Processing Unit,CPU)1101,其可以根据存储在只读存储器(Read-Only Memory,ROM)1102中的程序或者从存储部分1108加载到随机访问存储器(Random Access Memory,RAM)1103中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在RAM 1103中,还存储有系统操作所需的各种程序和数据。CPU 1101、ROM 1102以及RAM 1103通过总线1104彼此相连。输入/输出(Input/Output,I/O)接口1105也连接至总线1104。
以下部件连接至I/O接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被中央处理单元(CPU)1101执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前的视频流处理方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的视频流处理方法。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。
Claims (8)
1.一种视频流处理方法,其特征在于,其特征在于,所述方法包括:
接收云服务器发送的待处理视频流以及多个处理模型;其中,所述待处理视频流以及所述处理模型是所述云服务器基于分配条件确定出目标边缘服务器,并为所述目标边缘服务器分配与发送的;
对所述待处理视频流进行解码处理,得到多个视频帧,并根据所述多个视频帧构建视频帧矩阵,所述视频帧矩阵的维度与所述处理模型的数量匹配;
构建所述视频帧矩阵中含有的视频帧与所述多个处理模型之间的映射关系,并基于所述映射关系将所述视频帧矩阵中含有的视频帧分别输入至对应的处理模型中进行处理,得到所述多个处理模型输出的处理结果;
对所述输出的处理结果进行汇总和编码处理,得到目标视频流,并对所述目标视频流进行推流处理;
所述对所述待处理视频流进行解码处理,得到多个视频帧包括:
从所述多个处理模型中选择出处理时长最多的处理模型作为指定的处理模型,并获取所述指定的处理模型对应的处理时长;
根据所述待处理视频流的帧率计算第一时间值;
对所述第一时间值与所述处理时长进行求差运算,得到时长值;
将所述时长值与所述目标边缘服务器执行多个任务的总时长值进行求商运算,得到所述对所述待处理视频流进行解码处理所依据的跳帧取值;
按照所述跳帧取值对所述待处理视频流进行解码处理,得到解码后的多个视频帧。
2.根据权利要求1所述的方法,其特征在于,在所述对所述输出的处理结果进行汇总和编码处理,得到目标视频流之后,所述方法还包括:
计算所述边缘服务器的负载,并生成负载数据;
将所述负载数据发送至所述云服务器,以使所述云服务器根据所述负载数据调整向所述目标边缘服务器发送的待处理视频流以及多个处理模型。
3.一种视频流处理方法,其特征在于,所述方法包括:
从多个边缘服务器中选择满足分配条件的边缘服务器作为目标边缘服务器;
为所述目标边缘服务器分配待处理视频流以及用于处理所述待处理视频流的多个处理模型;
将所述待处理视频流以及所述多个处理模型发送至所述目标边缘服务器,以使所述目标边缘服务器根据所述多个处理模型对所述待处理视频流进行处理,得到目标视频流;
所述根据所述多个处理模型对所述待处理视频流进行处理,得到目标视频流包括:
对所述待处理视频流进行解码处理,得到多个视频帧,并根据所述多个视频帧构建视频帧矩阵,所述视频帧矩阵的维度与所述处理模型的数量匹配;
构建所述视频帧矩阵中含有的视频帧与所述多个处理模型之间的映射关系,并基于所述映射关系将所述视频帧矩阵中含有的视频帧分别输入至对应的处理模型中进行处理,得到所述多个处理模型输出的处理结果;
对所述输出的处理结果进行汇总和编码处理,得到目标视频流;
所述对所述待处理视频流进行解码处理,得到多个视频帧包括:
从所述多个处理模型中选择出处理时长最多的处理模型作为指定的处理模型,并获取所述指定的处理模型对应的处理时长;
根据所述待处理视频流的帧率计算第一时间值;
对所述第一时间值与所述处理时长进行求差运算,得到时长值;
将所述时长值与所述目标边缘服务器执行多个任务的总时长值进行求商运算,得到所述对所述待处理视频流进行解码处理所依据的跳帧取值;
按照所述跳帧取值对所述待处理视频流进行解码处理,得到解码后的多个视频帧。
4.根据权利要求3所述的方法,其特征在于,所述分配条件包括针对执行任务的预设参数阈值;所述从多个边缘服务器中选择满足分配条件的边缘服务器作为目标边缘服务器,包括:
获取各个边缘服务器当前执行任务的执行相关数据;其中,所述执行相关数据包括执行所占中央处理器的比例,执行所占图像处理器的比例,以及执行所运行的进程数量;
根据执行相关数据与所述预设参数阈值之间的匹配关系,确定所述各个边缘服务器是否满足分配条件,并将满足分配条件的边缘服务器作为所述目标边缘服务器。
5.一种视频流处理装置,其特征在于,配置于边缘服务器,其特征在于,所述装置包括:
接收模块,配置为接收云服务器发送的待处理视频流以及多个处理模型;其中,所述待处理视频流以及所述处理模型是所述云服务器基于分配条件确定出目标边缘服务器,并为所述目标边缘服务器分配与发送的;
视频解码模块,配置为对所述待处理视频流进行解码处理,得到多个视频帧,并根据所述多个视频帧构建视频帧矩阵,所述视频帧矩阵的维度与所述处理模型的数量匹配;
所述对所述待处理视频流进行解码处理,得到多个视频帧包括:
从所述多个处理模型中选择出处理时长最多的处理模型作为指定的处理模型,并获取所述指定的处理模型对应的处理时长;
根据所述待处理视频流的帧率计算第一时间值;
对所述第一时间值与所述处理时长进行求差运算,得到时长值;
将所述时长值与所述目标边缘服务器执行多个任务的总时长值进行求商运算,得到所述对所述待处理视频流进行解码处理所依据的跳帧取值;
按照所述跳帧取值对所述待处理视频流进行解码处理,得到解码后的多个视频帧;
模型处理模块,配置为构建所述视频帧矩阵中含有的视频帧与所述多个处理模型之间的映射关系,并基于所述映射关系将所述视频帧矩阵中含有的视频帧分别输入至对应的处理模型中进行处理,得到所述多个处理模型输出的处理结果;
推流模块,配置为对所述输出的处理结果进行汇总和编码处理,得到目标视频流,并对所述目标视频流进行推流处理。
6.一种视频流处理装置,其特征在于,配置于云服务器,其特征在于,所述装置包括:
目标服务器确定模块,配置为从多个边缘服务器中选择满足分配条件的边缘服务器作为目标边缘服务器;
分配模块,配置为所述目标边缘服务器分配待处理视频流以及用于处理所述待处理视频流的多个处理模型;
发送模块,配置为将所述待处理视频以及所述多个处理模型发送至所述目标边缘服务器,以使所述目标边缘服务器根据所述多个处理模型对所述待处理视频流进行处理,得到目标视频流;
所述根据所述多个处理模型对所述待处理视频流进行处理,得到目标视频流包括:
对所述待处理视频流进行解码处理,得到多个视频帧,并根据所述多个视频帧构建视频帧矩阵,所述视频帧矩阵的维度与所述处理模型的数量匹配;
构建所述视频帧矩阵中含有的视频帧与所述多个处理模型之间的映射关系,并基于所述映射关系将所述视频帧矩阵中含有的视频帧分别输入至对应的处理模型中进行处理,得到所述多个处理模型输出的处理结果;
对所述输出的处理结果进行汇总和编码处理,得到目标视频流;
所述对所述待处理视频流进行解码处理,得到多个视频帧包括:
从所述多个处理模型中选择出处理时长最多的处理模型作为指定的处理模型,并获取所述指定的处理模型对应的处理时长;
根据所述待处理视频流的帧率计算第一时间值;
对所述第一时间值与所述处理时长进行求差运算,得到时长值;
将所述时长值与所述目标边缘服务器执行多个任务的总时长值进行求商运算,得到所述对所述待处理视频流进行解码处理所依据的跳帧取值;
按照所述跳帧取值对所述待处理视频流进行解码处理,得到解码后的多个视频帧。
7.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1至4中任一项所述的视频流处理方法。
8.一种计算机可读介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1至4中任一项所述的视频流处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210413028.2A CN114741198B (zh) | 2022-04-19 | 2022-04-19 | 视频流处理方法及装置、电子设备、计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210413028.2A CN114741198B (zh) | 2022-04-19 | 2022-04-19 | 视频流处理方法及装置、电子设备、计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114741198A CN114741198A (zh) | 2022-07-12 |
CN114741198B true CN114741198B (zh) | 2023-12-15 |
Family
ID=82284657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210413028.2A Active CN114741198B (zh) | 2022-04-19 | 2022-04-19 | 视频流处理方法及装置、电子设备、计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114741198B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116828217A (zh) * | 2022-11-30 | 2023-09-29 | 慧之安信息技术股份有限公司 | 一种基于边缘计算设备的多路监控推拉流方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017219896A1 (zh) * | 2016-06-21 | 2017-12-28 | 中兴通讯股份有限公司 | 视频流的传输方法及装置 |
CN112580481A (zh) * | 2020-12-14 | 2021-03-30 | 康佳集团股份有限公司 | 基于边缘节点和云端协同视频处理方法、装置、服务器 |
CN113542875A (zh) * | 2021-06-24 | 2021-10-22 | 深圳华远云联数据科技有限公司 | 视频处理方法、装置、电子设备以及存储介质 |
CN113766315A (zh) * | 2020-06-03 | 2021-12-07 | 海信视像科技股份有限公司 | 显示设备及视频信息处理方法 |
CN114255432A (zh) * | 2021-12-24 | 2022-03-29 | 中电信数智科技有限公司 | 视频流处理方法、装置、电子设备、存储介质及系统 |
-
2022
- 2022-04-19 CN CN202210413028.2A patent/CN114741198B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017219896A1 (zh) * | 2016-06-21 | 2017-12-28 | 中兴通讯股份有限公司 | 视频流的传输方法及装置 |
CN113766315A (zh) * | 2020-06-03 | 2021-12-07 | 海信视像科技股份有限公司 | 显示设备及视频信息处理方法 |
CN112580481A (zh) * | 2020-12-14 | 2021-03-30 | 康佳集团股份有限公司 | 基于边缘节点和云端协同视频处理方法、装置、服务器 |
CN113542875A (zh) * | 2021-06-24 | 2021-10-22 | 深圳华远云联数据科技有限公司 | 视频处理方法、装置、电子设备以及存储介质 |
CN114255432A (zh) * | 2021-12-24 | 2022-03-29 | 中电信数智科技有限公司 | 视频流处理方法、装置、电子设备、存储介质及系统 |
Non-Patent Citations (1)
Title |
---|
GPU协处理视频编码的服务平台设计;陆许明 等;《电脑知识与技术》;第12卷(第28期);第206-207、219页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114741198A (zh) | 2022-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111182303A (zh) | 共享屏幕的编码方法、装置、计算机可读介质及电子设备 | |
Liubogoshchev et al. | Adaptive cloud-based extended reality: Modeling and optimization | |
CN110839084A (zh) | 会话管理方法、装置、设备和介质 | |
CN111757118B (zh) | 视频转码处理方法、装置、设备和介质 | |
US20170026311A1 (en) | Method and system for allocating video transcoding resources | |
CN114741198B (zh) | 视频流处理方法及装置、电子设备、计算机可读介质 | |
CN112104867B (zh) | 一种视频处理方法、视频处理装置、智能设备及存储介质 | |
WO2023066183A1 (zh) | 数据处理方法、装置、设备以及存储介质 | |
CN113691812B (zh) | 基于鸿蒙系统的分布式视频处理方法、终端和可读介质 | |
CN112448827A (zh) | 一种信息处理方法、装置、设备及计算机可读存储介质 | |
US20230396783A1 (en) | Data processing method and apparatus, device, and readable storage medium | |
CN115080197A (zh) | 计算任务调度方法、装置、电子设备和存储介质 | |
CN109246387B (zh) | 一种远程会议账号资源转换计算方法、装置及存储介质 | |
CN110809158B (zh) | 图像环路滤波处理方法、装置 | |
CN104954823B (zh) | 一种图计算预处理的装置、方法及系统 | |
CN112738522A (zh) | 视频编码方法、装置 | |
CN110969672A (zh) | 图像压缩方法及装置 | |
CN111510715A (zh) | 视频处理方法、系统、计算机设备及存储介质 | |
Nguyen et al. | An Efficient Video Streaming Architecture with QoS Control for Virtual Desktop Infrastructure in Cloud Computing | |
CN112492305B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
US11647153B1 (en) | Computer-implemented method, device, and computer program product | |
CN116996661B (zh) | 三维视频展示方法、装置、设备及介质 | |
WO2024178866A1 (zh) | 基于模型的信息业务服务提供方法、系统、设备及介质 | |
CN115834900A (zh) | 一种视频处理方法、装置、电子设备和存储介质 | |
CN117370008A (zh) | 资源分配方法及装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |