CN114630184A - 视频的渲染方法、装置、设备和计算机可读存储介质 - Google Patents

视频的渲染方法、装置、设备和计算机可读存储介质 Download PDF

Info

Publication number
CN114630184A
CN114630184A CN202210289997.1A CN202210289997A CN114630184A CN 114630184 A CN114630184 A CN 114630184A CN 202210289997 A CN202210289997 A CN 202210289997A CN 114630184 A CN114630184 A CN 114630184A
Authority
CN
China
Prior art keywords
video
information
video image
view container
rendering
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.)
Pending
Application number
CN202210289997.1A
Other languages
English (en)
Inventor
鲍琦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Cubesili Information Technology Co Ltd
Original Assignee
Guangzhou Cubesili Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Cubesili Information Technology Co Ltd filed Critical Guangzhou Cubesili Information Technology Co Ltd
Priority to CN202210289997.1A priority Critical patent/CN114630184A/zh
Publication of CN114630184A publication Critical patent/CN114630184A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44012Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440236Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by media transcoding, e.g. video is transformed into a slideshow of still pictures, audio is converted into text
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • H04N21/8402Generation or processing of descriptive data, e.g. content descriptors involving a version number, e.g. version number of EPG data

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请提供了一种视频的渲染方法、装置、设备和计算机可读存储介质,首先获取各路视频流,然后对各路视频流分别进行转换,以生成各视频图像;根据各视频图像的排版信息和索引信息将各视频图像依次放置于预先建立的一个视图容器中,且各视频图像之间不发生重叠或互相遮挡,即可以在视图容器中对各视频图像进行布局;在视图容器中,对各视频图像进行渲染,以形成多路视频画面。该视频的渲染方法可以根据每一路视频图像的排版信息和座位号信息将多路视频图像布局一个视图容器中进行渲染,即一个视图容器来对多路视频进行渲染,而一个视图容器只需要一个线程,从而大大节约了系统资源。

Description

