CN111800606B - 一种云视频处理方法和系统 - Google Patents
一种云视频处理方法和系统 Download PDFInfo
- Publication number
- CN111800606B CN111800606B CN202010570583.7A CN202010570583A CN111800606B CN 111800606 B CN111800606 B CN 111800606B CN 202010570583 A CN202010570583 A CN 202010570583A CN 111800606 B CN111800606 B CN 111800606B
- Authority
- CN
- China
- Prior art keywords
- service request
- execution unit
- node
- execution
- identification number
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种云视频处理方法和系统,所述云视频处理方法包括:编译器节点接收基于描述语言的业务请求;对所述业务请求进行编译,得到与所述业务请求相匹配的执行单元;基于所述业务请求的类型调配所述执行单元,以根据所述业务请求部署视频管线。在本发明中,可以基于业务发起端的业务请求,自定义配置视频管线,满足灵活和自动配置视频业务的需求,进而适应越来越复杂的云视频业务。本方法基于实际需求设计基于描述语言的业务请求,编译器节点再根据业务请求部署视频管线,实现云端功能节点部署,可以适应多样化需求,且操作简单。
Description
技术领域
本发明属于云视频领域,更具体地,涉及一种云视频处理方法和系统。
背景技术
目前,在云侧部署视频业务时,是根据用户的计算要求,在相关的执行节点,安装、配置、并运行相应的软件,从计算需求到实际部署的过程,一是需要有经验的人力,二是受限于预设模板,不能满足灵活和自动配置视频业务的需求。另一方面,在云侧部署视频业务时,通常基于一个网络拓扑图,在每个节点安装不同的功能软件,并按照整体设计修改各个节点的配置,这种方法可以称为固定管线,在网元少,配置不变的情况下工作。
因此,现有在云侧部署视频业务的方式,不仅操作复杂,而且不能满足灵活和自动配置视频业务的需求,无法适应越来越复杂的云视频业务。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种云视频处理方法和系统,其目的在于在云侧定义配置视频管线,满足灵活和自动配置视频业务的需求,由此解决在云侧不能满足灵活和自动配置视频业务的需求的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种云视频处理方法,所述云视频处理方法包括:
编译器节点接收基于描述语言的业务请求;
对所述业务请求进行编译,得到与所述业务请求相匹配的执行单元;
基于所述业务请求的类型调配所述执行单元,以根据所述业务请求部署视频管线。
优选地,所述业务请求的类型为建立视频管线;
所述基于所述业务请求的类型调配所述执行单元,以根据所述业务请求部署视频管线包括:
所述编译器节点根据网络情况、执行节点的配置情况或执行节点的执行能力中的至少一种,将所述执行单元映射到相应的执行节点;
所述执行节点获取编译器节点生成的管道模块,根据所述管道模块连接所述执行单元,建立视频管线。
优选地,所述云视频处理方法包括:
所述编译器节点为所述业务请求分配程序标识号,并将所述程序标识号与所述业务请求对应的程序资源建立关联;
在完成所述视频管线的建立后,所述编译器节点将所述程序标识号发送至业务发起端,以便于所述业务发起端依据所述程序标识号发起修改或拆除视频管线的业务请求。
优选地,所述业务请求的类型为拆除视频管线;
所述基于所述业务请求的类型调配所述执行单元,以根据所述业务请求部署视频管线包括:
所述编译器节点获取被拆除的视频管线对应的目标程序标识号;
根据所述目标程序标识号获取相应的程序资源,基于所述程序资源释放执行单元,以拆除视频管线。
优选地,所述业务请求的类型为修改视频管线;
所述基于所述业务请求的类型调配所述执行单元,以根据所述业务请求部署视频管线包括:
所述编译器节点获取被修改的视频管线对应的目标程序标识号;
根据所述目标程序标识号获取相应的程序资源,基于所述程序资源释放相应的执行单元;
所述编译器节点对所述业务请求进行编译,得到新的执行单元,调配所述新的执行单元,以修改视频管线。
优选地,所述业务发起端为客户端;
所述云视频处理方法包括:
在完成视频管线的建立后,所述编译器节点将所述程序标识号发送至所述服务器;
所述服务器建立会话标识号,并将所述会话标识号与所述程序标识号建立关联;
所述服务器将所述会话标识号发送至所述客户端,以便于所述客户端依据所述会话标识号发起修改或拆除视频管线的业务请求;
服务器获取所述业务请求,所述服务器对所述业务请求进行解析,获取被修改的视频管线的目标会话标识号;
根据所述目标会话标识号确定目标程序标识号,并将携带有所述目标程序标识号的业务请求发送至所述编译器节点,以便于所述编译器节点依据所述目标程序标识号确定相应的程序资源,以修改或拆除相应的视频管线。
优选地,所述业务发起端为网管。
优选地,所述对所述业务请求进行编译,得到与所述业务请求相匹配的执行单元包括:
所述编译器节点对所述业务请求进行编译,获取所述执行单元的名称和执行单元的属性;
所述编译器节点生成连接所述执行单元的管道模块,将所述执行单元和所述管道模块按执行节点进行分配;
所述编译器节点根据所述执行单元的名称获取所述执行单元的软件下载源,以将所述执行单元的软件下载源发送至相应的执行节点;
所述编译器节点依据所述执行单元的软件下载源和所述执行单元的属性生成部署指令,将所述部署指令发送至相应的执行节点。
优选地,所述云视频处理方法还包括:
所述执行节点接收来自于所述编译器节点的部署指令;
根据所述部署指令获取所述执行单元的软件下载源,以将所述执行单元安装至本地;
根据所述部署指令获获取所述执行单元的属性,以完成对所述执行单元的配置。
为实现上述目的,按照本发明的另一个方面,提供了一种云视频系统,所述云视频系统包括编译器节点和至少一个执行节点;
所述编译器节点用于接收基于描述语言的业务请求;
所述编译器节点用于对所述业务请求进行编译,得到与所述业务请求相匹配的执行单元,其中,所述执行单元被部署在所述执行节点上;
所述编译器节点用于基于所述业务请求的类型调配所述执行单元,以根据所述业务请求部署视频管线。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:本发明提供一种云视频处理方法和系统,所述云视频处理方法包括:编译器节点接收基于描述语言的业务请求;对所述业务请求进行编译,得到与所述业务请求相匹配的执行单元;基于所述业务请求的类型调配所述执行单元,以根据所述业务请求部署视频管线。
在本发明中,可以基于业务发起端的业务请求,自定义配置视频管线,满足灵活和自动配置视频业务的需求,进而适应越来越复杂的云视频业务。本方法基于实际需求设计基于描述语言的业务请求,编译器节点再根据业务请求部署视频管线,实现云端功能节点部署,可以适应多样化需求,且操作简单。
附图说明
图1是本发明实施例提供的一种云视频系统的结构示意图;
图2是本发明实施例提供的一种云视频处理方法的流程示意图;
图3是本发明实施例提供的第一种建立视频管线的流程示意图;
图4是本发明实施例提供的第一种拆除视频管线的流程示意图;
图5是本发明实施例提供的第一种修改视频管线的流程示意图;
图6是本发明实施例提供的第二种建立视频管线的流程示意图;
图7是本发明实施例提供的第二种拆除视频管线的流程示意图;
图8是本发明实施例提供的第二种修改视频管线的流程示意图;
图9是本发明实施例提供的第一种视频管线的实例示意图;
图10是本发明实施例提供的第二种视频管线的实例示意图;
图11是本发明实施例提供的第三种视频管线的实例示意图;
图12是本发明实施例提供的第四种视频管线的实例示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1:
参阅图1,本实施例提供一种云视频系统,该云视频系统可以基于业务发起端的业务请求,自定义配置视频管线,满足灵活和自动配置视频业务的需求,进而适应越来越复杂的云视频业务。
在本实施例中,所述云视频系统包括:编译器节点和至少一个执行节点,所述编译器节点用于接收基于描述语言的业务请求;所述编译器节点用于对所述业务请求进行编译,得到与所述业务请求相匹配的执行单元,其中,所述执行单元被部署在相应的所述执行节点上;所述编译器节点用于基于所述业务请求的类型调配所述执行单元,以根据所述业务请求部署视频管线。
编译器节点还用于响应业务发起端的业务请求,以管理基于描述语言所建立的云视频资源集合。其中,所述业务请求包括建立视频管线、拆除视频管线、修改视频管线和配置视频管线等。其中,关于建立视频管线、拆除视频管线和修改视频管线的具体实现方式详见下文描述。
在此,需要说明的是,修改视频管线所针对的是视频业务改变较大的情形,涉及到执行节点的重新分配;配置视频管线可以理解为轻量级的修改,不需要删除或重建的过程,只需要重新设置其中某些执行单元的属性。例如,改变编码器单元的最大编码速率(例如,设置trans.max_bps=1200000),改变某个滤镜模块的对比度参数(例如,设置filter.contrast=33)。
进一步地,编译器节点还用于管理和调度执行节点,根据网络情况、执行节点的配置情况和执行能力中的至少一种,进行任务分配,将执行单元部署在相应的执行节点。
其中,编译器节点的前端用标准方式实现,例如lex/yacc或者递归下降法,如果检测到语法错误,则进行报错处理。编译器节点的中间表示是有向无环图,如果有环,则进行报错处理。编译器节点的后端表示输出的是一个计算图,该计算图将执行单元映射到相应的执行节点,并将各个执行单元和管道模块按执行节点进行分配,如果在执行节点农场中不能分配到相应资源,则进行报错处理。
编译器节点输出的计算图应保证执行单元和管道模块是匹配的,即执行单元支持的输入输出数量与实际分配到的管道模块数量一致,执行单元支持类型与管道模块类型相一致。
在实际应用场景下,业务发起端提交一个基于语言描述的业务请求,云中的编译器节点对所述业务请求进行编译,根据编译器节点所输出的计算图部署执行单元,执行单元按照统一接口形成视频管线。
其中,业务发起端可以为客户端,当业务发起端为客户端时,由于业务发起端没有编译器节点的地址,则需要由服务器转发业务请求,其中,所述服务器为带网关功能的服务器模块,例如,可以为流媒体服务器;业务发起端也可以为网管,由于网管内存储有编译器节点的地址,网管可以直接将业务请求发送至编译器节点。
在本实施例中,所述执行节点指的是服务器农场中的主机。编译器节点用于编译描述语言编写的程序,以生成后端表示,其中,后端表示所输出的计算图可以将执行单元映射到云中的执行节点。其中,执行单元为能够实现业务请求中所描述的功能的模块,例如,执行单元包括转码器、滤镜模块、计算时延模块和人脸检测模块。
在本实施例中,所述执行节点包括部署单元,所述部署单元接收编译器节点的信令,包括启动相应执行单元、释放执行单元、设置执行单元相关参数和查询本地执行单元信息;还用于定时向编译器节点上报执行节点的资源情况,其中,资源情况包括执行节点的配置、实时负载情况和本地执行单元信息等。
在实际应用场景下,所述部署单元用于接收编译器节点的部署指令,根据部署指令从软件资源库下载所述执行单元的安装包,以将所述执行单元安装至本地。在实际使用中,所述部署单元控制本执行节点上的执行单元,例如,所述部署单元启动或停止相应的执行单元,所述部署单元还用于对相应的执行单元进行配置。
针对位于同一执行节点上的执行单元和部署单元,一个部署单元可以控制多个执行单元,而且,同一执行节点上的多个执行单元可以以多进程方式执行,根据性能需求也可能可以优化到同一线程中执行,具体依据实际情况进行设置,在此,不做具体限定。
在本实施例中,所述编译器节点对所述业务请求完成编译后,得到与所述业务请求相匹配的执行单元,还得到连接执行单元的管道模块。其中,管道模块可以以库形式实现,集成到执行单元中。而且,可以将管道实例ID作为管道模块在编译器节点中的唯一标识,以便于执行节点通过管道实例ID从编译器节点获取相应管道模块的配置信息。其中,所述管道实例ID可以基于UUID(Universally Unique Identifier,简写为UUID)设置管道实例ID。
在实际使用中,编译器节点的后端表示通过负载计算,判断一个执行节点的性能是否满足需求,若一个执行节点无法满足需求,则配置多个执行节点,通过多个执行节点接力的方式完成视频管线的部署。
本实施例主要介绍了云视频系统的各个模块以及各个模块的功能,下文基于本实施例的云视频系统介绍云视频处理方法。
在本实施例中,可以基于描述语言形式的业务请求,自定义配置视频管线,满足灵活和自动配置视频业务的需求,进而适应越来越复杂的云视频业务。
实施例2:
参阅图2,基于前述实施例1的云视频系统,本实施例提供一种云视频处理方法,所述云视频处理方法包括如下步骤:
步骤10:编译器节点接收基于描述语言的业务请求。
其中,所述编译器节点部署在云中,所述业务请求的业务发起端可以为客户端,当业务发起端为客户端时,由于客户端内没有编译器节点的地址,客户端会将业务请求发送至服务器,服务器再将业务请求发送至编译器节点;所述业务发起端也可以为网管,网管中有编译器节点的地址,可以将业务请求直接发送至编译器节点。当然,在其他实施例中,所述业务请求的业务发起端也可以为其他设备。
步骤11:对所述业务请求进行编译,得到与所述业务请求相匹配的执行单元。
在本实施例中,编译器节点对业务请求进行编译,得到与所述业务请求相匹配的执行单元。其中,执行单元为能够实现业务请求中所描述的功能的模块,例如,执行单元包括转码器、滤镜模块和人脸检测模块。
具体地,所述编译器节点对所述业务请求进行编译,获取所述执行单元的名称和执行单元的属性,所述编译器节点生成连接所述执行单元的管道模块,将所述执行单元和所述管道模块按执行节点进行分配,所述编译器节点根据所述执行单元的名称获取所述执行单元的软件下载源,以将所述执行单元的软件下载源发送至相应的执行节点,所述编译器节点依据所述执行单元的软件下载源和所述执行单元的属性生成部署指令,将所述部署指令发送至相应的执行节点,以使执行节点根据部署指令安装并配置相应的执行单元。其中,所述执行单元的名称可以为软件下载源中所存储的某个执行单元的名称,通过名称可以确定执行单元的安装包。其中,执行单元的属性为执行单元某一参数的配置信息,例如,执行单元为转码器,转码器的属性包括:视频编码格式、音频编码格式、最大码率等配置信息。
在本实施例中,执行节点接收编译器节点的部署指令,然后根据部署指令从软件资源库下载所述执行单元的安装包,以将所述执行单元安装至本地,并根据所述部署指令获获取所述执行单元的属性,以完成对所述执行单元的配置。
步骤12:基于所述业务请求的类型调配所述执行单元,以根据所述业务请求部署视频管线。
其中,所述业务请求包括建立视频管线、拆除视频管线、修改视频管线和配置视频管线等。
在此,需要说明的是,修改视频管线所针对的是视频业务改变较大的情形,涉及到执行节点的重新分配;配置视频管线可以理解为轻量级的修改,不需要删除或重建的过程,只需要重新设置其中某些执行单元的属性。例如,改变编码器单元的最大编码速率(例如,设置trans.max_bps=1200000),改变某个滤镜模块的对比度参数(例如,设置filter.contrast=33)。
在实际应用场景下,基于所述业务请求的类型调配所述执行单元,以根据所述业务请求部署视频管线。
在可选的实施例中,所述业务请求的类型为建立视频管线,具体实现过程如下:所述编译器节点根据网络情况、执行节点的配置情况或执行节点的执行能力中的至少一种,选择合适的执行节点,将所述执行单元映射到相应的所述执行节点。
其中,在建立视频管线的过程中,可以将执行单元部署在同一个执行节点上,也可以将执行单元部署在多个执行节点上,具体依据实际情况而定。
其中,编译器节点在对业务请求进行编译后,还得到连接执行单元的管道模块。其中,管道模块支持读、写、创建和拆除等操作,管道模块可以以库形式实现,集成到执行单元中。而且,可以将管道实例ID作为管道模块在编译器节点中的唯一标识,以便于执行节点通过管道实例ID从编译器节点获取相应管道模块的配置信息。其中,所述管道实例ID可以基于UUID(Universally Unique Identifier,简写为UUID)设置管道实例ID。
所述执行节点获取集成在执行单元内的管道模块,根据管道模块的管道实例ID从编译器节点获取管道模块的配置信息,从而根据所述管道模块连接所述执行单元,建立视频管线。
当执行单元仅部署在同一个执行节点上时,通过管道模块连接相应的执行单元,形成视频管线;当执行单元部署在不同的执行节点上时,管道模块基于流模块实现,其中,流模块的配置信息可以通过编译器节点查询到。
在实际应用场景下,当所述业务请求来自于客户端时,由于客户端没有编译器节点的地址,则需要由服务器转发业务请求,因此,在步骤10之前还包括,服务器接收来自于所述客户端的业务请求,并将所述业务请求转发至所述编译器节点。
为了便于后续拆除视频管线和修改视频管线,在建立视频管线的过程中,需要为每一个视频管线建立相应的标识号,以通过标识号完成视频管线的拆除或者修改。
在一具体应用场景下,当业务请求发起端为客户端时,所述编译器节点为所述业务请求分配程序标识号,并将所述程序标识号与所述业务请求对应的程序资源建立关联,在完成所述视频管线的建立后,所述编译器节点将所述程序标识号发送至所述服务器,所述服务器建立会话标识号,并将所述会话标识号与所述程序标识号建立关联,所述服务器将所述会话标识号发送至所述客户端,以便于客户端通过会话标识号拆除视频管线或修改视频管线。
其中,会话标识号指的是C-S架构中的唯一标识session ID,例如,可以是RTSP协议中的session ID,程序标识号可以由编译器基于预设的规则生成,保证程序标识号的唯一性即可,程序资源包括业务请求相对应的执行单元、执行节点和管道模块。
在本实施例中,通过会话标识号、程序标识号和程序资源的关联关系,进行视频管线的拆除或修改。具体地,所述业务请求的类型为拆除视频管线,所述业务请求包含被拆除的视频管线对应的目标会话标识号,在步骤12中具体包括如下过程,所述服务器获取目标会话标识号,根据所述目标会话标识号确定目标程序标识号,并将所述目标程序标识号发送至所述编译器节点;所述编译器节点根据所述目标程序标识号获取相应的程序资源,基于所述程序资源释放执行单元,以拆除视频管线。
具体地,所述编译器节点根据程序资源确定被拆除的视频管线所涉及的执行节点,以及该执行节点上所部署的与被拆除的视频管线相关的执行单元,拆除各执行单元的连接关系,以拆除视频管线。在可选的实施例中,在拆除视频管线后,可以在执行节点上保留执行单元,以便于后于使用。当然,为了保证执行节点的性能,也可以直接卸载执行单元。
所述业务请求为修改视频管线,所述业务请求包含被修改的视频管线对应的目标会话标识号,在步骤12中具体包括如下过程,所述服务器获取目标会话标识号,根据所述目标会话标识号确定目标程序标识号,并将所述目标程序标识号发送至所述编译器节点;所述编译器节点根据所述目标程序标识号获取相应的程序资源,基于所述程序资源释放相应的执行单元;所述编译器节点对所述业务请求进行编译,得到新的执行单元,调配所述新的执行单元,以修改视频管线。
在另一个应用场景下,所述业务请求来自于网管,由于网管内存储有编译器节点的地址,网管可以将业务请求直接发送至编译器节点,由于没有了服务器的数据交互,在建立视频管线的过程中,只需建立程序标识号和程序资源的关联关系即可。具体如下:所述编译器节点为所述业务请求分配程序标识号,并将所述程序标识号与所述业务请求对应的程序资源建立关联;在完成所述视频管线的建立后,所述编译器节点将所述程序标识号发送至所述网管,以便于网管通过程序标识号拆除视频管线或修改视频管线。
在本实施例中,通过程序标识号和程序资源的关联关系,进行视频管线的拆除或修改。所述业务请求为拆除视频管线,所述业务请求包含被拆除的视频管线对应的目标程序标识号,在步骤12中具体包括如下过程,所述编译器节点根据所述目标程序标识号获取相应的程序资源,基于所述程序资源释放执行单元,以拆除视频管线。
所述业务请求为修改视频管线,所述业务请求包含被修改的视频管线对应的目标程序标识号,在步骤12中具体包括如下过程,所述网管将所述目标程序标识号发送至所述编译器节点;所述编译器节点根据所述目标程序标识号获取相应的程序资源,基于所述程序资源释放相应的执行单元;所述编译器节点对所述业务请求进行编译,得到新的执行单元,调配所述新的执行单元,以修改视频管线。
在本实施例中,可以基于描述语言形式的业务请求,自定义配置视频管线,满足灵活和自动配置视频业务的需求,进而适应越来越复杂的云视频业务。
实施例3:
结合前述实施例说明当业务请求的业务发起端为客户端,业务请求类型为建立视频管线时,云视频处理的过程。参阅图3,云视频处理方法包括如下步骤:
步骤20:发送业务请求。
在本实施例中,客户端向服务器发送基于语言描述的业务请求。可以理解为,业务请求是以描述语言描述的一个程序。例如,可以是客户端的播放器发起的业务请求。
步骤21:转发业务请求。
服务器判断业务请求的类型,当业务请求为描述语言类请求时,向编译器节点传递业务请求。
步骤22:编译业务请求,得到执行单元。
编译器节点接收到业务请求后,编译该业务请求,编译成功则向各执行节点分派执行单元,编译错误则进行报错处理。
步骤23:分配执行单元。
其中,执行单元可以被分配到一个执行节点,也可以被分配至了多个执行节点,在附图中是以将执行单元分配至两个执行节点为例进行图示的。
步骤24:发送建立成功的反馈消息,并反馈程序标识号。
编译器节点维护<程序标识号,程序资源>的映射表,程序资源包括分配到执行节点的执行单元和管道模块。
在完成视频管线的建立后,编译器节点向服务器发送编译成功信息,并反馈程序标识号给服务器,以便服务器维护<会话标识号,程序标识号>的映射表。
步骤25:发送建立成功的反馈消息,并反馈会话标识号。
服务器向客户端反馈建立成功的反馈消息,并反馈会话标识号,以便客户端通过会话标识号进行视频管线拆除或修改等操作。
在建立好视频管线后,执行节点1上的各执行单元按配置的管线执行,数据以流方式传给下一个执行节点2,执行节点2上的各执行单元按配置的管线执行,数据以流方式传给前置的服务器,服务器出流给客户端。
在实际应用场景下,当执行单元部署在不同的执行节点上时,由于视频数据量大,一般采用压缩格式的流方式进行数据的传输。当执行单元部署在同一执行节点上时,也可以以帧方式进行数据的传输。
本实施例用于更直观的解释建立视频管线的过程,每个步骤的具体实现过程详见前述实施例2,在此不在赘述。
实施例4:
结合前述实施例说明当业务请求的业务发起端为客户端,业务请求类型为拆除视频管线时,云视频处理的过程。参阅图4,云视频处理方法包括如下步骤:
步骤30:发送业务请求,其中,业务请求包含被拆除的视频管线对应的会话标识号。
在本实施例中,客户端发送拆除会话的业务请求,其中,业务请求包含被拆除的视频管线对应的会话标识号。
步骤31:确定程序标识号,转发业务请求和程序标识号。
服务器依据会话标识号确定程序标识号,转发业务请求和程序标识号给编译器节点。
步骤32:根据程序标识号确定程序资源。
编译器节点按程序标识号得到相关所有执行节点的信息,转发请求给相关执行节点,执行节点依次释放相应的执行单元。
步骤33:释放执行单元。
步骤34:向服务器发送拆除成功的反馈消息。
步骤35:向客户端发送拆除成功的反馈消息。
编译器节点向服务器发送拆除成功的反馈消息,服务器向客户端发送拆除成功的反馈消息。
本实施例用于更直观的解释拆除视频管线的过程,每个步骤的具体实现过程详见前述实施例2,在此不在赘述。
实施例5:
结合前述实施例说明当业务请求的业务发起端为客户端,业务请求类型为修改视频管线时,云视频处理的过程。参阅图5,云视频处理方法包括如下步骤:
步骤40:发送业务请求,其中,业务请求包含被修改的视频管线对应的会话标识号。
在本实施例中,客户端发送修改会话的业务请求,其中,业务请求包含被修改的视频管线对应的会话标识号。
步骤41:确定程序标识号,转发业务请求和程序标识号。
服务器依据会话标识号确定程序标识号,转发业务请求和程序标识号给编译器节点。
步骤42:根据程序标识号确定程序资源,编译业务请求确定需要释放的执行单元和新增的执行单元。
编译器节点按程序标识号确定需要释放的执行单元和新增的执行单元,转发请求给相关执行节点,执行节点依次释放相应的执行单元。完成执行单元的释放后,通过新增的执行单元建立新的视频管线。
步骤43:释放执行单元。
步骤44:分配执行单元
步骤45:向服务器发送修改成功的反馈消息。
步骤46:向客户端发送修改成功的反馈消息。
编译器节点向服务器发送修改成功的反馈消息,服务器向客户端发送修改成功的反馈消息。
在建立好视频管线后,数据由新的视频管线执行后发送给客户端。
本实施例用于更直观的解释修改视频管线的过程,每个步骤的具体实现过程详见前述实施例2,在此不在赘述。
实施例6:
结合前述实施例说明当业务请求的业务发起端为网管,业务请求类型为建立视频管线时,云视频处理的过程。参阅图6,云视频处理方法包括如下步骤:
步骤50:发送业务请求。
在本实施例中,网管向编译器节点发送基于语言描述的业务请求。可以理解为,业务请求是以描述语言描述的一个程序。例如,可以是网管的播放器发起的业务请求。
步骤51:编译业务请求,得到执行单元。
编译器节点接收到业务请求后,编译该业务请求,编译成功则向各执行节点分派执行单元,编译错误则进行报错处理。
步骤52:分配执行单元。
其中,执行单元可以被分配到一个执行节点,也可以被分配至了多个执行节点,在附图中是以将执行单元分配至两个执行节点为例进行图示的。
步骤53:发送建立成功的反馈消息,并反馈程序标识号。
编译器节点维护<程序标识号,程序资源>的映射表,程序资源包括分配到执行节点的执行单元和管道模块。
在完成视频管线的建立后,编译器节点向网管发送编译成功信息,并反馈程序标识号给网管,以便网管通过程序标识号进行视频管线拆除或修改等操作。
在建立好视频管线后,执行节点1上的各执行单元按配置的管线执行,数据以流方式传给下一个执行节点2,执行节点2上的各执行单元按配置的管线执行,数据以流方式传给给网管。
本实施例用于更直观的解释建立视频管线的过程,每个步骤的具体实现过程详见前述实施例2,在此不在赘述。
实施例7:
结合前述实施例说明当业务请求的业务发起端为网管,业务请求类型为拆除视频管线时,云视频处理的过程。参阅图7,云视频处理方法包括如下步骤:
步骤60:发送业务请求,其中,业务请求包含被拆除的视频管线对应的程序标识号。
在本实施例中,网管发送拆除会话的业务请求,其中,业务请求包含被拆除的视频管线对应的程序标识号。
步骤61:根据程序标识号确定程序资源。
编译器节点按程序标识号得到相关所有执行节点的信息,转发请求给相关执行节点,执行节点依次释放相应的执行单元。
步骤62:释放执行单元。
步骤63:发送拆除成功的反馈消息。
编译器节点向网管发送拆除成功的反馈消息。
本实施例用于更直观的解释拆除视频管线的过程,每个步骤的具体实现过程详见前述实施例2,在此不在赘述。
实施例8:
结合前述实施例说明当业务请求的业务发起端为网管,业务请求类型为修改视频管线时,云视频处理的过程。参阅图8,云视频处理方法包括如下步骤:
步骤70:发送业务请求,其中,业务请求包含被修改的视频管线对应的程序标识号。
在本实施例中,网管发送修改会话的业务请求,其中,业务请求包含被修改的视频管线对应的程序标识号。
步骤71:根据程序标识号确定程序资源,编译业务请求确定需要释放的执行单元和新增的执行单元。
编译器节点按程序标识号确定需要释放的执行单元和新增的执行单元,转发请求给相关执行节点,执行节点依次释放相应的执行单元。完成执行单元的释放后,通过新增的执行单元建立新的视频管线。
步骤72:释放执行单元。
步骤73:分配执行单元。
步骤74:发送修改成功的反馈消息。
编译器节点向网管发送修改成功的反馈消息。
在建立好视频管线后,数据由新的视频管线执行后发送给客户端。
本实施例用于更直观的解释修改视频管线的过程,每个步骤的具体实现过程详见前述实施例2,在此不在赘述。
实施例9:
下面结合具体实例简要说明云视频处理方法的过程。
首先,通过计算类实例化一个执行单元:instance_name=class_name(arg1,arg2,...);其中,class_name对应执行单元的可检索名称,instance_name是执行单元实例化后的标识符;arg1、arg2等为执行单元初始化时要传入的配置参数。
编译器后端可以根据class_name查询到相应执行单元信息,例如,用Transcoder作为关键字,可以查到Transcoder对应的信息,包括软件的下载源、校验码,启动软件的命令接口、软件支持的输入输出信息等。
设置执行单元的属性为instance_name.attribute=value;其中(attribute,value)二元组可以映射到执行单元的实例上。
用执行单元定义一个计算图中的运算:output1,output2,...=instance_name(input1,input2,...);input1,input2,output1,output2为管道模块的标识号,编译器节点通知某个执行节点上的部署单元,接收管道模块input1,input2所输入信息,并将接收到的信息输入至相应的执行单元,将输出管道模块output1,output2所输出的信息输入至下一个执行单元。
下面以图9~图11,说明基于描述语言如何演进用户需求,其中,图9对应的视频管线为:从支持RTSP(Real Time Streaming Protocol,简写为RTSP)的实时摄像头,经转码器转码到出流模块。
其中,转码器和出流模块为执行单元,摄像机为数据来源,将数据流输入给转码器。结合图9的描述语言,第1行声明字符串常量src,为摄像机的出流地址,第2行定义了转码器(为一个执行单元),其中,trans为转码器实例化后的标识符,转码器的数据源来自于摄像机(不属于执行单元,在此图示只是为了表明数据的来源),第3行~第6行设置转码器的属性,第7行转码器对数据进行处理后,输出为hls_stream,第8行定义了出流模块(为一个执行单元),其中,ss为出流模块实例化后的标识符,第9行使用出流模块定义一个运算,数据输入为hls_stream,数据输出为output。
图10在图9所建立的视频管线上增加了实时监控视频管线的时延状况,增加了一个计算时延的执行单元,即,时延计算模块(对应描述语言中的CalcDelay)。其中,第10行定义了一个时延计算模块(为一个执行单元),第11行定义时延计算模块的输入来自于出流模块,时延计算模块的输出为checkpoint1。时延计算模块通过对比摄像机传入的数据与出流模块传入的数据,确定视频管线的时延状况。
图11在图10所建立的视频管线上增加了实时监控转码器的时延状况。又增加一个计算时延的执行单元,即,时延计算模块2。其中,第12行定义了一个时延计算模块2(为一个执行单元),时延计算模块2的输入来自于转码器输出的数据,第13行定义时延计算模块2的输出为checkpoint2,时延计算模块2通过对比摄像机传入的数据与出转码器传入的数据,确定视频管线的时延状况。
图12描述一个同时观战2人组队的云游戏流,将两个云游戏节点的输出进行多屏拼接,合成一个1行2列的画面。其中,流读取模块UrlReader接收来自于云游戏节点的码流,输出给多画面拼接滤镜ScreenSplice;而多画面拼接滤镜ScreenSplice的输入是多个画面,将多个画面合成为一个画面,其中,多画面拼接滤镜ScreenSplice的输出可以是实时编码的rtp码流。在图12中,执行单元包括流读取模块1、流读取模块2和多画面拼接滤镜,通过两个流读取模块UrlReader和多画面拼接滤镜实现多屏拼接的功能,第1行定义了一个流读取模块1(为一个执行单元),其中,流读取模块1实例化后的标识符为cap1,第2行定义了一个流读取模块2(为一个执行单元),其中,流读取模块2实例化后的标识符为cap2,第3行定义了一个多画面拼接滤镜,以(行row,列col)的方式进行拼接,例如,filter1=ScreenSplice(1,2)输出的是一行两列的画面。
前述实例主要是为了举例说明本发明的云视频处理方法,业务发起端可以根据业务需求发起部署视频管线的需求,从而实现更多样化的云业务。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种云视频处理方法,其特征在于,所述云视频处理方法包括:
编译器节点接收基于描述语言的业务请求;所述业务请求的类型为建立视频管线;
对所述业务请求进行编译,得到与所述业务请求相匹配的执行单元;
基于所述业务请求的类型调配所述执行单元,以根据所述业务请求部署视频管线;所述基于所述业务请求的类型调配所述执行单元,以根据所述业务请求部署视频管线包括:所述编译器节点根据网络情况、执行节点的配置情况或执行节点的执行能力中的至少一种,将所述执行单元映射到相应的执行节点;所述执行节点获取编译器节点生成的管道模块,根据所述管道模块连接所述执行单元,建立视频管线。
2.根据权利要求1所述的云视频处理方法,其特征在于,所述云视频处理方法包括:
所述编译器节点为所述业务请求分配程序标识号,并将所述程序标识号与所述业务请求对应的程序资源建立关联;
在完成所述视频管线的建立后,所述编译器节点将所述程序标识号发送至业务发起端,以便于所述业务发起端依据所述程序标识号发起修改或拆除视频管线的业务请求。
3.根据权利要求2所述的云视频处理方法,其特征在于,所述业务请求的类型为拆除视频管线;
所述基于所述业务请求的类型调配所述执行单元,以根据所述业务请求部署视频管线包括:
所述编译器节点获取被拆除的视频管线对应的目标程序标识号;
根据所述目标程序标识号获取相应的程序资源,基于所述程序资源释放执行单元,以拆除视频管线。
4.根据权利要求2所述的云视频处理方法,其特征在于,所述业务请求的类型为修改视频管线;
所述基于所述业务请求的类型调配所述执行单元,以根据所述业务请求部署视频管线包括:
所述编译器节点获取被修改的视频管线对应的目标程序标识号;
根据所述目标程序标识号获取相应的程序资源,基于所述程序资源释放相应的执行单元;
所述编译器节点对所述业务请求进行编译,得到新的执行单元,调配所述新的执行单元,以修改视频管线。
5.根据权利要求2~4任一项所述的云视频处理方法,其特征在于,所述业务发起端为客户端;
所述云视频处理方法包括:
在完成视频管线的建立后,所述编译器节点将所述程序标识号发送至服务器;
所述服务器建立会话标识号,并将所述会话标识号与所述程序标识号建立关联;
所述服务器将所述会话标识号发送至所述客户端,以便于所述客户端依据所述会话标识号发起修改或拆除视频管线的业务请求;
服务器获取所述业务请求,所述服务器对所述业务请求进行解析,获取被修改的视频管线的目标会话标识号;
根据所述目标会话标识号确定目标程序标识号,并将携带有所述目标程序标识号的业务请求发送至所述编译器节点,以便于所述编译器节点依据所述目标程序标识号确定相应的程序资源,以修改或拆除相应的视频管线。
6.根据权利要求2~4任一项所述的云视频处理方法,其特征在于,所述业务发起端为网管。
7.根据权利要求1所述的云视频处理方法,其特征在于,所述对所述业务请求进行编译,得到与所述业务请求相匹配的执行单元包括:
所述编译器节点对所述业务请求进行编译,获取所述执行单元的名称和执行单元的属性;
所述编译器节点生成连接所述执行单元的管道模块,将所述执行单元和所述管道模块按执行节点进行分配;
所述编译器节点根据所述执行单元的名称获取所述执行单元的软件下载源,以将所述执行单元的软件下载源发送至相应的执行节点;
所述编译器节点依据所述执行单元的软件下载源和所述执行单元的属性生成部署指令,将所述部署指令发送至相应的执行节点。
8.根据权利要求7所述的云视频处理方法,其特征在于,所述云视频处理方法还包括:
所述执行节点接收来自于所述编译器节点的部署指令;
根据所述部署指令获取所述执行单元的软件下载源,以将所述执行单元安装至本地;
根据所述部署指令获取所述执行单元的属性,以完成对所述执行单元的配置。
9.一种云视频系统,其特征在于,所述云视频系统包括编译器节点和至少一个执行节点;
所述编译器节点用于接收基于描述语言的业务请求;所述业务请求的类型为建立视频管线;
所述编译器节点用于对所述业务请求进行编译,得到与所述业务请求相匹配的执行单元,其中,所述执行单元被部署在所述执行节点上;
所述编译器节点用于基于所述业务请求的类型调配所述执行单元,以根据所述业务请求部署视频管线;所述基于所述业务请求的类型调配所述执行单元,以根据所述业务请求部署视频管线包括:所述编译器节点根据网络情况、执行节点的配置情况或执行节点的执行能力中的至少一种,将所述执行单元映射到相应的执行节点;所述执行节点获取编译器节点生成的管道模块,根据所述管道模块连接所述执行单元,建立视频管线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010570583.7A CN111800606B (zh) | 2020-06-19 | 2020-06-19 | 一种云视频处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010570583.7A CN111800606B (zh) | 2020-06-19 | 2020-06-19 | 一种云视频处理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111800606A CN111800606A (zh) | 2020-10-20 |
CN111800606B true CN111800606B (zh) | 2022-03-25 |
Family
ID=72803902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010570583.7A Active CN111800606B (zh) | 2020-06-19 | 2020-06-19 | 一种云视频处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111800606B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2454219A1 (en) * | 2001-07-12 | 2003-01-23 | Research In Motion Limited | System and method for providing remote data access for a mobile communication device |
US8031197B1 (en) * | 2006-02-03 | 2011-10-04 | Nvidia Corporation | Preprocessor for formatting video into graphics processing unit (“GPU”)-formatted data for transit directly to a graphics memory |
CN102572696A (zh) * | 2007-08-17 | 2012-07-11 | 华为技术有限公司 | 一种处理业务请求的方法、装置和系统 |
CN104768022A (zh) * | 2014-12-31 | 2015-07-08 | 安科智慧城市技术(中国)有限公司 | 一种视频转码系统的资源调度方法及装置 |
CN105100824A (zh) * | 2015-09-10 | 2015-11-25 | 东方网力科技股份有限公司 | 一种视频处理设备、系统和方法 |
CN105306967A (zh) * | 2015-10-28 | 2016-02-03 | 天彩电子(深圳)有限公司 | 一种云视频平台中的资源调配方法 |
JP2016220174A (ja) * | 2015-05-26 | 2016-12-22 | 株式会社東芝 | 家電制御方法及び家電制御装置 |
CN107113454A (zh) * | 2014-10-29 | 2017-08-29 | Dlvr公司 | 配置引用用于自适应流式传输视频的基础设施服务提供商的清单文件 |
CN111127218A (zh) * | 2019-11-14 | 2020-05-08 | 泰康保险集团股份有限公司 | 数据处理方法及装置、存储介质、电子终端 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8922564B2 (en) * | 2010-12-01 | 2014-12-30 | Microsoft Corporation | Controlling runtime execution from a host to conserve resources |
US8813245B1 (en) * | 2013-01-25 | 2014-08-19 | Amazon Technologies, Inc. | Securing content using pipelines |
US20150007214A1 (en) * | 2013-06-28 | 2015-01-01 | Alcatel-Lucent Usa Inc. | Method For Sending A Portion Of A Video Stream |
GB201320778D0 (en) * | 2013-11-25 | 2014-01-08 | Microsoft Corp | Communication system architecture |
US9472168B2 (en) * | 2014-03-07 | 2016-10-18 | Apple Inc. | Display pipe statistics calculation for video encoder |
US10353752B2 (en) * | 2016-12-07 | 2019-07-16 | Vmware, Inc. | Methods and apparatus for event-based extensibility of system logic |
-
2020
- 2020-06-19 CN CN202010570583.7A patent/CN111800606B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2454219A1 (en) * | 2001-07-12 | 2003-01-23 | Research In Motion Limited | System and method for providing remote data access for a mobile communication device |
US8031197B1 (en) * | 2006-02-03 | 2011-10-04 | Nvidia Corporation | Preprocessor for formatting video into graphics processing unit (“GPU”)-formatted data for transit directly to a graphics memory |
CN102572696A (zh) * | 2007-08-17 | 2012-07-11 | 华为技术有限公司 | 一种处理业务请求的方法、装置和系统 |
CN107113454A (zh) * | 2014-10-29 | 2017-08-29 | Dlvr公司 | 配置引用用于自适应流式传输视频的基础设施服务提供商的清单文件 |
CN104768022A (zh) * | 2014-12-31 | 2015-07-08 | 安科智慧城市技术(中国)有限公司 | 一种视频转码系统的资源调度方法及装置 |
JP2016220174A (ja) * | 2015-05-26 | 2016-12-22 | 株式会社東芝 | 家電制御方法及び家電制御装置 |
CN105100824A (zh) * | 2015-09-10 | 2015-11-25 | 东方网力科技股份有限公司 | 一种视频处理设备、系统和方法 |
CN105306967A (zh) * | 2015-10-28 | 2016-02-03 | 天彩电子(深圳)有限公司 | 一种云视频平台中的资源调配方法 |
CN111127218A (zh) * | 2019-11-14 | 2020-05-08 | 泰康保险集团股份有限公司 | 数据处理方法及装置、存储介质、电子终端 |
Non-Patent Citations (1)
Title |
---|
基于视频云计算构建的应用统一接入系统;周明峰;《中国优秀硕士学位论文全文数据库 信息科技辑》;20190715;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111800606A (zh) | 2020-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542865B (zh) | 分布式集群系统配置文件同步方法、装置、系统及介质 | |
US20160364226A1 (en) | Update management system and update management method | |
CN111625354A (zh) | 一种边缘计算设备算力的编排方法及其相关设备 | |
CN104104572A (zh) | 一种sdn网络中的交换机自动部署方法及装置 | |
KR20040051738A (ko) | 이기종 네트워크 장비의 구성 관리를 위한 엑스엠엘 기반망 관리 시스템 및 방법 | |
CN111245634B (zh) | 一种虚拟化管理方法及装置 | |
CN114070822B (zh) | 一种Kubernetes Overlay IP地址管理方法 | |
CN108833565A (zh) | 一种监控服务器的方法、装置、服务器和存储介质 | |
CN110366056B (zh) | 一种ason业务模型的实现方法、装置、设备及存储介质 | |
CN107396049A (zh) | 一种兼容多协议的设备接入系统及其方法 | |
CN107025134B (zh) | 数据库服务系统及兼容多种数据库的方法 | |
CN115248692A (zh) | 一种支持多种深度学习框架模型云端部署的装置及方法 | |
US11683222B2 (en) | Virtual network function VNF deployment method and apparatus | |
WO2020048504A1 (zh) | 网络功能所需资源的部署方法、装置、存储介质及电子装置 | |
WO2024169385A1 (zh) | 一种集群部署方法、装置、设备、介质及产品 | |
CN111800606B (zh) | 一种云视频处理方法和系统 | |
US7539288B2 (en) | Apparatus and method for simulating a trunk gateway in a telecommunications switch test system | |
CN114640569A (zh) | 动态消息管理装置、设备、系统、方法及存储介质 | |
CN113342456A (zh) | 一种连接方法、装置、设备和存储介质 | |
CN104519420A (zh) | 一种无源光网络中报文转发方法 | |
CN108632331A (zh) | 一种视联网应用的安装方法和装置 | |
CN107948316B (zh) | 一种文件同步方法、装置及设备 | |
CN116643845A (zh) | 缩容方法、容器编排系统、设备及存储介质 | |
CN113037807B (zh) | 远程控制方法、装置、服务器及介质 | |
CN111400060B (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 |