欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种视频播放方法、装置及系统独创技术27023字

一种视频播放方法、装置及系统

2021-02-05 03:07:35

一种视频播放方法、装置及系统

  技术领域

  本发明涉及信息处理技术领域,特别涉及一种视频播放方法、装置及系统。

  背景技术

  在进行实时视频通信的过程中,视频发送端会将当前端的视频实时地发送给视频接收端,这样视频接收端会实时地播放接收的视频。

  现有技术中,视频接收端在播放接收的视频时,一般会将接收的视频渲染到一个固定尺寸的区域(即渲染区域)进行视频播放,在渲染的过程中,当视频发送端采集的视频的分辨率与视频接收端的渲染区域不一致时,视频接收端在渲染时,会对接收的视频进行缩放和裁剪,这样会丢弃部分视频数据,从而使得视频接收端播放的视频不能完整地体现视频发送端发送的视频。

  发明内容

  本发明实施例提供一种视频播放方法、装置及系统,实现了在视频接收端动态地调整当前渲染区域的尺寸,以显示接收的视频数据。

  本发明实施例第一方面提供一种视频播放方法,包括:

  接收视频数据,所述视频数据中包括至少一帧图像及所述至少一帧图像分别对应的分辨率;

  当所述至少一帧图像的分辨率与当前渲染区域对应的分辨率不一致时,分别根据所述至少一帧图像对应的分辨率调整所述当前渲染区域的尺寸;

  在所述调整后的当前渲染区域,显示相应帧图像。

  本发明实施例第二方面提供一种视频播放装置,包括:

  视频接收单元,用于接收视频数据,所述视频数据中包括至少一帧图像及所述至少一帧图像分别对应的分辨率;

  区域调整单元,用于当所述至少一帧图像的分辨率与当前渲染区域对应的分辨率不一致时,分别根据所述至少一帧图像对应的分辨率调整所述当前渲染区域的尺寸;

  显示单元,用于在所述调整后的当前渲染区域,显示相应帧图像。

  本发明实施例第三方面提供一种存储介质,所述存储介质储存多条指令,所述指令适于由处理器加载并执行如本发明实施例第一方面所述的视频播放方法。

  本发明实施例第四方面提供一种终端设备,包括处理器和存储介质,所述处理器,用于实现各个指令;

  所述存储介质用于储存多条指令,所述指令用于由处理器加载并执行如本发明实施例第一方面所述的视频播放方法。

  本发明实施例第五方面提供一种视频播放系统,包括第一终端设备和第二终端设备,其中:

  所述第一终端设备,用于发送视频数据给第二终端设备,所述视频数据中包括至少一帧图像及所述至少一帧图像分别对应的分辨率;

  所述第二终端设备是如本发明实施例第二方面所述的视频播放装置,或如本发明实施例第四方面所述的终端设备。

  可见,在本实施例的方法中,视频发送端会将视频中各帧图像及其分辨率一同发送给视频接收端,这样视频接收端会在图像的分辨率与当前渲染区域对应的分辨率不一致的情况下,分别根据各帧图像的分辨率调整当前渲染区域的尺寸,这样在调整后的当前渲染区域显示相应帧图像时,使得当前渲染区域对应的分辨率与每帧图像的分辨率一致,或略大于每帧图像的分辨率,从而不会出现由于当前渲染区域固定而丢弃接收的视频数据的情况。

  附图说明

  为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

  图1是本发明实施例提供的一种视频播放方法的示意图;

  图2是本发明一个实施例提供的一种视频播放方法的流程图;

  图3是本发明应用实施例中视频接收端和视频发送端的示意图;

  图4是本发明应用实施例中提供的一种视频播放方法的流程图;

  图5是本发明实施例提供的一种视频播放装置的结构示意图;

  图6是本发明实施例提供的一种终端设备的结构示意图。

  具体实施方式

  下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

  本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排它的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

  本发明实施例提供一种视频播放方法,如图1所示,主要可以应用于两个通信设备之间实时地进行视频通信的过程中,其中两个通信设备中的视频发送端在发送视频数据后,视频接收端可以通过如下步骤实现视频播放:

  接收视频数据,所述视频数据中包括至少一帧图像及所述至少一帧图像分别对应的分辨率;当所述至少一帧图像的分辨率与当前渲染区域对应的分辨率不一致时,根据所述至少一帧图像分别对应的分辨率调整所述当前渲染区域的尺寸;在所述调整后的当前渲染区域,显示所述各帧图像。

  这样在调整后的当前渲染区域显示各帧图像时,使得当前渲染区域对应的分辨率与每帧图像的分辨率一致,或略大于每帧图像的分辨率,从而不会出现由于当前渲染区域固定而丢弃接收的视频数据的情况。

  本发明一个实施例提供一种视频播放发方法,主要是由上述的视频接收端所执行的方法,流程图如图2所示,包括:

  步骤101,接收视频数据,视频数据中包括至少一帧图像及至少一帧图像分别对应的分辨率。

  可以理解,用户可以操作任一应用终端,使得该应用终端发起与另一用户的应用终端进行实时的视频通信,这样当该应用终端与另一应用终端建立视频通信连接后,其中任一应用终端可以作为视频发送端,采集任一应用终端一侧的视频数据,并将采集的视频数据发送给另一应用终端,即视频接收端。

  在本实施例中,视频发送端发送的视频数据中可以包括至少一帧图像及至少一帧图像分别对应的分辨率,其中,当视频数据中包括多帧图像时,则还需要包括多帧图像中各帧图像的分辨率与帧数据的对应关系,这样,才能确定哪一帧图像的分辨率是多少;且视频数据中还可以包括至少一帧音频信息,在这里不进行强调,这样视频接收端接收的视频数据中也就包括了这些信息。

  其中,任一帧图像的分辨率是指一帧图像的象素总和,一般用水平象素个数x和垂直象素个数y来表示,分辨率越高,图象就越清晰;任一帧图像的帧数据可以包括采集该帧图像的时间信息等。

  步骤102,判断各帧图像的分辨率与当前渲染区域对应的分辨率是否一致,当不一致时,则执行步骤103和104;当一致时,则直接在当前渲染区域显示各帧图像。

  其中,当前渲染区域是指视频接收端显示视频数据中图像信息的区域,一般该当前渲染区域是预先设置的一个默认区域,其尺寸小于视频接收端中显示屏的尺寸。而当前渲染区域对应的分辨率是指在当前渲染区域内可以显示的图像的像素总和。

  步骤103,分别根据上述至少一帧图像对应的分辨率调整当前渲染区域的尺寸。

  具体地,当某一帧图像的分辨率大于当前渲染区域对应的分辨率时,则视频接收端会将当前渲染区域的尺寸变大,使得变大后的当前渲染区域对应的分辨率与该帧图像的分辨率一致,即变大后的当前渲染区域可以显示该帧图像的所有像素。

  具体地,视频接收端在将当前渲染区域的尺寸变大时,可以根据某一帧图像的分辨率,确定某一帧图像的长和高,并将某一帧图像的长和高,分别作为调整后的当前渲染区域的长和高。

  当某一帧图像的分辨率小于当前渲染区域对应的分辨率时,则视频接收端会将当前渲染区域的尺寸变小,使得变小后的当前渲染区域对应的分辨率与该帧图像的分辨率一致,或略大于该帧图像的分辨率。

  具体地,视频接收端在将当前渲染区域的尺寸变小时,会先根据某一帧图像的分辨率,确定某一帧图像的长和高,并计算当前渲染区域的长与某一帧图像的长的第一缩放比,及当前渲染区域的高与某一帧图像的高的第二缩放比,且确定第一缩放比与第二缩放比的最小缩放比;然后将某一帧图像的长按照最小缩放比进行缩放后形成的长作为调整后的当前渲染区域的长,将某一帧图像的高按照最小缩放比进行缩放后形成的高作为调整后的当前渲染区域的高。

  其中,某一帧图像的长(或高)按照最小缩放比进行缩放,具体为:某一帧图像的长(或高)与最小缩放比相乘。

  进一步地,当某一帧图像的长按照最小缩放比进行缩放后形成的长大于或等于当前渲染区域的长时,视频接收端可以直接将某一帧图像的长按照最小缩放比进行缩放后形成的长作为调整后的当前渲染区域的长;而当某一帧图像的长按照最小缩放比进行缩放后形成的长小于当前渲染区域的长时,视频接收端会将某一帧图像的长按照最大缩放比进行缩放后形成的长作为调整后的当前渲染区域的长,这里最大缩放比是第一缩放比与第二缩放比的最大值。

  进一步地,当某一帧图像的高按照所述最小缩放比进行缩放后形成的高大于或等于当前渲染区域的高时,视频接收端会直接将某一帧图像的高按照所述最小缩放比进行缩放后形成的高作为调整后的当前渲染区域的高;而当某一帧图像的高按照所述最小缩放比进行缩放后形成的高小于当前渲染区域的高时,视频接收端可以将某一帧图像的高按照最大缩放比进行缩放后形成的高作为调整后的当前渲染区域的高,这里,最大缩放比是第一缩放比与第二缩放比的最大值。

  步骤104,在调整后的当前渲染区域,显示相应帧图像。

  具体地,当视频接收端可以在针对某一帧图像,执行上述步骤103后,使用调整后的渲染区域显示该帧图像;在针对另一帧图像,执行上述步骤103后,使用调整后的渲染区域显示另一帧图像。

  其中,当上述步骤101中接收的视频数据中包括各帧图像的分辨率与帧数据的对应关系时,在显示各帧图像时,视频接收端就可以根据各帧图像的帧数据,确定哪一帧图像对应哪个尺寸的调整后的当前渲染区域,并将各帧图像在相应尺寸的当前渲染区域内渲染后进行显示。

  可见,在本实施例的方法中,视频发送端会将视频中各帧图像及其分辨率一同发送给视频接收端,这样视频接收端会在图像的分辨率与当前渲染区域对应的分辨率不一致的情况下,分别根据各帧图像的分辨率调整当前渲染区域的尺寸,这样在调整后的当前渲染区域显示相应帧图像时,使得当前渲染区域对应的分辨率与每帧图像的分辨率一致,或略大于每帧图像的分辨率,从而不会出现由于当前渲染区域固定而丢弃接收的视频数据的情况。

  需要说明的是,上述步骤101到104是视频接收端在接收到视频数据后,播放视频数据的过程。在其它实施例中,上述视频接收端还可以采集当该视频接收端一侧的视频数据,即视频采集数据,并将视频采集数据发送给另一应用终端进行播放,在视频采集数据中包括至少一帧图像及至少一帧图像分别对应的分辨率。

  其中,当视频采集数据中包括多帧图像时,则还需要包括各帧图像的分辨率与帧数据的对应关系,这样,才能确定哪一帧图像的分辨率是多少;且视频数据中还可以包括至少一帧音频信息,在这里不进行强调。

  以下以一个具体的应用实例来说明本发明中的视频播放方法,本实施例的方法可以应用于企业微信的通过网络协议传送话音(Voice over Internet Protocol,VoIP)的视频通信中。如图3所示,本实施例的视频发送端可以包括视频采集模块和引擎处理模块,视频接收端可以包括引擎处理模块和渲染模块,其中,视频采集模块会采集到视频数据,在视频数据中包括多帧图像,及各帧图像的分辨率和帧数据的对应关系;视频采集模块会将这些视频数据通过视频发送端中的引擎处理模块,发送给视频接收端的引擎处理模块;这样渲染模块会根据各帧图像的分辨率和帧数据的对应关系,自适应地调整当前渲染区域的尺寸,并在调整后的当前渲染区域中显示各帧图像。

  这样,采用本实施例的方法,在视频发送端与视频接收端进行的实时视频通信过程中,用户通过视频接收端看到视频发送端对应用户的影像与用户通过视频发送端看到的视频内容完全一致,不会产生任何裁剪或形变。具体地,本实施例的方法包括如下步骤,流程图如图4所示,包括:

  步骤201,当用户操作视频发送端,使得视频发送端与视频接收端之间建立视频通信连接,这样视频发送端的视频采集模块采集到视频发送端一侧的视频数据,并传输给引擎处理模块,在视频数据中包括多帧图像,及各帧图像的分辨率及帧数据的对应关系。

  其中某一帧图像的帧数据是指视频采集模块采集该帧图像时的时间信息等。

  步骤202,视频发送端的引擎处理模块将视频数据通过视频通信连接,发送给视频接收端,当视频接收端的引擎处理模块接收到视频数据后,会判断视频接收端的当前渲染区域对应的分辨率与视频数据中各帧图像的分辨率是否一致,当不一致时,继续执行步骤203;当一致时,则引擎处理模块会将视频数据传输给渲染模块,由渲染模块在当前渲染区域直接显示各帧图像。

  步骤203,视频接收端的引擎处理模块判断当前渲染区域对应分辨率是否大于各帧图像的分辨率,当大于时,则执行步骤204;当小于时,则执行步骤205。

  步骤204,视频接收端的引擎处理模块计算根据各帧图像的分辨率,确定各帧图像的长和高,并计算当前渲染区域的长与某一帧图像的长的第一缩放比,记为XScale,及当前渲染区域的高与某一帧图像的高的第二缩放比,记为YScale;确定第一缩放比与第二缩放比的最小缩放比,记为MinScale,即MinScale=min(XScale,YScale),这样,各帧图像的长按照最小缩放比MinScale进行缩放后形成的长WMin=MinScale*图像的长W,各帧图像的高按照最小缩放比进行缩放后形成的高HMin=MinScale*图像的高H。进一步地,视频接收端的引擎处理模块还继续执行步骤206。

  步骤205,视频接收端的引擎处理模块根据各帧图像的分辨率,确定各帧图像的长和高,并将各帧图像的长作为调整后的当前渲染区域的长。之后再执行步骤209。

  步骤206,视频接收端的引擎处理模块判断各帧图像的长按照最小缩放比MinScale进行缩放后形成的长WMin是否大于或等于当前渲染区域的长,及判断各帧图像的高按照最小缩放比MinScale进行缩放后形成的高HMin是否大于或等于当前渲染区域的高,当都大于或等于时,则该引擎处理模块会执行步骤207;当都小于时,则该引擎处理模块会执行步骤208。

  步骤207,引擎处理模块会将各帧图像的长进行缩放后形成的长WMin作为调整后的当前渲染区域的长,将各帧图像的高按照进行缩放后形成的高HMin作为调整后的当前渲染区域的高。之后再执行步骤209。

  步骤208,视频接收端的引擎处理模块会确定上述第一缩放比与第二缩放比的最大缩放比,记为MaxScale,即MaxScale=max(XScale,YScale),这样,各帧图像的长按照最大缩放比MaxScale进行缩放后形成的长WMax=MaxScale*图像的长W,各帧图像的高按照最大缩放比进行缩放后形成的高HMax=MaxScale*图像的高H。

  然后引擎处理模块会将各帧图像的长进行缩放后形成的长WMax作为调整后的当前渲染区域的长;将各帧图像的高进行缩放后形成的高HMax作为调整后的当前渲染区域的高。之后再执行步骤209。

  步骤209,视频接收端引擎处理模块将各帧图像的帧数据,及按照各帧图像的分辨率调整后的当前渲染区域的尺寸(具体为长高)通知给渲染模块。这样渲染模块在按照帧数据显示各帧图像时,会将各帧图像渲染到相应尺寸的当前渲染区域内,进行显示。

  本发明实施例还提供一种视频播放装置,即上述的视频接收端,其结构示意图如图5所示,具体可以包括:

  视频接收单元10,用于接收视频数据,所述视频数据中包括至少一帧图像及所述至少一帧图像分别对应的分辨率。

  其中,当所述视频数据中包括多帧图像时,则视频数据中还包括多帧图像中所述各帧图像的分辨率与帧数据的对应关系。

  区域调整单元11,用于当所述视频接收单元10接收至少一帧图像的分辨率与当前渲染区域对应的分辨率不一致时,分别根据所述至少一帧图像对应的分辨率调整所述当前渲染区域的尺寸。

  区域调整单元11在调整根据某一帧图像的分辨率调整当前渲染区域的尺寸时,具体用于当所述某一帧图像的分辨率大于当前渲染区域对应的分辨率时,将所述当前渲染区域的尺寸变大,使得所述变大后的当前渲染区域对应的分辨率与所述某一帧图像的分辨率一致;还用于当所述某一帧图像的分辨率小于当前渲染区域对应的分辨率时,将所述当前渲染区域的尺寸变小,使得所述变小后的当前渲染区域对应的分辨率与所述某一帧图像的分辨率一致。

  其中,区域调整单元11在将所述当前渲染区域的尺寸变大时,具体用于根据所述某一帧图像的分辨率,确定所述某一帧图像的长和高;将所述某一帧图像的长和高,分别作为调整后的当前渲染区域的长和高。

  区域调整单元11在将所述当前渲染区域的尺寸变小时,具体用于根据所述某一帧图像的分辨率,确定所述某一帧图像的长和高;计算所述当前渲染区域的长与某一帧图像的长的第一缩放比,及所述当前渲染区域的高与某一帧图像的高的第二缩放比;确定所述第一缩放比与第二缩放比的最小缩放比;将所述某一帧图像的长按照所述最小缩放比进行缩放后形成的长作为所述调整后的当前渲染区域的长,将所述某一帧图像的高按照所述最小缩放比进行缩放后形成的高作为所述调整后的当前渲染区域的高。

  进一步地,区域调整单元11在确定所述第一缩放比与第二缩放比的最小缩放比之后,当所述某一帧图像的长按照所述最小缩放比进行缩放后形成的长大于或等于所述当前渲染区域的长时,执行所述将所述某一帧图像的长按照所述最小缩放比进行缩放后形成的长作为所述调整后的当前渲染区域的长的步骤;当所述某一帧图像的长按照所述最小缩放比进行缩放后形成的长小于所述当前渲染区域的长时,还用于将某一帧图像的长按照最大缩放比进行缩放后形成的长作为所述调整后的当前渲染区域的长,所述最大缩放比是所述第一缩放比与第二缩放比的最大值。

  进一步地,区域调整单元11在确定所述第一缩放比与第二缩放比的最小缩放比之后,当所述某一帧图像的高按照所述最小缩放比进行缩放后形成的高大于或等于所述当前渲染区域的高时,执行所述将所述某一帧图像的高按照所述最小缩放比进行缩放后形成的高作为所述调整后的当前渲染区域的高的步骤;当所述某一帧图像的高按照所述最小缩放比进行缩放后形成的高小于所述当前渲染区域的高时,还用于将某一帧图像的高按照最大缩放比进行缩放后形成的高作为所述调整后的当前渲染区域的高,所述最大缩放比是所述第一缩放比与第二缩放比的最大值。

  显示单元12,用于在所述区域调整单元11调整后的当前渲染区域,显示相应帧图像。

  进一步地,本实施例的视频播放装置还包括:视频发送单元13,用于发送视频采集数据,所述视频采集数据中包括至少一帧图像,及所述至少一帧图像分别对应的分辨率。

  其中,当所述视频采集数据中包括多帧图像时,则还包括所述各帧图像的分辨率与帧数据的对应关系。

  在本实施例中,视频发送端会将视频中各帧图像及其分辨率一同发送给视频接收端,这样本实施例中的视频播放装置中区域调整单元11会在图像的分辨率与当前渲染区域对应的分辨率不一致的情况下,分别根据各帧图像的分辨率调整当前渲染区域的尺寸,这样显示单元12在调整后的当前渲染区域显示相应帧图像时,使得当前渲染区域对应的分辨率与每帧图像的分辨率一致,或略大于每帧图像的分辨率,从而不会出现由于当前渲染区域固定而丢弃接收的视频数据的情况。

  本发明实施例还提供一种终端设备,其结构示意图如图6所示,该终端设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)20(例如,一个或一个以上处理器)和存储器21,一个或一个以上存储应用程序221或数据222的存储介质22(例如一个或一个以上海量存储设备)。其中,存储器21和存储介质22可以是短暂存储或持久存储。存储在存储介质22的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对终端设备中的一系列指令操作。更进一步地,中央处理器20可以设置为与存储介质22通信,在终端设备上执行存储介质22中的一系列指令操作。

  具体地,在存储介质22中储存的应用程序221包括视频播放的应用程序,且该程序可以包括上述视频播放装置中的视频接收单元10,区域调整单元11,显示单元12和视频发送单元13,在此不进行赘述。更进一步地,中央处理器20可以设置为与存储介质22通信,在终端设备上执行存储介质22中储存的视频播放的应用程序对应的一系列操作。

  终端设备还可以包括一个或一个以上电源23,一个或一个以上有线或无线网络接口24,一个或一个以上输入输出接口25,和/或,一个或一个以上操作系统223,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。

  上述方法实施例中所述的由视频播放单元所执行的步骤可以基于该图6所示的终端设备的结构。

  本发明实施例还提供一种存储介质,所述存储介质储存多条指令,所述指令适于由处理器加载并执行如上述视频播放装置所执行的视频播放方法。

  本发明实施例还提供所述的一种终端设备,包括处理器和存储介质,所述处理器,用于实现各个指令;所述存储介质用于储存多条指令,所述指令用于由处理器加载并执行如上述视频播放装置所执行的视频播放方法。

  本发明实施例还提供一种视频播放系统,包括第一终端设备和第二终端设备,其中:

  所述第一终端设备,用于发送视频数据给第二终端设备,所述视频数据中包括至少一帧图像及所述至少一帧图像分别对应的分辨率;所述第二终端设备是如上述图5所示的视频播放装置,或如上述图6所示的终端设备。

  本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM)、随机存取存储器RAM)、磁盘或光盘等。

  以上对本发明实施例所提供的视频播放方法、装置及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

《一种视频播放方法、装置及系统.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)