掌桥专利:专业的专利平台
掌桥专利
首页

一种视频流呈现方法、装置、设备以及存储介质

文献发布时间:2023-06-19 13:27:45


一种视频流呈现方法、装置、设备以及存储介质

技术领域

本公开涉及计算机技术领域,尤其涉及视频处理技术领域。

背景技术

在视频直播过程中,会出现需要将多个来自不同视频源的视频流共同播放在一个客户端上的情况。

发明内容

本公开提供了一种视频流呈现方法、装置、设备以及存储介质。

根据本公开的一方面,提供了一种视频流呈现方法,包括:

根据视频流数据获得原始视频画面,所述视频流数据为由视频采集终端采集后通过服务器处理的视频流数据;

对所述原始视频画面按照预设裁切方法进行裁切,得到第一视频画面,所述预设裁切方法为客户端根据客户端信息预设的视频画面裁切方法,所述客户端信息包括所述客户端的屏幕特征信息;

同时播放第二视频画面和所述第一视频画面,所述第二视频画面为客户端在得到第一视频画面之前已经播放的视频画面。

根据本公开的另一方面,提供了一种视频流呈现装置,包括:

原始视频画面获取模块,用于根据视频流数据获得原始视频画面,所述视频流数据为由视频采集终端采集后通过服务器处理的视频流数据;

视频裁切模块,用于对所述原始视频画面按照预设裁切方法进行裁切,得到第一视频画面,所述预设裁切方法为客户端根据客户端信息预设的视频画面裁切方法,所述客户端信息包括所述客户端的屏幕特征信息;

视频播放模块,用于同时播放第二视频画面和所述第一视频画面,所述第二视频画面为客户端在得到第一视频画面之前已经播放的视频画面。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本公开的限定。其中:

图1是根据本公开的视频流呈现方法的一种流程示意图;

图2是根据本公开的视频流呈现方法的另一种流程示意图;

图3是本公开的客户端视频播放画面的一种示意图;

图4是根据本公开的视频流呈现方法的另一种流程示意图;

图5是根据本公开的视频流呈现装置的一种结构示意图;

图6是用来实现本公开实施例的视频流呈现方法的电子设备的框图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

在视频直播过程中,在需要将多个不同视频源的视频流在一个客户端中进行播放时,例如用户在观看多个主播连麦直播(一种由多个主播合作进行的直播形式)时,需要在用户所使用的客户端同时播放参与连麦的多个主播各自推送的直播视频流,相关技术中,服务端将多个不同视频流通过合流模板进行合流,再将合流之后得到的视频流推流给客户端,使客户端对合流后的视频流进行播放,而在这种情况下,由于服务器是使用合流模板对多个视频流进行合流,不能依据客户端的不同而适应性的选择合适的合流模板,再加上不同的客户端由于客户端的显示界面大小或分辨率等的不同,对视频流画面的裁切方式也可能不同,因此,由服务器使用同一合流模板合流的视频流与客户端的显示界面并不适配,因此客户端播放合流得到的视频帧时,会出现多个视频流中至少有一路的视频流的画面被严重裁切的情况,难以正常显示视频画面。

基于上述技术问题,本公开的实施例提供了一种视频流呈现方法,该方法可以如图1所示,包括:

S101,根据视频流数据获得原始视频画面。

S102,对原始视频画面按照预设裁切方法进行裁切,得到第一视频画面。

S103,同时播放第二视频画面和第一视频画面。

选用该实施例,客户端在获取视频流数据之后,对根据视频流数据获得的原始视频画面按照客户端根据自身信息预设的裁切方法进行裁切,获得可以在第二视频画面上正常播放的第一视频画面,使得由视频流数据获得的原始视频画面可以根据客户端的不同在客户端被适应性的进行裁切,避免直接在服务器合流后再进行画面裁切而出现视频画面被严重裁切的情况,提高了合流视频画面的完整性。

