一种透明视频处理方法技术

技术编号:27321460 阅读:20 留言:0更新日期:2021-02-10 10:03
本发明专利技术属于网络视频处理技术领域,具体是一种透明视频处理方法,其特征在于包括以下步骤:S1在设计动画时将视频保存为分解视频,分解视频的每一帧图片都分为两部分,其中左边为透明通道,右边为正常视频,两侧视频均为黑底;S2通过Flash的as3.0进行视频的加载及播放,将视频加载到Flash内,显示的视频效果为S1中的分解视频;S3对步骤S2中的的分解视频进行分解,需要显示出来的动画部分用白色表示并显示在左边透明通道中;S4利用as3.0在步骤S3中的视频上添加着色器;S5利用着色器选取分解视频中的像素,进行叠加计算,将步骤S3中任意取左侧透明视频的R、G、B层替换右侧正常视频的α层,并将正常视频的新的R、G、B、α层进行像素叠加,像素处理速度快。像素处理速度快。像素处理速度快。

【技术实现步骤摘要】
一种透明视频处理方法


[0001]本专利技术属于网络视频处理
,具体是一种透明视频处理方法。

技术介绍

[0002]随着互联网的发展,网页交互和动画展示方案越来越复杂。 用户对网页动画的质量和绚丽程度要求越来越高。 在计算机性能日益提升的情况下,我们现在可以在前端对视频进行实时处理,并且可以针对每一个视频像素进行处理。
[0003]当前常用的视频处理方式是用一般平台使用WebGL对MP4格式的动画视频进行渲染,UDE将动画视频保存为左右两个板块,左侧为透明数据部分,右侧为黑色背景的正常视频,在播放视频动画时,利用GPU并行计算每个像素点或者CPU列队计算像素点将左右两边的视频重叠,然后进行播放。上述视频处理方式中GPU虽然比较强大,但是GPU对一些低版本的浏览器并不支持,造成低版本浏览器无法播放这些动画视频,容易造成兼容性问题。
[0004]而使用CPU对视频的每一帧一个像素一个像素的逐个处理,因为计算速度的限制,这个方法只能用来处理一些尺寸较小的视频,尺寸稍微大一点的视频其计算量就会成倍数的增加,以一个1080*720的视频为例,它每秒的计算次数至少达到1080*720*15(其中15为每秒钟视频播放的帧数)次,大量的计算导致性能较低的电脑视频播放时的卡顿。

技术实现思路