视频的渲染方法、装置、设备和计算机可读存储介质
技术领域
本申请涉及视频图像处理技术领域,具体涉及一种视频的渲染方法、装置、设备和计算机可读存储介质。
背景技术
近年来,随着互联网技术的不断发展,网络直播作为一个新的技术领域进入大众视野,用户可以通过各自的终端设备进入直播间观看主播的精彩表演。多人连麦互动是直播中最常见的玩法之一,当在多人连麦时,参与连麦者客户端或观众客户端通常需要显示多个或多路视频。目前每一路视频都需要单独的视图容器进行渲染,其中一路视频渲染就需要一个线程,那么多路视频就需要多个线程,容易造成系统资源浪费。
发明内容
有鉴于此,本申请实施例中提供了一种视频的渲染方法、装置、设备和计算机可读存储介质。
第一方面,本申请实施例提供了一种视频的渲染方法,该方法包括:
获取各路视频流,对各路所述视频流分别进行转换,以生成各视频图像;
根据各所述视频图像的排版信息和索引信息将各所述视频图像依次放置于预先建立的一个视图容器中,且各所述视频图像之间不发生重叠或互相遮挡;
在所述视图容器中,对各所述视频图像进行渲染,以形成多路视频画面。
第二方面,本申请实施例提供了一种视频的渲染装置,该装置包括视频流获取模块,用于获取各路视频流;
视频图像生成模块,用于对各路所述视频流分别进行转换,以生成各视频图像;
视频图像放置模块,用于根据各所述视频图像的排版信息和索引信息将各所述视频图像依次放置于预先建立的一个视图容器中,且各个所述视频图像之间不发生重叠或互相遮挡;
渲染模块,用于在所述视图容器中,对各所述视频图像进行渲染,以形成多路视频画面。
第三方面,本申请实施例提供了一种终端设备,包括:存储器;一个或多个处理器,与所述存储器耦接;一个或多个应用程序,其中,一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行上述第一方面提供的视频的渲染方法。
第四方面,本申请实施例提供了一种计算机可读取存储介质,计算机可读取存储介质中存储有程序代码,程序代码可被处理器调用执行上述第一方面提供的视频的渲染方法。
本申请实施例提供的视频的渲染方法、装置、设备和计算机可读存储介质,首先获取各路视频流,然后对各路视频流分别进行转换,以生成各视频图像;再根据各视频图像的排版信息和索引信息将各视频图像依次放置于预先建立的一个视图容器中,且各视频图像之间不发生重叠或互相遮挡;在视图容器中,对各视频图像进行渲染,以形成多路视频画面。
该视频的渲染方法可以根据每一路视频图像的排版信息和索引信息将多路视频图像布局一个视图容器中进行渲染,即采用一个视图容器来对多路视频进行渲染,而一个视图容器只需要一个线程,从而大大节约了系统资源。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的视频的渲染方法的应用场景示意图;
图2为本申请一个实施例提供的视频的渲染方法的流程示意图;
图3为本申请一个实施例提供的视图容器以及视频画面放置的示意图;
图4为本申请一个实施例提供多路视频画面显示的示意图;
图5为本申请一个实施例提供的解码缓存器与座位组件绑定的结构示意图;
图6为本申请一个实施例提供的视频的渲染装置的结构图;
图7为本申请一个实施例中提供的终端设备的结构示意图;
图8为本申请一个实施例中提供的计算机可读存储介质的结构示意图。
具体实施方式
下面将对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更详细说明本申请,下面结合附图对本申请提供的一种视频的渲染方法、装置、终端设备和计算机存储介质,进行具体地描述。
请参考图1,图1示出了本申请实施例提供的视频的渲染方法的应用场景的示意图,该应用场景包括本申请实施例提供的该应用场景包括本申请实施例提供的服务器102、至少一个直播端104和客户端106。其中,其中服务器102、直播端104和客户端106之间设置有网络。网络用于在服务器102、直播端104和客户端106之间提供通信链路的介质。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。服务器102能够与直播端104以及客户端106进行通信,为直播端104或/和客户端106提供直播服务。例如,直播端104可以将直播间的直播视频流发送给服务器102,用户可以通过客户端106访问服务器102以观看直播间的直播视频。又例如,服务器102也可以在用户订阅的直播间开播时向该用户的客户端106发送通知消息。直播视频流可以是当前正在直播平台中直播的视频流或者直播完成后形成的完整视频流。当主播用户之间以及主播用户与观众用户进行连麦时,直播视频流包括多路视频流,例如主播用户的视频流、与主播连麦的其他直播用户或观众用户的视频流,用户可以通过客户端106同时观看到这些多路视频流形成的多路视频画面。
在一些实施场景中,直播端104和客户端106可以互换使用。例如,主播可以使用直播端104来为观众提供直播视频服务,也可以作为用户查看其他主播提供的直播视频。又例如,用户可以使用客户端106观看所关注的主播提供的直播视频,也可以作为主播为其他观众提供直播视频服务。
本实施例中,直播端104和客户端106都是一种终端设备,可以是具有显示屏的各种电子设备,包括但不限于智能手机、个人数字助理、平板电脑、个人计算机、笔记本电脑、虚拟现实终端设备、增强现实终端设备等。其中,直播端104和客户端106中可以安装有用于提供互联网直播服务的互联网产品,例如,互联网产品可以是计算机或智能手机中使用的与互联网直播服务相关的应用程序APP、Web网页、小程序等。
可以理解,图1所示的应用场景仅为一种可行的示例,在其它可行的实施例中,该应用场景也可以仅包括图1所示的部分组件或者还可以包括其它的组成部分。例如,图1所示的应用场景还可以包括用于采集主播的直播视频帧的视频采集终端108,视频采集终端108可以直接安装或集成于直播端104,也可以独立于直播端104等,本实施例在此不做限制。
应当理解,客户端106和直播端104的数量可以是多个,可以仅为几个,或者为几十个或几百个,本申请实施例对客户端的数量和类型不加以限定。但为了后面叙述的方便,仅以一个客户端106、一个直播端104以及一个服务器102为例进行说明。其中服务器102、直播端104以及客户端106单独或组合一体可以用来执行本申请实施例中提供的网络直播的互动方法,在此不做限定。
基于此,本申请实施例中提供了一种视频的渲染方法。请参阅图2,图2示出了本申请实施例提供的一种视频的渲染方法的流程示意图,以该方法应用于图1中的客户端106为例进行说明,包括以下步骤:
步骤S110,获取各路视频流,对各路视频流分别进行转换,以生成各视频图像。
其中,视频流通常是指通过直播服务器传输的直播数据流。视频流可以是多个或多路。
在获取到各路视频流后,需要对各路视频流进行渲染才能在终端设备等显示设备中显示出各路视频画面。具体过程为:先对每一路的视频流进行转换处理,对应生成各路视频图像,然后将各路视频图像在视图容器(例如view)中进行渲染,从而得到各路视频画面。
进一步地,给出了一种对各路视频流进行处理的具体实施方式,描述如下:
在一个实施例中,对各路视频流分别进行转换,以生成各视频图像,包括:对各路视频流进行解码处理,以得到各视频帧数据;将各视频帧数据对应转化成各纹理图像,以得到各视频图像。
具体来说,先对各路视频流进行解码处理,对应形成各路视频帧数据,然后将各路视频帧数据依次转化为GPU可以使用的纹理图像,记为各路视频图像。
步骤S120,根据各视频图像的排版信息和索引信息将各视频图像依次放置于预先建立的一个视图容器中,且各视频图像之间不发生重叠或互相遮挡。
其中,排版信息是指用来确定视频图像在视图容器中放置位置的信息。包括但不限于坐标信息和/或尺寸(例如宽高)信息。
可选地,排版信息可以采用(x,y,w,h)来表示,其中x,y表示视频图像在View中的坐标;而w,h表示视频图像的宽和高。另外,每一路视频图像都具有上述的排版信息;根据这些排版信息就可以将每一路视频图像全部放置于View相应的位置。
具体地,如图3所示,图中虚线形成的外边框形成的矩形框称为一个视图容器(即View),可以采用坐标方式来表示该矩形框,其中起点坐标可以是(0,0)。视图容器中名称为video的小矩形框表示某一路视频图像,图中的mx,my分别表示该视频图像的坐标;width表示该视频图像的宽度,height表示该视频图像的高度。根据mx、my、width以及height就可以在视图容器中完成对该视频图像的放置或排版。当有多路视频图像时,按照上述方法即可完成对所有视频图像的放置或排版。
另外,当多路视频图像时,当有一路或多路视频图像的尺寸过大会超出视图容器时,可以对一路或多路视频图像的尺寸进行调整,以避免部分视频画面无法完整显示。
索引信息可以是编号,即对各路视频图像进行编号,然后按照就可以按照编号顺序来对各视频图像依次在视图容器中进行排版。
在本实施例中,采用排版信息和索引信息可以快速且准确地确定各视频图像在视图容器中的位置,从而快速完成排版,避免造成视频显示的混乱。
步骤S130,在视图容器中,对各视频图像进行渲染,以形成多路视频画面。
其中,视图容器是指用来处理或渲染图像,从而形成视频画面的用户界面组件。可选地,视图容器可以是View。View通常是指在屏幕上显示或占据一个矩形区域,主要负责渲染和事件处理。
另外,视图容器可以是在预先在屏幕建立的,当需要渲染视频时,将相应的视频图像发送至视图容器中,并完成渲染。
目前基于GPU硬件模式渲染视频,通常采用一个View渲染一路视频,那么每一路视频渲染就需要一个线程专门用于绑定OpenGL环境,那么随着视频的个数上升,View的数量和对应的线程系统资源的消耗会成倍增长。基于此,在本实施例中,可以将多路视频图像都放置在一个View中进行渲染,从而形成多路视频画面。具体过程是将各路视频画面通过GPU渲染到View所在的图层上面,然后在View上渲染这些视频画面;最后View中内容(即视频画面)会被系统合成到终端设备的显示屏进行显示,其结果请参照图4所示,其中图4中有6路视频流,将该6路视频流对应的视频图像都放置于一个View中进行渲染,从而生成6路视频画面。
可选地,当多个视频图像放置在View中时,为了显示效果这些视频图像之间不发生重叠或者互相遮挡,当发生遮挡会造成遮挡的视频图像无法显示。另外在实际的使用过程中,为了视频画面显示的整齐度以及美观度,可以对这些视频图像在View中的放置位置和尺寸大小进行调整,从而实现对每一路视频画面的尺寸大小、显示的位置进行排版或调整,例如图4中的6路视频画面中任意一个画面的大小或显示位置可以动态调整。
本申请实施例提供的视频的渲染方法,首先获取各路视频流,然后对各路视频流分别进行转换,以生成各视频图像;再根据各视频图像的排版信息和索引信息将各视频图像依次放置于预先建立的一个视图容器中,且每一个视频图像之间不发生重叠或互相遮挡;在视图容器中,对各视频图像进行渲染,以形成多路视频画面。
该视频的渲染方法可以根据每一路视频图像的排版信息和索引信息将多路视频图像布局一个视图容器中进行渲染,即采用一个视图容器来对多路视频进行渲染,而一个视图容器只需要一个线程,从而大大节约了系统资源。
进一步地,提供了几种将视频图像放置于视图容器(即对视频图像在视图容器中进行排版)实施方式,下面对该实施方式进行详细描述。
第一种实施方式:
排版信息包括坐标信息和尺寸信息;根据各视频图像的排版信息和索引将各视频图像依次放置于预先建立的一个视图容器中包括:分别根据各视频图像的坐标信息和尺寸信息来确定各视频图像在视图容器的目标位置和目标尺寸;根据各视频图像的索引信息将各视频图像依次放置于目标位置,并按照目标尺寸排列。
具体来说,在对视频图像进行排版之前需要根据各路视频图像的坐标信息和尺寸信息来确定各路视频图像在视图容器的目标位置和目标尺寸。之后就可以根据每一路视频图像在视频容器的目标位置和目标尺寸对其进行排版,然后在对多路视频图像进行排版时,为了避免混乱,可以根据各路视频图像的索引信息将各路视频图像按顺序依次放置于视图容器中的目标位置,并按照目标尺寸进行排列或放置。
采用上述方式可以快速且准确地确定各视频图像在视图容器中的位置,从而快速完成排版,避免造成视频显示的混乱。
第二种实施方式:
在一个实施例中,视图容器包括多个座位组件;座位组件数量大于或等于视频流路数;排版信息包括尺寸信息;索引信息包括座位号信息;根据各视频图像的排版信息和索引信息将各视频图像依次放置于预先建立的一个视图容器中包括:分别根据各视频图像的尺寸信息来确定各视频图像在视图容器的目标尺寸;根据各视频图像的座位号信息将各视频图像依次放置于视图容器中相应的座位组件中,并按照目标尺寸排列;其中一个座位组件中放置一路视频图像。
具体地,视图容器包括多个座位组件,例如Seat0,Seat1,Seat2……SeatN。对于一个视图容器而言,其座位组件的数量可以是不固定的,具体可以根据实际要渲染的视频图像数量确定,其中一个座位组件中放置一路视频图像,即一个座位组件一次只能渲染一路视频画面。那么基于此,座位组件的数量是可以动态更新的,只要大于或等于需要渲染的视频图像数量即可。
每一个座位组件都有一个座位号信息,通过该座位号信息可以查找到对应的座位组件。例如,Seat0的座位号信息可以是0。
每一路视频图像的索引信息可以是座位号信息,那么根据座位号信息就可以找到对应的座位组件,然后将每一路视频图像都放置于对应的座位组件,即可以完成对各视频图像的排版。
此外,各路视频图像的大小或尺寸并不一定相同,为了对各路视频能准确进行渲染;在将每一路视频图像都放置于对应的座位组件的过程中,可以结合各视频图像的排版信息中的尺寸信息(例如宽高信息),以便更加精确地对各视频图像进行排版。
另外,在将每一路视频图像都放置于对应的座位组件的过程中,按照各目标尺寸来对各视频图像进行排版时,可能存在一路或多路视频图像的尺寸过大会超出对应的座位组件,或者是多路视频图像总宽度或总高度超出视图容器时,在这种情况下就需要对一路或多路视频图像的尺寸进行调整,以避免部分视频画面无法完整显示。
通过上述方式可以快速且完成对多路视频图像进行排版,避免造成视频显示的混乱。
第三种实施方式:
在一个实施例中,方法还包括:将各视频帧数据分别缓存至各解码缓存器中,其中一个解码缓存器存储一路视频帧数据;将各解码缓存器与各座位组件进行绑定,其中一个解码缓存器与一个座位组件绑定;将各解码缓存器中的视频帧数据对应的视频图像分别放置于与解码缓存器绑定的座位组件中。
具体地,每一路视频流都需要先采用解码器(即Decode)进行解码处理,以得到视频帧数据,每一路视频帧数据都会对应有一个解码缓存器(即DecodeBuffer),即每一路视频帧数据都会先放入解码缓存器(即DecodeBuffer)。因此,可以建立解码缓存器与座位组件的绑定关系,即将某一解码缓存器与某一座位组件进行绑定,那么座位组件就可以直接从与其绑定的解码缓存器中获取视频帧数据对应的视频图像;从而快速完成对每一路视频图像的排版,能有效地避免视频图像在视图容器中放置位置出现错误。
进一步地,视图容器(即View)的每一个座位组件都有一个CPU缓存内存和GPU缓存内存,且CPU缓存内存和GPU缓存内存是一一对应的,其中CPU缓存内存通常用YMFRenderBuffer表示,GPU缓存内存通常用Texture表示。
采用视图容器(即View)对视频渲染的过程为:接收某一路视频流,对视频流采用解码器(即Decode)进行解码处理,得到视频帧数据,将视频帧数据放置于解码缓存器中(即DecodeBuffer),解码缓存器中的视频帧数据会被拷贝到视图容器中某一座位组件的CPU缓存内存(即YMFRenderBuffer)中,CPU缓存内存中视频帧数据会被转化生成纹理图像,并将纹理图像放置于CPU缓存内存对应的GPU缓存内存(即Texture)中,最后GPU缓存内存中的纹理图像可以被GPU渲染到视图容器对应的位置上进行渲染,从而形成视频画面。
从上面的视频图像渲染过程可知,座位组件的CPU缓存内存(即YMFRenderBuffer)可以从解码缓存器(即DecodeBuffer)中获取视频帧数据。那么建立解码缓存器与座位组件的绑定关系其实质是建立解码缓存器与座位组件对应的CPU缓存内存的绑定关系。具体来说,请参照图5所示,假设有多路视频流,分别记为StreamA、StreamB……和StreamX,其中每一路视频流都有一个解码器(即DECODER),每一个解码器都有一个解码缓存器分别记为DecodeBufferA、DecodeBufferB……DecodeBufferX,解码缓存器主要用来存储视频流解码后得到的视频帧数据。其中,图5中还包含一个视图容器View,View包括多个座位组件,分别记为Seat0,Seat1……SeatN,其中每一个座位组件都有对应CPU缓存内存(即YMFRenderBuffer)和GPU缓存内存(即Texture),并且CPU缓存内存和GPU缓存内存是一一对应的。
假设要将解码缓存器DecodeBufferA与座位组件Seat1进行绑定,那么只需要将解码缓存器DecodeBufferA与座位组件Seat1的YMFRenderBuffer进行绑定即可,此时座位组件Seat1的YMFRenderBuffer就可以从解码缓存器DecodeBufferA中获取到视频帧数据(即视频流A对应的视频帧数据),并对该视频帧数据进行处理生成纹理图像,并将纹理图像放置于座位组件Seat1的Texture中,最后将座位组件Seat1的Texture中纹理图像发送至Seat1中进行渲染,从而形成相应的视频画面。
需要说明的是,解码缓存器与座位组件进行绑定时,解码缓存器可以与任意一个座位组件绑定(例如DecedeBufferA可以与Seat0绑定,也可以与Seat1绑定,也可以与SeatN绑定),并且在绑定后还可以解绑;因此解码缓存器与座位组件的绑定关系或者解码缓存器与座位组件对应的CPU缓存内存的绑定关系可以是动态更新的。
通过上述通过动态绑定方法,一方面可以快速完成视频图像在视图容器中的排版;另一方面可以将某一视频流放置在指定位置进行渲染,并且位置更新非常方便。
接下来,还给出了一种调整或更新视频画面的实施方式,详细描述如下:
在一个实施例中,视频的渲染方法,还包括:根据排版信息调整一路或多路视频图像在视图容器中的位置和/或视频图像的尺寸。
具体而言,在视频画面显示或播放过程中,可以对视频画面的显示位置以及大小进行调整。在本实施例中,可以通过修改视频图像的排版信息(即坐标信息和/或宽高信息)就可以改变视频图像在视图容器(即View)中的位置或者是视频图像的尺寸,进而来改变视频画面的显示位置和画面的大小。
采用该方式可以方便且灵活地调整视频画面的显示位置以及大小,从而更显视频画面的显示效果。
在一个实施例中,在视图容器中,对各视频图像进行渲染,包括:采用一路刷帧驱动信号对各视频图像进行同步渲染。
具体地,在采用视图容器对多路视频图像进行渲染时,可能会出现多路视频画面不同步的问题;因此在本实施例中,采用一路刷帧驱动信号来控制每一路视频图像同步渲染。
可选地,刷帧驱动信号可以是VSYNC信号。VSYNC信号是一种垂直同步信号,可以是一个脉冲信号。另外,视频画面实在终端设备的显示屏上进行显示的,显示器显示画面的频率与刷帧驱动信号有关;因此在本实施例中,VSYNC信号可以是视频画面显示的刷帧驱动信号,可以是60帧/秒。
采用该方式可以使所有的视频画面同步显示,避免出现不同路画面不同步显示。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
上述本申请公开的实施例中详细描述了一种视频的渲染方法,对于本申请公开的上述方法可采用多种形式的设备实现,因此本申请还公开了对应上述方法的视频的渲染装置,下面给出具体的实施例进行详细说明。
请参阅图6,为本申请实施例公开的一种视频的渲染装置,主要包括:
视频流获取模块610,用于获取各路视频流。
视频图像生成模块620,用于对各路视频流分别进行转换,以生成各视频图像。
视频图像放置模块630,用于根据各视频图像的排版信息和索引信息将各视频图像依次放置于预先建立的一个视图容器中,且各视频图像之间不发生重叠或互相遮挡。
渲染模块640,用于在视图容器中,对各视频图像进行渲染,以形成多路视频画面。
在一个实施例中,视频图像生成模块620,用于对各路视频流进行解码处理,以得到各视频帧数据;将各视频帧数据对应转化成各纹理,以得到各视频图像。
在一个实施例中,排版信息包括坐标信息和尺寸信息;视频图像放置模块630,用于分别根据各路视频图像的坐标信息和尺寸信息来确定各路视频图像在视图容器的目标位置和目标尺寸;根据各路视频图像的索引信息将各路视频图像依次放置于目标位置,并按照目标尺寸排列。
在一个实施例中,视图容器包括多个座位组件;座位组件数量大于或等于视频流路数;排版信息包括尺寸信息,索引信息包括座位号信息;视频图像放置模块630,用于分别根据各视频图像的尺寸信息来确定各视频图像在视图容器的目标尺寸;根据各视频图像的座位号信息将各视频图像依次放置于视图容器中相应的座位组件中,并按照目标尺寸排列;其中一个座位组件中放置一路视频图像。
在一个实施例中,视频图像放置模块630,用于将各视频帧数据分别缓存至各解码缓存器中,其中一个解码缓存器存储一路视频帧数据;将各解码缓存器与各座位组件进行绑定,其中一个解码缓存器与一个座位组件绑定;将各解码缓存器中的视频帧数据对应的视频图像分别放置于与解码缓存器绑定的座位组件中。
在一个实施例中,装置还包括:
调整模块,用于根据排版信息调整一路或多路视频图像在视图容器中的位置和/或视频图像的尺寸。
在一个实施例中,渲染模块640,用于采用一路刷帧驱动信号对各视频图像进行同步渲染。
关于视频的渲染装置的具体限定可以参见上文中对于方法的限定,在此不再赘述。上述装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于终端设备中的处理器中,也可以以软件形式存储于终端设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
请参考图7,图7其示出了本申请实施例提供的一种终端设备的结构框图。该终端设备70可以是计算机设备。本申请中的终端设备70可以包括一个或多个如下部件:处理器72、存储器74以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器74中并被配置为由一个或多个处理器72执行,一个或多个应用程序配置用于执行上述视频的渲染方法实施例中所描述的方法。
处理器72可以包括一个或者多个处理核。处理器72利用各种接口和线路连接整个终端设备70内的各个部分,通过运行或执行存储在存储器74内的指令、程序、代码集或指令集,以及调用存储在存储器74内的数据,执行终端设备70的各种功能和处理数据。可选地,处理器72可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器72可集成中央处理器(Central ProcessingUnit,CPU)、图形处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器72中,单独通过一块通信芯片进行实现。
存储器74可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器74可用于存储指令、程序、代码、代码集或指令集。存储器74可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端设备70在使用中所创建的数据等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端设备的限定,具体的终端设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
综上,本申请实施例提供的终端设备用于实现前述方法实施例中相应的视频的渲染方法,并具有相应的方法实施例的有益效果,在此不再赘述。
请参阅图8,其示出了本申请实施例提供的一种计算机可读取存储介质的结构框图。该计算机可读取存储介质80中存储有程序代码,程序代码可被处理器调用执行上述视频的渲染方法实施例中所描述的方法。
计算机可读取存储介质80可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读取存储介质80包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读取存储介质80具有执行上述方法中的任何方法步骤的程序代码82的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码82可以例如以适当形式进行压缩。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种视频的渲染方法,其特征在于,所述方法包括:
获取各路视频流,对各路所述视频流分别进行转换,以生成各视频图像;
根据各所述视频图像的排版信息和索引信息将各所述视频图像依次放置于预先建立的一个视图容器中,且各所述视频图像之间不发生重叠或互相遮挡;
在所述视图容器中,对各所述视频图像进行渲染,以形成多路视频画面。
2.根据权利要求1所述的方法,其特征在于,对各路所述视频流分别进行转换,以生成各视频图像,包括:
对各路所述视频流进行解码处理,以得到各视频帧数据;
将各所述视频帧数据对应转化成各纹理图像,以得到各所述视频图像。
3.根据权利要求1所述的方法,其特征在于,所述排版信息包括坐标信息和尺寸信息;所述根据各所述视频图像的排版信息和索引信息将各所述视频图像依次放置于预先建立的一个视图容器中包括:
分别根据各所述视频图像的坐标信息和尺寸信息来确定各所述视频图像在所述视图容器的目标位置和目标尺寸;
根据各所述视频图像的索引信息将各所述视频图像依次放置于所述目标位置,并按照所述目标尺寸排列。
4.根据权利要求2所述的方法,其特征在于,所述视图容器包括多个座位组件;所述座位组件数量大于或等于视频流路数;所述排版信息包括尺寸信息;所述索引信息包括座位号信息;所述根据各所述视频图像的排版信息和索引信息将各所述视频图像依次放置于预先建立的一个视图容器中包括:
分别根据各所述视频图像的尺寸信息来确定各所述视频图像在所述视图容器的目标尺寸;
根据各所述视频图像的座位号信息将各所述视频图像依次放置于所述视图容器中相应的座位组件中,并按照所述目标尺寸排列;其中一个座位组件中放置一路视频图像。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
将各所述视频帧数据分别缓存至各解码缓存器中,其中一个所述解码缓存器存储一路所述视频帧数据;
将各解码缓存器与各座位组件进行绑定,其中一个所述解码缓存器与一个所述座位组件绑定;
将各所述解码缓存器中的视频帧数据对应的视频图像分别放置于与所述解码缓存器绑定的座位组件中。
6.根据权利要求3所述的方法,其特征在于,还包括:
根据所述排版信息调整一路或多路所述视频图像在所述视图容器中的位置和/或所述视频图像的尺寸。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述在所述视图容器中,对各所述视频图像进行渲染,包括:
采用一路刷帧驱动信号对各所述视频图像进行同步渲染。
8.一种视频的渲染装置,其特征在于,所述装置包括:
视频流获取模块,用于获取各路视频流;
视频图像生成模块,用于对各路所述视频流分别进行转换,以生成各视频图像;
视频图像放置模块,用于根据各所述视频图像的排版信息和索引信息将各所述视频图像依次放置于预先建立的一个视图容器中,且各所述视频图像之间不发生重叠或互相遮挡;
渲染模块,用于在所述视图容器中,对各所述视频图像进行渲染,以形成多路视频画面。
9.一种终端设备,其特征在于,包括:
存储器;一个或多个处理器,与所述存储器耦接;一个或多个应用程序,其中,一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-7任一项所述的方法。
CN202210289997.1A 2022-03-23 2022-03-23 视频的渲染方法、装置、设备和计算机可读存储介质 Pending CN114630184A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210289997.1A CN114630184A (zh) 2022-03-23 2022-03-23 视频的渲染方法、装置、设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210289997.1A CN114630184A (zh) 2022-03-23 2022-03-23 视频的渲染方法、装置、设备和计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN114630184A true CN114630184A (zh) 2022-06-14

