CN114710702A - 一种视频的播放方法和装置 - Google Patents
一种视频的播放方法和装置 Download PDFInfo
- Publication number
- CN114710702A CN114710702A CN202210631792.7A CN202210631792A CN114710702A CN 114710702 A CN114710702 A CN 114710702A CN 202210631792 A CN202210631792 A CN 202210631792A CN 114710702 A CN114710702 A CN 114710702A
- Authority
- CN
- China
- Prior art keywords
- video
- memory
- image frame
- current image
- address
- 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.)
- Withdrawn
Links
Images
Classifications
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
Abstract
本发明公开了一种视频的播放方法和装置,通过将视频流的当前图像帧直接解码为RGBA格式,使当前图像帧直接为RGBA图像数据,省略了传统处理方式中的YUV格式转RGBA格式的过程,根据当前图像帧对应于显示存储器中的物理地址,获得显存地址,并将当前图像帧输入至显示存储器中预设的同步缓存区,将同步缓存区对应于显示存储器的物理地址输出至主存储器的帧缓冲存储器,在显存地址和缓存地址相同时,可以确定出数据传递正确,则输出同步缓存区的当前图像帧以播放视频流数据,该播放方法的处理流程保证视频流数据始终在显示存储器中,相较于主存储器中设立缓存区方案,避免了数据从显示存储器到主存储器的拷贝,进而提高了视频播放的处理效率。
Description
技术领域
本申请涉及视频播放处理的技术领域,尤其涉及一种视频的播放方法和装置。
背景技术
随着5G时代的来临,高清视频播放需求与日剧增,仅由CPU(Central ProcessingUnit,中央处理器)来承担视频播放任务不仅效率偏低,且占用大量CPU资源,当CPU同时执行其他任务时,容易造成系统卡顿,影响用户体验。目前,采用GPU(Graphics ProcessingUnit,图形处理器)进行视频播放已成为一种有效的解决方案,并被广泛使用。
但现有视频播放的数据处理流程中,涉及到多次显示存储器与主存储器间的数据拷贝。如在多媒体平台中,GPU解码后的YUV图像数据是存在显示存储器的,需要先拷贝到主存储器间,再通过服务器传递主存储器间中的数据给显示存储器,由GPU将显示存储器中YUV图像数据进行缩放和转化处理后进行显示,这会较大影响视频播放性能。因此,当GPU性能受限且视频分辨率较大时,会影响视频的处理效率,容易使视频播放出现掉帧和卡顿现象。
因此,如何提高视频播放的处理效率,是目前亟待解决的技术问题。
发明内容
本发明的一种视频的播放方法和装置,提高了视频播放的处理效率。
本发明实施例提供了以下方案:
第一方面,本发明实施例提供了一种视频的播放方法,包括:
获取视频流中解码为RGBA格式的当前图像帧;
根据所述当前图像帧对应于显示存储器中的物理地址,获得显存地址;
将所述当前图像帧输入至所述显示存储器中预设的同步缓存区;
将缓存地址输出至主存储器的帧缓冲存储器,其中,所述缓存地址为所述同步缓存区对应于所述显示存储器的物理地址;
在所述显存地址和所述缓存地址相同时,输出所述同步缓存区的所述当前图像帧以播放所述视频流。
在一种可选的实施例中,所述获取视频流中解码为RGBA格式的当前图像帧,包括:
多媒体平台读取所述视频流的当前帧;
根据所述多媒体平台配置的输出模式,硬解码处理所述当前帧;
根据所述硬解码处理的结果,获得所述RGBA格式的所述当前图像帧。
在一种可选的实施例中,所述根据所述当前图像帧对应于显示存储器中的物理地址,获得显存地址,包括:
根据所述当前图像帧的分辨率和所述RGBA格式的分配规格,在所述显示存储器的显存容量中对应分配出所述物理地址,获得所述显存地址。
在一种可选的实施例中,播放所述视频流的输出框架为xvideo,所述将所述当前图像帧输入至所述显示存储器中预设的同步缓存区之前,还包括:
初始化xorg服务器和所述显示存储器的硬件抽象层,使所述xvideo输出框架为激活状态。
在一种可选的实施例中,播放所述视频流的输出框架为xvideo,在所述显存地址和所述缓存地址相同时,输出所述同步缓存区的所述当前图像帧以播放所述视频流,包括:
配置xorg服务器将缓存信息传输至所述xvideo输出框架的传输接口,其中,所述缓存信息至少包括所述缓存地址;
xorg服务器通过所述传输接口读取所述缓存信息,当所述显存地址和所述缓存地址相同时,缩放处理所述当前图像帧并与播放窗口融合显示。
在一种可选的实施例中,所述缩放处理所述当前图像帧并与播放窗口融合显示,包括:
获取所述当前图像帧的显示规格;
根据所述显示规格缩放处理所述当前图像帧,并将缩放处理结果输出至所述显示存储器的预设显示区;
将所述预设显示区的所述当前图像帧在所述播放窗口播放显示。
在一种可选的实施例中,所述根据所述显示规格缩放处理所述当前图像帧,并将缩放处理结果输出至所述显示存储器的预设显示区包括:
读取所述显示规格、所述显存地址和所述预设显示区的显示地址;
根据所述显示规格缩放处理所述显存地址中的所述当前图像帧,并存入所述显示地址。
第二方面,本发明实施例还提供了一种视频的播放装置,包括:
第一获取模块,用于获取视频流中解码为RGBA格式的当前图像帧;
第一获得模块,用于根据所述当前图像帧对应于显示存储器中的物理地址,获得显存地址;
第一输入模块,用于将所述当前图像帧输入至所述显示存储器中预设的同步缓存区;
第一输出模块,用于将缓存地址输出至主存储器的帧缓冲存储器,其中,所述缓存地址为所述同步缓存区对应于所述显示存储器的物理地址;
第二输出模块,用于在所述显存地址和所述缓存地址相同时,输出所述同步缓存区的所述当前图像帧以播放所述视频流。
第三方面,本发明实施例还提供了一种电子设备,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述电子设备执行第一方面中任一项所述方法的步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一项所述方法的步骤。
本发明提供的一种视频的播放方法和装置与现有技术相比,具有以下优点:
本发明通过将视频流的当前图像帧直接解码为RGBA格式,使当前图像帧直接为RGBA图像数据,而不是YUV图像数据,省略了传统处理方式中的YUV格式转RGBA格式的过程,根据当前图像帧对应于显示存储器中的物理地址,获得显存地址,并将当前图像帧输入至显示存储器中预设的同步缓存区,将同步缓存区对应于显示存储器的物理地址输出至主存储器的帧缓冲存储器,在显存地址和缓存地址相同时,可以确定出数据传递正确,则输出同步缓存区的当前图像帧以播放视频流数据,该播放方法的处理流程保证视频流数据始终在显示存储器中,相较于主存储器中设立缓存区方案,避免了数据从显示存储器到主存储器的拷贝,进而提高了视频播放的处理效率。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的现有xvideo输出框架的示意图;
图2为本发明实施例提供的一种视频的播放方法的流程图;
图3为本发明实施例提供的分配显存地址的流程图;
图4为本发明实施例提供的激活xvideo输出框架的的流程图;
图5为本发明实施例提供的显存地址的传输流程图;
图6为本发明实施例提供的当前图像帧的播放流程图;
图7为本发明实施例提供的xvideo输出框架的示意图;
图8为本发明实施例提供的视频输出的数据流图;
图9为本发明实施例提供的一种视频的播放装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明实施例保护的范围。
视频播放任务主要两部分组成:视频解码与视频渲染输出,两者相比,视频渲染输出CPU占用率更高,对视频播放效果有更为直接的影响。在linux系统中,基于GPU的视频框架的主要接口包括VDPAU(Video Decode and Presentation API 视频解码显示接口)和VAAPI(Video Acceleration API 视频加速接口),但这两种接口实现复杂,处理流程长,对视频播放的处理效率相对较慢。
本发明实施例的视频的播放方法可以基于GPU应用于xvideo、VAAPI或VDPAU进行视频图像的输出。本领域技术人员可以理解,VAAPI与VDPAU的输出方案,需要3D和底层驱动支持,实现过程相对复杂。而xvideo为一视频播放前输出图像的控件,其输出应用是轻量级框架,实现简易,开发难度更低,适合于低功耗芯片方案。下面本发明实施例将以应用xvideo输出框架为例,具体阐述如何实施本发明实施例提出的播放方法。
现有的xvideo输出框架的输出示意图如图1所示,具体地,视频输出的步骤如下:
S1、视频流首先通过多媒体平台进行解封解码处理,经过处理后得到图像帧的YUV图像数据,此时YUV图像数据存储在显示存储器(或称显存)中,需要将显示存储器中数据传入主存储器(或称主存)。可以理解,因为xvideo传输中需要使用主存储器传递YUV图像数据,因此,需要将数据由显示存储器传递到主存储器。
S2、通过xserver的接口将主存中的YUV图像数据传入xvideo输出框架中,并将主存储器中YUV图像数据传入显示存储器,GPU需要操作显示存储器来完成后续处理。
S3、GPU按照目标视频的显示规格对原YUV图像帧进行放大或缩小处理,即缩放功能。
S4、GPU将缩放后的YUV图像转化为RGBA图像。
S5、GPU将需要显示的RGBA图像进行显示,并与显示窗口融合进行播放。
在上述数据处理过程中涉及到多次显示存储器与主存储器间的数据拷贝,因而影响了视频的处理效率。下面将具体展开阐述本发明实施例的技术方案,如何提高视频播放的处理效率,请参阅图2,图2为本发明实施例提供的一种视频的播放方法的流程图,包括:
S11、获取视频流中解码为RGBA格式的当前图像帧。
具体的,视频流为待播放视频的数据流,其包括在数据网络上按时间先后次序连续传输的视频数据和音频数据,视频数据按规定的编码方式处理后进行传输,播放前需将其对应解码,将当前图像帧解码为RGBA格式后,无需再进行格式转换。解码处理时,先读取视频流数据,完成GPU解码组件的初始化,设置GPU解码输出模式,使GPU解码后得到的当前图像帧为RGBA格式,可以理解,RGBA格式为为显示器屏幕直接播放视频所需要的格式。
在一种具体的实施方式中,获取视频流中解码为RGBA格式的当前图像帧,包括:
多媒体平台读取视频流的当前帧;根据多媒体平台配置的输出模式,硬解码处理当前帧;根据硬解码处理的结果,获得RGBA格式的当前图像帧。
具体的,多媒体平台为配置GPU中解码组件的软件,例如ffmpeg、gstreamer等,通过多媒体平台可以配置当前帧的硬解码输出格式,以获得RGBA格式的当前图像帧。硬解码处理速率更快,能够将CPU从繁重的视频解码运算中释放出来,使播放器具备流畅播放高清视频的能力。获取当前图像帧后进入步骤S12。
S12、根据所述当前图像帧对应于显示存储器中的物理地址,获得显存地址;
具体的,显存地址表征的是当前图像帧在显示存储器的位置信息,显示存储器在进行计算时,将当前图像帧的数据根据其显存容量进行分配,分配的位置信息即为显存地址。
在一种具体的实施方式中,根据当前图像帧对应于显示存储器中的物理地址,获得显存地址,包括:
根据当前图像帧的分辨率和RGBA格式的分配规格,在显示存储器的显存容量中对应分配出物理地址,获得显存地址。
具体的,分辨率表征的是当前图像帧播放的清晰度,分辨率越高,对应播放的清晰度越好;反之,分辨率越低,对应播放的清晰度越差。不同的图像帧格式对应在显示存储器分配的容量也存在差异,通过当前图像帧的分辨率和RGBA格式的分配规格,在显示存储器的显存容量中对应分配出物理地址,即可获得显存地址。
请参阅图3,图3为分配显存地址的流程图,包括:
S101、初始化GPU硬解码组件。
S102、对视频进行解封装处理,得到包括但不限于视频的编码格式、分辨率大小、时间戳数据。
S103、设置GPU的视频解码输出格式为RGBA。
S104、根据RGBA格式与视频分辨率大小分配相应显存空间,以获得显存地址。获得显存地址后进入步骤S13。
S13、将所述当前图像帧输入至所述显示存储器中预设的同步缓存区;
具体的,同步缓存区可以通过显示存储器根据当前图像帧的容量,在其显存容量中申请一显存空间获得,同步缓存区用于缓存当前图像帧的数据,达到视频播放同步的目的。GPU在运算时,将解码得到当前图像帧数据存入申请的显存空间中,以完成当前图像帧在同步缓存区的缓存操作。
在一种具体的实施方式中,播放视频流的输出框架为xvideo,将当前图像帧输入至显示存储器中预设的同步缓存区之前,还包括:
初始化xorg服务器和显示存储器的硬件抽象层,使xvideo输出框架为激活状态。
具体的,xorg服务器用于xvideo输出框架的数据传输,硬件抽象层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化,以建立相应的处理功能。请参阅图4,激活xvideo输出框架包括如下流程:
S201、启动xorg服务器,初始化GPU的xorg驱动,包括xvideo接口的初始化。
S202、初始化GPU的硬件抽象层,建立xvideo输出框架中2D缩放功能和显存读写功能。
S203、将xvideo输出框架的状态设置为激活状态,等待系统调用。
应用xvideo输出框架进行视频播放时,通过上述步骤可以使xvideo输出框架为激活状态,以建立相应的处理功能。将当前图像帧输入同步缓存区后进入步骤S14。
S14、将缓存地址输出至主存储器的帧缓冲存储器,其中,所述缓存地址为所述同步缓存区对应于所述显示存储器的物理地址;
具体的,主存储器用于CPU运算处理时数据的随机存储,在视频播放时需要使用主存储器进行传递数据,因此,需要将缓存地址传输至帧缓冲存储器(或称帧缓存),也可以根据需求将缓存地址以外的其他数据同步传输至帧缓冲存储器,例如同步缓存区的空间大小。请参阅图5,当前图像帧和缓存地址的传输流程包括:
S301、GPU在多媒体平台完成视频解码,得到对应的格式为RGBA的图像帧数据。
S302、将解码得到图像帧数据存入申请的显存空间中,将显存中的图像帧通过GPU搬移至同步缓存区。
S303、将同步缓存区地址、显存空间大小传递给主存储器中的帧缓冲存储器。完成缓存地址输出至帧缓冲存储器后进入步骤S15。
S15、在所述显存地址和所述缓存地址相同时,输出所述同步缓存区的所述当前图像帧以播放所述视频流。
具体的,显存地址和缓存地址均以二进制的方式表示,在输出框架中,当显存地址和缓存地址相同时,可以说明数据传递无误(即确定出数据传递正确),将当前图像帧进行输出;反之,若不相同时,说明数据传输可能存在异常,将当前图像帧退出播放序列。可以理解,由于当前图像帧为RGBA格式,可以直接通过显示器进行播放显示。
在一种具体的实施方式中,播放视频流的输出框架为xvideo,在显存地址和缓存地址相同时,输出同步缓存区的当前图像帧以播放视频流,包括:
配置xorg服务器将缓存信息传输至xvideo输出框架的传输接口,其中,缓存信息至少包括缓存地址;xorg服务器通过传输接口读取缓存信息,当显存地址和缓存地址相同时,缩放处理当前图像帧并与播放窗口融合显示。
具体的,缓存信息表征的是同步缓存区对应的相关参数,例如同步缓存区的地址(即缓存地址)、空间大小信息,通过传输接口传输保存缓存信息于帧缓存存储器,使缓存信息通过xorg服务器传入xvideo输出框架中,xvideo输出框架中读取传递来的缓存信息,判断当前图像帧显存地址的正确性,若显存地址和缓存地址的地址一致,则读取显存地址,以进行视频播放;若不一致,则退出播放序列。与播放窗口融合显示时,GPU的2D模块根据读取的显存地址、当前图像帧需要显示的宽高,对在同步缓存区的当前图像帧进行缩放操作显示到桌面的播放窗口,达到融合显示的目的。
在一种具体的实施方式中,缩放处理当前图像帧并与播放窗口融合显示,包括:
获取当前图像帧的显示规格;根据显示规格缩放处理当前图像帧,并将缩放处理结果输出至显示存储器的预设显示区;将预设显示区的当前图像帧在播放窗口播放显示。
具体的,显示规格表征的是当前图像帧播放的显示宽高,可以根据当前图像帧的解码结果确定,通常具有标准宽高,例如1920×1080,800×480等。显示规格与xvideo输出框架输出的图像可能存在差异,根据显示规格缩放处理当前图像帧,并输出至预设显示区,以在播放器的播放窗口进行播放显示。
在一种具体的实施方式中,根据显示规格缩放处理当前图像帧,并将缩放处理结果输出至显示存储器的预设显示区包括:
读取显示规格、显存地址和预设显示区的显示地址;根据显示规格缩放处理显存地址中的当前图像帧,并存入显示地址。
具体的,显示地址为预设显示区对应于显示存储器中的物理地址,对当前图像帧缩放处理存入显示地址后,即可显示到桌面。请参阅图6,播放步骤包括:
S601、读取视频的显示宽高、同步缓存区的地址、预设显示区的显示地址;
S602、向GPU的2D模块传递视频显示宽高、同步缓存区的缓存地址、预设显示区的显示地址;
S603、GPU将同步缓存区中的图像帧根据视频显示宽高进行缩放操作,再将缩放后的图像帧存放入预设显示区,直接显示到桌面。
下面本发明实施例将结合图7,阐述视频播放流程,具体包括以下步骤:
S71、在多媒体平台中,读取视频流,完成GPU解码组件的初始化,设置GPU解码组件的输出模式,使GPU解码视频流后,得到图像帧的格式为RGBA,通过GPU申请图像帧的显存地址;
S72、初始化xvideo驱动部分,包括建立GPU显存读写功能、2D缩放功能等;
S73、GPU完成视频硬解码,得到图像帧起始的显存地址,将图像帧传入GPU的同步缓存区,用于视频同步;
S74、将同步缓存区的显存地址及空间大小的缓存信息传递给主存中的帧缓存;
S75、通过播放器的XV接口传输保存于帧缓存中的缓存信息,使缓存信息通过xorg服务器传入xvideo输出框架中;
S76、在xvideo输出框架中读取传递来的缓存信息,判断当前图像帧的显存地址的正确性,若显存地址与同步缓存区对应的缓存地址一致,则读取该当前图像帧对应的显存地址,若不一致,则退出播放序列;
S77、GPU的2D模块根据读取的显存地址和图像帧需要显示的宽高,对在同步缓存区的图像帧进行缩放操作,并将RGBA格式的图像帧存入预设显示区,并显示到桌面。
S78、将图像帧与窗口进行融合显示。
请参阅图8,步骤S71-S78可以在GPU中通过配置相应的模块进行实施,具体包括:
解码模块:用于实现步骤S71-S73;
传输模块:用于实现步骤S74-S75;
输出模块:用于实现步骤S76-S78;
硬件抽象模块:给解码模块与输出模块提供底层驱动的调用接口,解码模块通过该模块完成显存管理,输出模块通过该模块完成显存管理、视频缩放、输出显示等功能;
底层驱动模块:为解码模块与硬件抽象模块提供底层接口支持,调用GPU完成视频处理工作。
基于与播放方法同样的发明构思,本发明实施例还提供了一种视频的播放装置,请参阅图9,包括:
第一获取模块901,用于获取视频流中解码为RGBA格式的当前图像帧;
第一获得模块902,用于根据所述当前图像帧对应于显示存储器中的物理地址,获得显存地址;
第一输入模块903,用于将所述当前图像帧输入至所述显示存储器中预设的同步缓存区;
第一输出模块904,用于将缓存地址输出至主存储器的帧缓冲存储器,其中,所述缓存地址为所述同步缓存区对应于所述显示存储器的物理地址;
第二输出模块905,用于在所述显存地址和所述缓存地址相同时,输出所述同步缓存区的所述当前图像帧以播放所述视频流。
需要说明的是,本发明实施例播放装置的各模块,与播放方法为一一对应关系,播放装置还包括的其他模块在此不具体列举。
基于与播放方法同样的发明构思,本发明实施例还提供了一种电子设备,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述电子设备执行播放方法中任一项所述方法的步骤。
基于与播放方法同样的发明构思,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现播放方法中任一项所述方法的步骤。
本发明实施例中提供的技术方案,至少具有如下技术效果或优点:
1.通过将视频流的当前图像帧直接解码为RGBA格式,使当前图像帧直接为RGBA图像数据,而不是YUV图像数据,省略了传统处理方式中的YUV格式转RGBA格式的过程,根据当前图像帧对应于显示存储器中的物理地址,获得显存地址,并将当前图像帧输入至显示存储器中预设的同步缓存区,将同步缓存区对应于显示存储器的物理地址输出至主存储器的帧缓冲存储器,在显存地址和缓存地址相同时,可以确定出数据传递正确,则输出同步缓存区的当前图像帧以播放视频流数据,播放方法的处理流程保证视频流数据始终在显示存储器中,相较于主存储器中设立缓存区方案,避免了数据从显示存储器到主存储器的拷贝,进而提高了视频播放的处理效率。
2.基于xvideo输出框架输出处理时,通过xorg服务器向xvideo输出框架传输的是显存地址,可以使GPU直接使用完成图像帧的缩放处理,进一步提高了视频播放的处理效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(模块、系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (10)
1.一种视频的播放方法,其特征在于,包括:
获取视频流中解码为RGBA格式的当前图像帧;
根据所述当前图像帧对应于显示存储器中的物理地址,获得显存地址;
将所述当前图像帧输入至所述显示存储器中预设的同步缓存区;
将缓存地址输出至主存储器的帧缓冲存储器,其中,所述缓存地址为所述同步缓存区对应于所述显示存储器的物理地址;
在所述显存地址和所述缓存地址相同时,输出所述同步缓存区的所述当前图像帧以播放所述视频流。
2.根据权利要求1所述的视频的播放方法,其特征在于,所述获取视频流中解码为RGBA格式的当前图像帧,包括:
多媒体平台读取所述视频流的当前帧;
根据所述多媒体平台配置的输出模式,硬解码处理所述当前帧;
根据所述硬解码处理的结果,获得所述RGBA格式的所述当前图像帧。
3.根据权利要求1所述的视频的播放方法,其特征在于,所述根据所述当前图像帧对应于显示存储器中的物理地址,获得显存地址,包括:
根据所述当前图像帧的分辨率和所述RGBA格式的分配规格,在所述显示存储器的显存容量中对应分配出所述物理地址,获得所述显存地址。
4.根据权利要求1所述的视频的播放方法,其特征在于,播放所述视频流的输出框架为xvideo,所述将所述当前图像帧输入至所述显示存储器中预设的同步缓存区之前,还包括:
初始化xorg服务器和所述显示存储器的硬件抽象层,使所述xvideo输出框架为激活状态。
5.根据权利要求1所述的视频的播放方法,其特征在于,播放所述视频流的输出框架为xvideo,在所述显存地址和所述缓存地址相同时,输出所述同步缓存区的所述当前图像帧以播放所述视频流,包括:
配置xorg服务器将缓存信息传输至所述xvideo输出框架的传输接口,其中,所述缓存信息至少包括所述缓存地址;
xorg服务器通过所述传输接口读取所述缓存信息,当所述显存地址和所述缓存地址相同时,缩放处理所述当前图像帧并与播放窗口融合显示。
6.根据权利要求5所述的视频的播放方法,其特征在于,所述缩放处理所述当前图像帧并与播放窗口融合显示,包括:
获取所述当前图像帧的显示规格;
根据所述显示规格缩放处理所述当前图像帧,并将缩放处理结果输出至所述显示存储器的预设显示区;
将所述预设显示区的所述当前图像帧在所述播放窗口播放显示。
7.根据权利要求6所述的视频的播放方法,其特征在于,所述根据所述显示规格缩放处理所述当前图像帧,并将缩放处理结果输出至所述显示存储器的预设显示区包括:
读取所述显示规格、所述显存地址和所述预设显示区的显示地址;
根据所述显示规格缩放处理所述显存地址中的所述当前图像帧,并存入所述显示地址。
8.一种视频的播放装置,其特征在于,包括:
第一获取模块,用于获取视频流中解码为RGBA格式的当前图像帧;
第一获得模块,用于根据所述当前图像帧对应于显示存储器中的物理地址,获得显存地址;
第一输入模块,用于将所述当前图像帧输入至所述显示存储器中预设的同步缓存区;
第一输出模块,用于将缓存地址输出至主存储器的帧缓冲存储器,其中,所述缓存地址为所述同步缓存区对应于所述显示存储器的物理地址;
第二输出模块,用于在所述显存地址和所述缓存地址相同时,输出所述同步缓存区的所述当前图像帧以播放所述视频流。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述电子设备执行权利要求1-7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210631792.7A CN114710702A (zh) | 2022-06-07 | 2022-06-07 | 一种视频的播放方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210631792.7A CN114710702A (zh) | 2022-06-07 | 2022-06-07 | 一种视频的播放方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114710702A true CN114710702A (zh) | 2022-07-05 |
Family
ID=82177676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210631792.7A Withdrawn CN114710702A (zh) | 2022-06-07 | 2022-06-07 | 一种视频的播放方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114710702A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115484403A (zh) * | 2022-08-08 | 2022-12-16 | 荣耀终端有限公司 | 录像方法和相关装置 |
-
2022
- 2022-06-07 CN CN202210631792.7A patent/CN114710702A/zh not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115484403A (zh) * | 2022-08-08 | 2022-12-16 | 荣耀终端有限公司 | 录像方法和相关装置 |
CN115484403B (zh) * | 2022-08-08 | 2023-10-24 | 荣耀终端有限公司 | 录像方法和相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10229651B2 (en) | Variable refresh rate video capture and playback | |
WO2021008424A1 (zh) | 图像合成方法、装置、电子设备及存储介质 | |
JP4901261B2 (ja) | 高品質なユーザーインターフェイスによる効率的な遠隔表示を行なうシステム | |
US8860716B2 (en) | 3D image processing method and portable 3D display apparatus implementing the same | |
CN108093292B (zh) | 用于管理缓存的方法、装置及系统 | |
US11785195B2 (en) | Method and apparatus for processing three-dimensional video, readable storage medium and electronic device | |
KR20110022653A (ko) | 균일한 비디오 디코딩 및 디스플레이 | |
CN112843676B (zh) | 数据处理方法、装置、终端、服务器及存储介质 | |
KR101090981B1 (ko) | 3차원 영상신호 처리방법 및 이를 구현하는 휴대형 3차원 디스플레이 장치 | |
CN112511896A (zh) | 一种视频渲染方法及装置 | |
CN114710702A (zh) | 一种视频的播放方法和装置 | |
CN112804410A (zh) | 多显示屏同步显示方法及装置、视频处理设备和存储介质 | |
CN113473226B (zh) | 提高视频渲染效率的方法、装置、计算机设备及存储介质 | |
US20150189012A1 (en) | Wireless display synchronization for mobile devices using buffer locking | |
CN112565869B (zh) | 一种视频重定向的窗口融合方法、装置及设备 | |
CN114257867A (zh) | 视频图像显示方法和装置,计算设备和可读存储介质 | |
CN107317960A (zh) | 视频图像获取方法及获取装置 | |
WO2024067159A1 (zh) | 视频生成方法、装置、电子设备及存储介质 | |
CN112218140A (zh) | 视频同步播放方法、装置、系统和存储介质 | |
CN113892134A (zh) | 具有优化的性能的多媒体系统 | |
CN115914737A (zh) | 一种视频的播放方法和装置 | |
CN117557701A (zh) | 一种图像渲染方法和电子设备 | |
US10560727B2 (en) | Server structure for supporting multiple sessions of virtualization | |
CN115190340B (zh) | 直播数据的传输方法、直播设备和介质 | |
CN113268302B (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220705 |