其中,在S101中,在视频直播过程中,可能会出现需要将来自其他视频源的视频流数据与客户端当前显示的视频画面共同显示在同一个屏幕上的情况,而该视频流数据可以是由视频采集终端采集后通过服务器处理的视频流数据,示例性的,可以是正在观看一个直播视频的观众想将另一个直播画面也显示在自己的客户端上,也就是说,同时观看两个直播画面。可以理解,另一个直播画面也是本公开中视频采集终端采集得到的视频流数据,此时,服务器需要对该视频流数据进行处理,例如对视频流数据进行编辑或转码,将该视频流数据编辑为带有基准分辨率信息的视频流数据,推流给客户端。客户端在接收到该带有基准分辨率信息的视频流数据后,可以将视频流数据转换为原始视频画面。

在S102中,由于客户端需要将上述来自其他视频源的视频流数据显示在正在播放的视频画面上,因此,客户端需要对根据上述其他视频源的视频流数据获得的视频画面即原始视频画面进行相应的裁切。而不同的客户端可能具有不同的屏幕特征,例如屏幕分辨率或屏幕样式,示例性的,以客户端为手机为例,手机的机型可能会有刘海屏、水滴屏或挖孔屏等不同的屏幕样式,并且手机的分辨率可能为1920*1080,还可能为2048*1080。客户端可以基于上述屏幕特征,预设不同的视频画面裁切方法,来对视频画面进行适应性裁切。

可以理解的是,上述原始视频画面可以是一个视频画面,也可以是根据多个不同的视频流数据获得的多个视频画面。

在S103中,第二视频画面是客户端在得到第一视频画面之前已经进行播放的视频画面,例如,若正在观看一个直播的观众想将另一个直播的视频画面也显示在自己的客户端上,在这种情况下,该观众正在观看的直播视频就可以是本公开的第二视频画面。客户端在获得第一视频画面之后,可以将第一视频画面和第二视频画面同时显示在客户端上。

在一种可能的实施例中,对原始视频画面按照预设裁切方法进行裁切,得到第一视频画面,可以包括:对原始视频画面进行垂直方向和/或水平方向的裁切,获得第一视频画面。

垂直方向是指原始视频画面中垂直于像素行的方向,水平方向是指原始视频画面中平行于像素行的方向。示例性的,本公开可以将原始视频画面的水平方向的中线与播放器水平方向上的中线,按照播放器的大小裁切原始视频画面超出播放器的左边界和右边界的画面,即左右居中对齐裁切,还可以将原始视频画面的垂直方向的中线与播放器垂直方向上的中线对齐,按照播放器的大小裁切原始视频画面超出播放器的上边界和下边界画面,即上下居中对齐裁切,还可以将原始视频画面的左边界与播放器的左边界对齐,裁切原始视频画面超出播放器的右边界的画面,即左对齐右裁切,还可以是将原始视频画面右边界与播放器的水平方向的右边界对齐,裁切原始视频画面超出播放器的左边界的画面,即右对齐左裁切,还可以将原始视频画面的上边界与播放器的上边界对齐,裁切原始视频画面超出播放器的下边界的画面,即上对齐下裁切,也可以是将原始视频画面的下边界与播放器的下边界对齐,裁切原始视频画面超出播放器的上边界画面,即下对齐上裁切。可以理解的是,本公开可以根据客户端信息的不同,对不同客户端采用不同的裁切方式对原始视频画面进行裁切。

前述左边界是指水平方向上的两个边界中的一个边界,右边界是指水平方向上的两个边界中的另一个边界,上边界是指垂直方向上的两个边界中的一个边界,下边界是指垂直方向上的两个边界中的另一个边界。

选用该实施例,可以对原始视频画面进行合理裁切,使得原始视频画面以合适的大小呈现在客户端的播放器中,提高了视频画面的可观看性,进一步的,提高了用户的观看体验。