[0005]为了弥补现有技术的不足,本专利技术提供了一种高性能高兼容性的透明视频处理方法。
[0006]所述的一种透明视频的处理方法,其特征在于包括以下步骤:S1在设计动画时将视频保存为分解视频,所述分解视频的每一帧图片都分为两部分,其中左边为透明通道,右边为正常视频,两侧视频均为黑底;S2通过Flash的as3.0进行视频的加载及播放,将视频加载到Flash内,显示的视频效果为所述S1中的分解视频;S3对步骤S2中的所述的分解视频进行分解,需要显示出来的动画部分用白色表示并显示在左边所述透明通道中;S4利用as3.0在步骤S3中的视频上添加着色器,通过所述着色器生成滤镜,所述滤镜对像素每一帧进行处理;S5利用着色器选取所述分解视频中的像素,进行叠加计算,将所述步骤S3中任意取左侧透明视频的R、G、B层进行替换右侧正常视频的α层,并将正常视频的新的R、G、B、α层进行像素叠加。
[0007]所述的透明视频处理方法,其特征在于所述步骤S1中的所述透明通道用于存放视频的透明数据。
[0008]所述的透明视频处理方法,其特征在于所述步骤S3中,所述透明通道中的透明数据均为白色,其R、G、B层相同。
[0009]所述的透明视频的处理方法,其特征在于所述步骤S5在替换像素时,需要将每一帧视频图像与顶点坐标进行映射,视频右半侧映射到画面中。
[0010]与现有技术相比,本专利技术有以下优点:本次算法有效利用了as3.0提供的Flash着色器来替代原有的逐帧算法,使用Flash进行透明视频处理,兼容性非常高,并且可以不依赖于浏览器,仅需安装Flash播放器就可以使用。通过as3.0对webgl的支持,webgl能够提供更快的像素处理速度。
附图说明
[0011]图1为本专利技术处理方法的流程示意图;图2为本专利技术透明视频处理方法利用着色器替换RGB像素的;图3为本专利技术处理方法实施例的处理示意图;图4为本专利技术处理方法实施例的处理效果图。
具体实施方式
[0012]在本专利技术的描述中,需要理解的是,术语“一端”、
ꢀ“
另一端”、
ꢀ“
外侧”、
ꢀ“
上”、
ꢀ“
内侧”、
ꢀ“
水平”、
ꢀ“
同轴”、
ꢀ“
中央”、
ꢀ“
端部”、
ꢀ“
长度”、
ꢀ“
外端”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。
[0013]下面结合附图对本专利技术作进一步说明。
[0014]如图所示,一种透明视频的处理方法,首先UED在设计动画时将视频保存为一个较为特殊的视频,这个视频的每一帧图片都分为左右两部分,左边为透明通道,存放视频的透明数据部分;右边为正常视频,两侧视频均为黑底。
[0015]在浏览器版本较高或者硬件环境性能良好的情况下,首先尝试使用webgl进行渲染,如果出现渲染异常,则表明浏览器不支持此方式。
[0016]结合图2-图4所示,以某一动画视频为例,UDE设计效果如下:首先,UED在设计动画时,将视频保存为一个较为特殊的视频,这个视频的每一帧图片都分为左右两部分,左边为透明通道,存放视频的透明数据部分;右边为正常视频,两侧视频均为黑底。
[0017]通过Flash的as3.0来实现视频的加载和播放,将视频加载到Flash内,使视频能够正常播放,显示出来的具体效果为左边是透明通道右边是图像的正常视频。
[0018]Flash代码如下:_netConnection = new NetConnection();
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
_netConnection.connect(null);
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
_netStream = new NetStream(_netConnection);
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
_netStream.checkPolicyFile = true;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
_netStream.client = this;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
var url:String = data.url || "";
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
_netStream.play(url);
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
_video = new Video();
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
_video.attachNetStream(_netStream);
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
this.addChild(_video);执行此代码后出现效果图3所示,需要显示出来的动画部分用白色表示并显示在左边,透明通道中白色区域内的透明数据相同,其R、G、B层相同,通过选取透明视频的任意R、G、B层用于替换正常视频中的α层中。
[0019]然后利用as3.0在视频上添加着色器,并用着色器生成一个滤镜,滤镜可以使用着色器的算法对像素的每一帧进行处理。
[0020]着色器算法为将左侧的透明数据转移到右边的视频上面,因为左侧的透明通道数据rgb三个通道数据是一样的,所以任意选一个通道进行替换。
[0021]可以取左边的r通道数据,替换右侧视频的alpha通道。 这样就可以使右侧的视频对应区域变成透明的。
[0022]对应的着色器算法通过代码表述如下:<lang本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种透明视频处理方法,其特征在于包括以下步骤:S1在设计动画时将视频保存为分解视频,所述分解视频的每一帧图片都分为两部分,其中左边为透明通道,右边为正常视频,两侧视频均为黑底;S2通过Flash的as3.0进行视频的加载及播放,将视频加载到Flash内,显示的视频效果为所述S1中的分解视频;S3对步骤S2中的所述的分解视频进行分解,需要显示出来的动画部分用白色表示并显示在左边所述透明通道中;S4利用as3.0在步骤S3中的视频上添加着色器,通过所述着色器生成滤镜,所述滤镜对像素每一帧进行处理;S5利用着色器选取所述分解视频中...

【专利技术属性】
技术研发人员:王一燃夏健莲王学超
申请(专利权)人:杭州米络星科技集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利