Family

ID=81903794

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210289997.1A Pending CN114630184A (zh) 2022-03-23 2022-03-23 视频的渲染方法、装置、设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN114630184A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114938470A (zh) * 2022-06-16 2022-08-23 深圳市泛联信息科技有限公司 多路画面同步播放方法及相关装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120096223A1 (en) * 2010-10-15 2012-04-19 Qualcomm Incorporated Low-power audio decoding and playback using cached images
CN110213636A (zh) * 2018-04-28 2019-09-06 腾讯科技(深圳)有限公司 在线视频的视频帧生成方法、装置、存储介质及设备
CN110381322A (zh) * 2019-07-15 2019-10-25 腾讯科技(深圳)有限公司 视频流解码方法、装置、终端设备及存储介质
CN111970474A (zh) * 2020-08-28 2020-11-20 北京容联易通信息技术有限公司 一种多路视频的智能混屏方法和系统
CN113727175A (zh) * 2021-08-11 2021-11-30 西安诺瓦星云科技股份有限公司 多路视频源回显方法、系统和显示控制设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120096223A1 (en) * 2010-10-15 2012-04-19 Qualcomm Incorporated Low-power audio decoding and playback using cached images
CN110213636A (zh) * 2018-04-28 2019-09-06 腾讯科技(深圳)有限公司 在线视频的视频帧生成方法、装置、存储介质及设备
CN110381322A (zh) * 2019-07-15 2019-10-25 腾讯科技(深圳)有限公司 视频流解码方法、装置、终端设备及存储介质
CN111970474A (zh) * 2020-08-28 2020-11-20 北京容联易通信息技术有限公司 一种多路视频的智能混屏方法和系统
CN113727175A (zh) * 2021-08-11 2021-11-30 西安诺瓦星云科技股份有限公司 多路视频源回显方法、系统和显示控制设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114938470A (zh) * 2022-06-16 2022-08-23 深圳市泛联信息科技有限公司 多路画面同步播放方法及相关装置