在实际应用中,通过服务器的合流模板对多个视频流进行合流除了可能使视频流的画面被严重裁切之外,由于服务器已经通过模板对由多个视频流获得的视频画面的位置进行固定,因此播放控件的位置也将固定,而为了便于用户直观的理解各个控件的作用,播放控件的位置需要与视频画面的位置对齐,所以通过服务器合流模板合流视频会导致客户端在获得合流后的视频流之后难以根据实际需求将播放控件放置在便于用户操控的位置上,进而使得用户难以便捷的通过播放控件进行交互。

基于此,本申请还提供了一种视频流呈现方法,如图2所示,方法包括:

S201,根据视频流数据获得原始视频画面。

该步骤与前述S101相同,可以参见前述S101的相关说明,在此不再赘述。

S202,对原始视频画面按照预设裁切方法进行裁切,得到第一视频画面。

该步骤与前述S102相同,可以参见前述S102的相关说明,在此不再赘述。

S203,同时播放第二视频画面和第一视频画面

该步骤与前述S103相同,可以参见前述S103的相关说明,在此不再赘述。

S204,获取客户端信息和预设裁切方法。

客户端可以获取客户端自身的客户端信息,例如屏幕分辨率和屏幕样式,下文为描述方便将屏幕分辨率记为(w,h),其中,w表示屏幕在水平方向上的分辨率,h表示屏幕在垂直方向上的分辨率。

S205,获取第一视频画面信息。

