视频处理方法及视频处理应用与流程

文档序号:31707997发布日期:2022-10-01 12:49阅读:86来源:国知局
视频处理方法及视频处理应用与流程

1.本技术涉及数据处理技术领域,尤其涉及一种视频处理方法及视频处理应用。


背景技术:

2.诸如mplayer、暴风影音之类的视频播放应用(即视频播放器),实现了对数字信号形式存储的原始音视频数据的播放,极大促进了音视频数据的传输、共享与应用。
3.如图1所示,现有的视频播放器通常包括解协议模块11、解封装模块12、音频解码模块13、音频后处理模块14、视频解码模块15、视频后处理模块16、输出模块17和播放界面18。接收端的视频播放器从发送端获取到原始音视频数据后,按如下方式对原始音视频数据进行播放:视频播放器通过解协议模块11、解封装模块12的解协议和解封装处理,获得视频码流和音频码流。视频播放器通过音频解码模块13和音频后处理模块14进行解码和渲染处理后获得音频播放数据;通过视频解码模块15和视频后处理模块16的解码和渲染处理后获得视频播放数据。然后视频播放器通过输出模块17将音频播放数据和视频播放数据进行音视频同步后发送到播放界面18以进行播放。
4.由于视频码流数据量较大且对视频码流的各个处理动作均会形成各自动作的中央处理单元(英文:central processing unit,简称:cpu)的开销和内存的占用。因此,现有的视频播放器在播放音视频过程中存在对接收端设备的cpu开销和内存占用较大的问题。对于cpu资源和内存资源较小的接收端设备而言,视频播放器的使用,往往对该设备的其他功能的发挥造成不利影响,如在视频播放器使用过程中造成该设备其他功能卡顿。


技术实现要素:

5.本技术提供一种视频处理方法及视频处理应用,以解决现有的视频播放器在播放音视频过程中存在对接收端设备的cpu开销和内存占用较大的问题。
6.第一方面,本技术提供一种视频处理方法,应用于视频播放应用的指定内存中,所述方法包括:
7.加载目标视频对应的视频码流;
8.在指定内存中对所述视频码流进行解码,得到视频解码数据;
9.基于所述视频播放应用当前对应的播放参数,在所述指定内存中根据所述播放参数对所述视频解码数据进行渲染处理,得到视频播放数据;所述视频播放数据用于展示,以形成所述视频码流的播放。
10.可选的,所述播放参数为分辨率、像素格式、旋转角度、叠加位置中的至少一种;
11.所述根据所述播放参数对所述视频解码数据进行渲染处理,包括:
12.采集所述视频播放应用当前对应的分辨率、像素格式、旋转角度、叠加位置中的至少一种播放参数;
13.在所述指定内存中根据所采集的播放参数对所述视频解码数据进行渲染处理,得到所述播放参数对应的视频播放数据。
14.可选的,在所述得到视频播放数据之后,所述方法还包括:
15.将所述视频播放数据和所述视频播放数据对应的音频播放数据进行同步处理,得到音视频同步的同步播放数据;
16.对所述同步播放数据进行播放。
17.第二方面,本技术提供一种视频处理应用,所述视频处理应用包括:视频解码模块;
18.所述视频解码模块,用于加载目标视频对应的视频码流,在指定内存中对所述视频码流进行解码,得到视频解码数据;
19.所述视频解码模块,还用于基于所述视频播放应用当前对应的播放参数,在所述指定内存中根据所述播放参数对所述视频解码数据进行渲染处理,得到视频播放数据;所述视频播放数据用于展示,以形成所述视频码流的播放。
20.可选的,所述视频处理应用还包括:输出模块;
21.所述输出模块,用于采集所述视频播放应用当前对应的分辨率、像素格式、旋转角度、叠加位置中的至少一种播放参数;
22.所述视频解码模块,还用于在所述指定内存中根据所述输出模块所采集的播放参数对所述视频解码数据进行渲染处理,得到所述播放参数对应的视频播放数据。
23.可选的,所述视频解码模块包括:应用程序接口api;
24.所述输出模块,还用于通过所述应用程序接口api,将所采集的播放参数发送到所述视频解码模块。
25.可选的,所述视频处理应用还包括:播放界面;
26.所述输出模块,还用于在所述视频解码模块得到视频播放数据之后,将所述视频播放数据和所述视频播放数据对应的音频播放数据进行同步处理,得到同步播放数据;
27.所述播放界面,用于对所述同步播放数据进行播放。
28.可选的,所述视频处理应用还包括:视频后处理模块;
29.所述视频后处理模块,用于为所述视频解码数据和/或所述播放参数在所述视频解码模块与所述输出模块间的传输提供传输通道。
30.第三方面,本技术提供一种视频播放应用的升级方法,应用于视频播放应用的升级,所述视频播放应用包括视频解码模块、视频后处理模块和输出模块;所述升级方法包括:
31.获取所述视频解码模块的解码程序和所述视频后处理模块的渲染处理程序,并将所述解码程序和所述渲染处理程序进行整合处理,得到合并程序;所述合并程序被执行时实现所述视频处理方法;
32.将所述合并程序设置于所述视频解码模块;
33.在所述视频解码模块上新建应用程序接口api以接收所述输出模块实时采集的播放参数。
34.第四方面,本技术提供一种视频播放应用的升级设备,所述升级设备包括:收发部件和程序处理部件;其中,
35.所述收发部件,用于获取视频播放应用中视频解码模块的解码程序,以及所述视频播放应用中视频后处理模块的渲染处理程序;并将所述解码程序和所述渲染处理程序发
送到所述程序处理部件;
36.所述程序处理部件,用于将所述解码程序和所述渲染处理程序进行整合处理,得到合并程序;所述合并程序被执行时实现如权利要求1所述的方法;
37.所述程序处理部件,还用于将所述合并程序设置于所述视频解码模块,并将所述视频播放应用中的解码程序和渲染处理程序删除;并在所述视频解码模块上新建应用程序接口api以接收所述视频播放应用的输出模块实时采集的播放参数。
38.第五方面,本技术提供一种视频播放应用的升级装置,所述升级装置包括:
39.处理器和存储器;
40.所述存储器存储所述处理器可执行的可执行指令;
41.其中,所述处理器执行所述存储器存储的可执行指令,使得所述处理器执行如上所述的视频播放应用的升级方法。
42.第六方面,本技术提供一种存储介质,所述存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如如上所述的视频播放应用的升级方法。
43.第七方面,本技术提供一种程序产品,包括计算机程序,该计算机程序被处理器执行时实现视频播放应用的升级方法。
44.本技术提供的视频处理方法及视频处理应用,通过在视频播放应用中加载目标视频对应的视频码流,在同一个指定内存中对视频码流进行解码和渲染处理,得到视频播放数据,取消了现有的视频播放器中对视频码流进行解码后的视频解码数据的拷贝动作,以及该拷贝动作对接收端设备造成的cpu开销和内存占用。本技术解决了现有的视频播放器在播放音视频过程中存在对接收端设备的cpu开销和内存占用较大的问题。
附图说明
45.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
46.图1为现有的视频播放器结构图;
47.图2为本技术实施例提供的视频播放应用结构图;
48.图3为本技术实施例提供的视频处理方法流程图;
49.图4为本技术实施例提供的视频处理应用结构图;
50.图5为本技术实施例提供的视频播放应用的升级方法流程图;
51.图6为本技术实施例提供的视频播放应用的升级设备架构图;
52.图7为本技术实施例提供的视频播放应用的升级装置结构图。
53.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
54.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员
在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
55.如图1所示,接收端设备上的视频播放器从发送端获取到原始音视频数据后,对原始音视频数据进行显示播放的流程为:解协议模块11从流媒体协议数据中获取原始音视频数据,对原始音视频数据进行解协议处理后获得解协议数据,并将解协议数据发送到解封装模块12。解封装模块12对解协议数据进行解封装处理,获得视频码流和音频码流,并将音频码流发送到音频解码模块13,将视频码流发送到视频解码模块15。视频码流诸如h264、h265等编码格式的视频码流。视频解码模块15对视频码流进行解码处理,获得如yuv420格式的视频解码数据,并将视频解码数据发送到视频后处理模块16。视频后处理模块16基于输出模块17发送的播放界面18的播放参数,对视频解码数据进行渲染处理,获得视频播放数据,并将视频播放数据发送到输出模块17。类似的,音频码流经音频解码模块13、音频后处理模块14处理后获得音频播放数据,音频后处理模块14将音频播放数据发送到输出模块17。输出模块17将音频播放数据和视频播放数据进行音视频同步后发送到播放界面18以进行播放。其中,播放参数是播放界面18播放音视频的参数,如分辨率、像素格式等。输出模块17对播放界面18的播放参数进行实时监控,并采集播放参数发送到视频后处理模块16和音频后处理模块14。
56.视频播放器在播放原始音视频数据的过程中,一直在执行对音频码流和视频码流的处理。而视频码流数据量较大,对视频码流的处理,是造成视频播放器占用接收端设备较大内存和cpu开销的主要原因。在视频播放器对视频码流的处理过程中,主要占用内存和cpu开销的处理动作为:视频解码模块15对视频码流的解码、视频解码模块15对视频解码数据的拷贝与发送、视频后处理模块16对视频解码数据的渲染处理。在视频解码模块15对视频解码数据的拷贝与发送操作中,主要是视频解码模块15对视频解码数据的拷贝动作占用了内存和cpu开销。由于视频解码模块15的解码动作和视频后处理模块16的渲染处理动作所对应的内存是相互独立的。因此,要将视频解码数据发送到视频后处理模块进行渲染处理,势必需要将视频解码数据从解码对应内存中拷贝后再发送到渲染处理对应的内存中,由此,在现有的视频播放器中视频解码数据的拷贝动作造成的cpu开销是不可避免。
57.对此,本技术提出一种视频处理方法,应用于视频播放应用的指定内存中,通过加载目标视频对应的视频码流,在指定内存中对视频码流进行解码,得到解码后的视频解码数据,基于该视频播放应用当前对应的播放参数,在指定内存中根据播放参数对视频解码数据进行渲染处理,得到视频播放数据,该视频播放数据用于展示播放。本技术通过在同一个内存(即指定内存)中对目标视频对应的视频码流进行解码和渲染处理以获得视频播放数据,取消了视频解码数据的拷贝动作,以及该拷贝动作对接收端设备的内存占用和cpu开销。因此,本技术解决了现有的视频播放器在播放音视频过程中存在的对接收端设备的内存占用和cpu开销较大的问题。
58.下面结合部分实施例对本技术提出的视频处理方法进行说明。
59.图2为本技术实施例提供的视频播放应用结构图。图3为本技术实施例提供的视频处理方法流程图。如图2所示,视频播放应用20包括:解协议模块11、解封装模块12、音频解码模块13、音频后处理模块14、视频解码模块21、视频后处理模块16、输出模块17、播放界面18,其中,视频解码模块21还包括应用程序接口api 211。
60.该视频播放应用20从发送端获取到原始音视频数据后,对原始音视频数据进行显
示播放的流程为:
61.解协议模块11从流媒体协议数据中获取原始音视频数据,对原始音视频数据进行解协议处理后获得解协议数据,并将解协议数据发送到解封装模块12。
62.解封装模块12对解协议数据进行解封装处理,获得视频码流和音频码流,并将音频码流发送到音频解码模块13,将视频码流发送到视频解码模块21。视频码流诸如h264、h265等编码格式的视频码流。
63.音频码流经音频解码模块13、音频后处理模块14处理后获得音频播放数据,音频后处理模块14将音频播放数据发送到输出模块17。以此同时,视频解码模块21通过api 211和/或视频后处理模块16接收输出模块发送的播放界面18的播放参数,对视频码流进行解码和渲染处理,获得如yuv420格式的视频解码数据。视频解码模块21将视频解码数据通过视频后处理模块16透传到输出模块17。
64.输出模块17将音频播放数据和视频播放数据进行同步处理,得到音视频同步的同步播放数据,并将同步播放数据发送到播放界面18以进行展示播放。
65.其中,播放参数是播放界面18播放音视频的参数,如分辨率、像素格式等。输出模块17对播放界面18的播放参数进行实时监控,并采集播放参数发送到视频后处理模块16和音频后处理模块14,或发送到视频解码模块21和音频后处理模块14。
66.可选地,图2所示的视频播放应用20可以是对图1所示的视频播放器升级得到的视频播放应用。下面结合图3对本技术提供的视频处理方法进行说明。
67.图3为本技术实施例提供的视频处理方法流程图。图3所示实施例的执行主体为图2所示的视频播放应用20。如图3所示,本技术提供的视频处理方法应用于视频播放应用的指定内存中,本技术提供的视频处理方法包括:
68.s301、加载目标视频对应的视频码流。
69.具体而言,在如图2所示的视频播放应用20中,视频解码模块21加载解封装模块12发来的视频码流。
70.s302、在指定内存中对视频码流进行解码,得到视频解码数据。
71.具体而言,视频播放应用20在指定内存对视频码流进行解码,得到视频解码数据。具体地,视频解码模块21在指定内存对视频码流进行解码,得到视频解码数据。
72.其中,指定内存为视频解码模块21解码处理对应的内存,该内存也是后续步骤s303中进行渲染处理的内存。视频解码模块21的内核可以是ffmpeg(fast forward mpeg)。
73.s303、基于视频播放应用当前对应的播放参数,在指定内存中根据播放参数对视频解码数据进行渲染处理,得到视频播放数据。
74.具体而言,视频播放应用20基于视频播放应用20当前对应的播放参数,在指定内存中根据播放参数对步骤s302所获得的视频解码数据进行渲染处理,得到视频播放数据。视频播放数据用于展示,以形成视频码流的播放。渲染处理包括缩放、像素格式转换、图像旋转、图像平移、去块效应、去振铃效应、颜色增强、对比度增强、清晰度增强、去隔行处理中的至少一种。具体地,视频解码模块21基于视频播放应用20当前对应的播放参数,在指定内存中根据播放参数对步骤s302所获得的视频解码数据进行渲染处理,得到视频播放数据。
75.示例性地,播放参数是播放界面18播放音视频的参数,播放参数为分辨率、像素格式、旋转角度、叠加位置中的至少一种。在如图1所示的现有的视频播放器中,视频解码模块
15与输出模块17之间是没有直接通信的,也就是说,视频解码模块15无法直接从输出模块17获得播放参数。在图2所示的视频播放应用20中,视频解码模块21通过api 211获得输出模块17发送来的播放参数,该播放参数即为视频播放应用20的播放参数。优选地,api 211是输出模块17直接向视频解码模块21发送播放参数的专用接口。可选地,api 211也可以是视频后处理模块16从输出模块17获得播放参数后,直接向视频解码模块21发送播放参数的专用接口。视频播放应用20采集该视频播放应用20当前对应的分辨率、像素格式、旋转角度、叠加位置中的至少一种播放参数,在指定内存中根据所采集的播放参数对视频解码数据进行渲染处理,得到播放参数对应的视频播放数据。
76.当然,如有必要,视频播放应用20在对音频码流进行的解码和渲染处理也可以采用视频码流类似的方法。即由音频解码模块13对视频码流进行解码和渲染处理,获得音频播放数据。
77.进一步地,视频播放应用20在得到视频播放数据之后,本技术的视频处理方法还包括:视频播放应用20将视频播放数据和视频播放数据对应的音频播放数据进行同步处理,得到音视频同步的同步播放数据。视频播放应用20对同步播放数据进行播放。
78.具体地,视频播放应用20中的输出模块17将视频播放数据和视频播放数据对应的音频播放数据进行同步处理,得到音视频同步的同步播放数据。视频播放应用20中的播放界面18对同步播放数据进行播放。
79.示例性地,输出模块17采用同步视频到音频方式、同步音频到视频方式、同步音频和视频到外部时钟方式中的任一种,将视频播放数据和视频播放数据对应的音频播放数据进行同步处理,得到音视频显示时间戳(presentation time stamp,简称:pts)完全一致的同步播放数据。
80.本技术提供的视频处理方法,应用于视频播放应用的指定内存中,通过加载目标视频对应的视频码流,在同一个指定内存中对视频码流进行解码和渲染处理,得到视频播放数据,取消了现有的视频播放器中对视频解码数据的拷贝动作,以及该拷贝动作对接收端设备造成的cpu开销和内存占用。本技术解决了现有的视频播放器在播放音视频过程中存在的对接收端设备的内存占用和cpu开销较大的问题。
81.图3所示的视频处理方法不但可以在cpu中被执行。在一种可能的实施方式中,图3所示的视频处理方法还可以在图形处理器(graphics processing unit,简称:gpu)中被执行。示例性地,cpu获得视频码流之后,cpu将视频码流及对应的解码渲染指令发送给gpu。gpu执行如图3所示的视频处理方法,对视频码流进行解码和渲染处理,得到视频播放数据。gpu将视频播放数据进行播放。或者,gpu将视频播放数据发送给cpu以进行播放。本技术提供的方法实现解码和渲染处理在同一个处理器和内存中执行,通过本实施方式实现了对解码和渲染处理的加速,不但减小了gpu的开销,还降低了视频播放应用的播放时延,使得视频播放应用播放音视频更加流畅。
82.本技术实施例提供一种视频处理应用。图4为本技术实施例提供的视频处理应用结构图。下面结合图4对本技术提供的视频处理应用进行说明,如图4所示,该视频处理应用40包括:视频解码模块41。
83.视频解码模块41,用于加载目标视频对应的视频码流,在指定内存中对视频码流进行解码,得到视频解码数据。
84.视频解码模块41,还用于基于视频播放应用40当前对应的播放参数,在指定内存中根据播放参数对视频解码数据进行渲染处理,得到视频播放数据。视频播放数据用于展示,以形成视频码流的播放。
85.进一步地,该视频处理应用40还包括:输出模块17。
86.输出模块17,用于采集视频播放应用40当前对应的分辨率、像素格式、旋转角度、叠加位置中的至少一种播放参数;
87.视频解码模块41,还用于在指定内存中根据输出模块17所采集的播放参数对视频解码数据进行渲染处理,得到播放参数对应的视频播放数据。
88.进一步地,视频解码模块41包括:应用程序接口api 411;
89.输出模块17,还用于通过应用程序接口api 411,将所采集的播放参数发送到视频解码模块41。
90.进一步地,视频处理应用40还包括:播放界面18。
91.输出模块17,还用于在视频解码模块41得到视频播放数据之后,将视频播放数据和视频播放数据对应的音频播放数据进行同步处理,得到同步播放数据。
92.播放界面18,用于对同步播放数据进行播放。
93.进一步地,视频处理应用40还包括:视频后处理模块42;
94.视频后处理模块42,用于为视频解码数据和/或播放参数在视频解码模块41与输出模块17间的传输提供传输通道。
95.本实施例提供的视频处理应用与图3所示实施例的具体实现原理和技术效果类似,本实施例此处不再赘述。
96.本技术实施例提供一种视频播放应用的升级方法。图5为本技术实施例提供的视频播放应用的升级方法流程图。图6为本技术实施例提供的视频播放应用的升级设备架构图。下面结合图5和图6对本实施例提供的视频播放应用的升级方法进行说明。该方法应用于视频播放应用(如图1所示的视频播放器),视频播放应用包括视频解码模块、视频后处理模块和输出模块。如图5所示,该方法包括:
97.s501、获取视频解码模块的解码程序和视频后处理模块的渲染处理程序,并将解码程序和渲染处理程序进行整合处理,得到合并程序。
98.具体而言,图6所示的接收端设备10中的视频播放器与图1所示现有的视频播放器结构和功能相同,本实施例此处不再赘述。
99.如图6所示的升级设备60获取接收端设备10的视频播放器中视频解码模块15的解码程序和视频后处理模块16的渲染处理程序,并将解码程序和渲染处理程序进行整合处理,得到合并程序。
100.其中,合并程序被执行时实现本技术提供的视频处理方法。合并程序具备解码和渲染处理功能。
101.可选地,升级设备60也可以直接在升级设备60上新建一个具备解码和渲染处理功能的合并程序。而无需从接收端设备10的视频播放器中获取解码程序和渲染处理程序进行整合处理。
102.s502、将合并程序设置于视频解码模块。
103.具体而言,升级设备60将合并程序设置于视频解码模块15。
circuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。存储器72可能包含高速随机存取存储器(英文:random access memory,简称:ram),也可能还包括非易失性存储器(英文:non-volatile memory,简称:nvm),例如至少一个磁盘存储器,还可以为u盘、移动硬盘、只读存储器、磁盘或光盘等。
117.本技术实施例还提供一种存储介质,该存储介质中存储有计算机执行指令,这些计算机执行指令被处理器执行时,实现上述的视频播放应用的升级方法。存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(英文:static random-access memory,简称:sram),电可擦除可编程只读存储器(英文:electrically-erasable programmable read-only memory,简称:eeprom),可擦除可编程只读存储器(英文:erasable programmable read-only memory,简称:eprom),可编程只读存储器(英文:programmable read-only memory,简称:prom),只读存储器(英文:read-only memory,简称:rom),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
118.一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(英文:application specific integrated circuits,简称:asic)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
119.本技术实施例还提供一种程序产品,如计算机程序,该计算机程序被处理器执行时实现本技术所涵盖的视频播放应用的升级方法。
120.本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
121.最后应说明的是:以上实施方式仅用以说明本发明的技术方案,而非对其进行限制;尽管参照前述实施方式对本发明已经进行了详细的说明,但本领域的普通技术人员应当理解:其依然可以对前述实施方式所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施方式技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1