Similar Documents

Publication Publication Date Title
CN110798697B (zh) 视频显示方法、装置、系统以及电子设备
US8955031B2 (en) System and method for generating coded video sequences from still media
CN112204993B (zh) 使用重叠的被分区的分段的自适应全景视频流式传输
US11483475B2 (en) Adaptive panoramic video streaming using composite pictures
CN107040794A (zh) 视频播放方法、服务器、虚拟现实设备以及全景虚拟现实播放系统
CN109600666A (zh) 游戏场景中的视频播放方法、装置、介质以及电子设备
JP6499324B2 (ja) ビデオを再生するための方法、クライアント及びコンピュータ記憶媒体
WO2022257699A1 (zh) 图像画面显示方法、装置、设备、存储介质及程序产品
CN111432262B (zh) 页面视频渲染方法及装置
CN106162232A (zh) 视频播放控制方法及装置
CN114245228B (zh) 页面链接投放方法、装置及电子设备
CN114040251A (zh) 音视频播放方法、系统、存储介质及计算机程序产品
CN110730340B (zh) 基于镜头变换的虚拟观众席展示方法、系统及存储介质
CN114630184A (zh) 视频的渲染方法、装置、设备和计算机可读存储介质
CN104010204B (zh) 图像信息处理方法及装置
US20230421740A1 (en) Video processing device and video generating system for virtual reality
CN113507641A (zh) 一种基于客户端的多路视频混屏方法、系统及设备
CN110990109A (zh) 一种拼接屏回显方法、终端、系统及存储介质
CN112954394B (zh) 一种高清视频的编码及解码播放方法、装置、设备和介质
CN116980688A (zh) 视频处理方法、装置、计算机、可读存储介质及程序产品
CN114205636A (zh) 直播间窗口信息的展示方法、装置、设备和存储介质
CN111246274A (zh) 确定用于显示信息的数据的方法及显示信息的方法、装置
CN115278278B (zh) 一种页面显示方法、装置、电子设备及存储介质
CN112203101B (zh) 一种远程视频直播方法、装置及电子设备
US20020113814A1 (en) Method and device for video scene composition

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