可以理解的是,第一视频画面相对于原始视频画面来说是进行了大小裁切的视频画面,因此,客户端可以根据从服务器接收到视频流数据获取到原始视频画面的视频分辨率信息,该视频分辨率信息可以用于表示第一视频画面的视频分辨率,下文为描述方便将第一视频画面的分辨率记为(w

客户端还可以从已经进行裁切了的第一视频画面中获得第一视频画面的基准坐标信息和基准宽高信息。其中,基准坐标信息用于表示第一视频画面中心点的位置坐标,即第一视频画面垂直方向和水平方向中线的交点的坐标,下文为描述方便将第一视频画面中心点的位置坐标记为(x

S206,根据客户端信息、预设裁切方法和第一视频画面信息按照预设算法确定播放器控件位置。

其中,预设算法可以是预先保存在客户端的算法,对预设算法输入相关的客户端信息、预设裁切方法和第一视频画面信息客户端就可以得到播放器控件的位置坐标。

在一种可能的实施例中,客户端根据预设算法计算播放器控件位置时,可以将播放器控件与第一视频画面位置对齐放置,如图3所示。下文为描述方便,将预设播放器控件的中心位置坐标记为(x

若客户端为手机,在获得屏幕分辨率(w,h),视频分辨率信息(w

h=h+h

其中,h

根据预设算法,还需要对预设裁切方法进行判断,示例性的,若裁切方法是左右居中对齐裁切时,则需要计算左右裁切偏移量

offset=|(h*w

根据左右裁切偏移量计算播放器控件位置坐标,

其中offset为左右裁切偏移量。

相应的,也可以判断预设裁切方法是否为其他方式,例如,若预设裁切方法是右对齐左裁切,则

在确定屏幕样式和预设裁切方法之后,就可以进一步对播放器的位置和大小进行计算。

按照预设算法分别计算播放器空间的宽高和位置,

w

h

y

这样就获得了播放器控件的中心位置坐标(x

在一种可能的实施例中,若屏幕样式是不支持沉浸式的全面屏或其他的特殊屏幕样式的机型,则播放器控件的中心位置坐标需要按照以下公式进行计算:

y

选用该实施例,由于第一视频画面是在客户端被独立进行处理播放器的,因此,第一视频画面和第二视频画面是独立进行播放的,进而第一视频画面位置可以在客户端上被独立调整,基于此,客户端也可以针对第一视频画面添加任意的播放器控件,并且根据第一视频画面信息以及客户端信息和预设裁切方法,使用预设算法调整播放器控件位置,使得播放器控件可以放置在合适的位置上,提高了视频的可交互性。

在一种可能的实施例中,由于相关技术中,多个视频流是通过服务器合流模板进行合流的,因此,将该合流之后得到的视频流推流到客户端之后,客户端无法准确确定各个视频画面的位置,因此也难以对各个视频画面进行准确渲染,基于此,本申请还提供了一种视频流呈现方法,如图4所示,方法包括:

S401,根据视频流数据获得原始视频画面。

该步骤与前述S101相同,可以参见前述S101的相关说明,在此不再赘述。

S402,对原始视频画面按照预设裁切方法进行裁切,得到第一视频画面。

该步骤与前述S102相同,可以参见前述S102的相关说明,在此不再赘述。

S403,同时播放第二视频画面和第一视频画面

该步骤与前述S103相同,可以参见前述S103的相关说明,在此不再赘述。

S404,获取客户端信息和预设裁切方法。

该步骤与前述S204相同,可以参见前述S204的相关说明,在此不再赘述。

S405,获取第一视频画面信息。

该步骤与前述S205相同,可以参见前述S205的相关说明,在此不再赘述。

S406,根据客户端信息、预设裁切方法和第一视频画面信息按照预设算法确定播放器控件位置。

该步骤与前述S206相同,可以参见前述S206的相关说明,在此不再赘述。

S407,按照预设视频渲染方法对第一视频画面进行渲染。

可以理解,由于第一视频画面是在客户端进行处理得到的,因此,客户端可以准确确定出第一视频画面的位置和大小,使用预设的视频渲染方法,例如给第一视频画面添加动画效果等,来渲染视频画面。

S408,按照预设控件渲染方案对播放器控件进行渲染。

可以理解,客户端已经根据客户端信息、第一视频画面信息和预设裁切方法使用预设算法对播放器控件的位置和大小进行计算,因此,客户端可以准确确定播放器控件的位置和大小,从而对播放器控件使用预设渲染方案进行渲染,例如给播放器控件添加边框等方式。

选用该实施例,可以基于第一视频画面位置和播放器控件位置实时可控地对第一视频画面和播放器控件进行渲染,提高了视频画面的丰富性,进一步的提高了播放器控件的可互动性。

本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。

根据本公开的实施例,本公开还提供了一种视频流呈现装置,如图5所示,包括:

原始视频画面获取模块501,用于根据视频流数据获得原始视频画面,所述视频流数据为由视频采集终端采集后通过服务器处理的视频流数据;

视频裁切模块502,用于对所述原始视频画面按照预设裁切方法进行裁切,得到第一视频画面,所述预设裁切方法为客户端根据客户端信息预设的视频画面裁切方法,所述客户端信息包括所述客户端的屏幕特征信息;

视频播放模块503,用于同时播放第二视频画面和所述第一视频画面,所述第二视频画面为客户端在得到第一视频画面之前已经播放的视频画面。

在一种可能的实施例中,装置还包括:

客户端信息获取模块,用于获取所述客户端信息和所述预设裁切方法;

视频信息获取模块,用于获取第一视频画面信息,所述第一视频画面信息包括所述第一视频画面的视频分辨率信息、基准坐标信息和基准宽高信息;

播放器控件确定模块,用于根据所述客户端信息、所述预设裁切方法和所述第一视频画面信息按照预设算法确定播放器控件位置,所述播放器控件是为所述第一视频画面设置的交互控件。

在一种可能的实施例中,装置还包括:

视频渲染模块,用于按照预设视频渲染方法对所述第一视频画面进行渲染;

控件渲染模块,用于按照预设控件渲染方案对所述播放器控件进行渲染。

在一种可能的实施例中,视频裁切模块502,具体用于,对所述原始视频画面进行垂直方向和/或水平方向的裁切,获得第一视频画面。

根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。

设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如一种视频流呈现方法。例如,在一些实施例中,一种视频流呈现方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的一种视频流呈现方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行一种视频流呈现方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

相关技术
  • 一种视频流呈现方法、装置、设备以及存储介质
  • 一种用于在实时视频流中呈现资源推送信息的方法与设备
技术分类

06120113688505