一种支持H.264编码视频播放透明通道内容的方法与流程

未命名 08-15 阅读:206 评论:0

一种支持h.264编码视频播放透明通道内容的方法
技术领域
1.本发明涉及音视频播放技术领域,具体为一种支持h.264编码视频播放透明通道内容的方法。


背景技术:

2.当前市面的视频播放技术中,应用最广,适用性最强的视频编码便是h.264编码,其具有画质良好,文件压缩比率高等,解码性能好等优势,无论是网络视频播放还是本地文件播放,都已经被视频服务提供商广泛使用起来。
3.但在现有的视频播放技术中,h.264编码视频天然不支持透明通道(alpha通道)信息的编解码,造成在一些需要透明层展示的领域,如异性广告播放、直播礼物动画播放、特效视频播放等,不能使用h.264编码视频播放,增加视频转码成本和播放器兼容技术难度;
4.且由于h.264编码不具备透明通道(alpha通道)的信息存储和渲染功能,所以在h.264编码文件播放时,矩形画布层存在默认底色,一般为黑色,若要支持透明层(alpha层)视频播放,只能选择其他视频编码视频,如png编码,vp9编码、qtrle编码,这些编码具有数据量大、解码适用性低、市场接受程度低等问题。
5.故而提出一种支持h.264编码视频播放透明通道内容的方法来解决上述问题。


技术实现要素:

6.(一)解决的技术问题
7.针对现有技术的不足,本发明提供了一种支持h.264编码视频播放透明通道内容的方法及方法,具备为用户呈现含透明层的视频播放效果的优点,解决了目前h.264编码不具备透明通道(alpha通道)的信息存储和渲染功能等问题。
8.(二)技术方案
9.本发明解决上述技术问题的技术方案如下:一种支持h.264编码视频播放透明通道内容的方法,具体步骤包括:
10.一)、获取视频数据s1;
11.二)、将视频数据s1进行分离划分出至少两个视频层,将多个视频层内容进行叠加,获得视频数据s2;
12.三)、将视频数据s2分别导出rgb通道视频及aipha通道视频,并按指定序列进行排布设置进行合并,获得视频数据s3;
13.四)、将视频文件s3转换编码为h.264编码并封装获得目标文件;
14.五)、视频播放目标文件,获得目标文件的实时画面数据,并将实时画面数据填充至向量数据模型-vec4中,获得组合数据;
15.六)、对组合数据实时进行视频画面的渲染,直到视频播放结束。
16.本发明的有益效果是:通过对h.264编码视频做后期处理,分离视频需要透明渲染的视频信息并合成导出为新的h.264视频文件,并在播放器播放过程做实时视频滤镜处理,
得出透明渲染帧画面,从而增加视频播放功能的应用场景,为用户呈现含透明层的视频播放效果。
17.在上述技术方案的基础上,本发明还可以做如下改进。
18.进一步,步骤二)中将视频数据s1进行分离划分并叠加的具体操作如下:
19.1)、设定一个最小显示区域m1为视频背景,设定一个最大显示区域m2为视频前景;
20.2)、以最大显示范围m1尺寸创建视频文件m3,将视频数据s1根据s10)进行划分并根据要求尺寸及坐标叠加前景内容及背景内容,获得视频数据s2。
21.进一步,所述视频背景为非透明层,所述视频前景为透明层。
22.进一步,步骤三)中将rgb通道视频及aipha通道视频按指定序列进行排布设置进行合并的具体操作如下:
23.将rgb通道视频和aipha通道视频以最大显示区域m2宽度2倍,m2高度一倍进行左右并排放置,并设置相同的播放时间轴起点和播放时长,合成获得视频数据s3。
24.进一步,所述视频数据s3转换编码为h.264编码过程中,所述alpha通道数值转换为灰阶亮度数值。
25.进一步,步骤四)中封装格式可为mp4或ts。
26.进一步,步骤五)中获得目标文件的实时画面数据具体为:
27.1)、解码目标文件,获取视频帧解码后的画面数据;
28.2)、分别以尺寸m2获取视频帧左侧画面数据和右侧画面数据;
29.其中,获取左侧画面数据的颜色为红色、绿色和蓝色,右侧画面数据的灰阶数据为亮度。
30.进一步,所述由实时画面数据填充至向量数据模型-vec4中获得的组合数据为红色、绿色、蓝色、透明度数据。
31.进一步,步骤六)中对组合数据实时进行视频画面的渲染具体为:
32.1)、将组合数据填充到像素着色器中,利用图像处理框架opengl或metal实时填充像素着色器里的数据内容生成视频画面;
33.2)、利用已填充画面数据的像素着色器进行实时视频像素画面的渲染,完成透明视频画面的渲染。
附图说明
34.图1为本发明流程图;
35.图2为本发明操作流程中视频编码流程图;
36.图3为本发明操作流程中播放渲染流程图。
具体实施方式
37.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
38.实施例中,由图1给出,一种支持h.264编码视频播放透明通道内容的方法,具体步
骤包括:
39.一)、获取视频数据s1;
40.二)、将视频数据s1进行分离划分出至少两个视频层,将多个视频层内容进行叠加,获得视频数据s2;
41.进一步,步骤二)中将视频数据s1进行分离划分并叠加的具体操作如下:
42.1)、设定一个最小显示区域m1为视频背景,设定一个最大显示区域m2为视频前景;
43.2)、以最大显示范围m1尺寸创建视频文件m3,将视频数据s1根据s10)进行划分并根据要求尺寸及坐标叠加前景内容及背景内容,获得视频数据s2;
44.其中,所述视频背景为非透明层,所述视频前景为透明层;
45.三)、将视频数据s2分别导出rgb通道视频及aipha通道视频,并按指定序列进行排布设置进行合并,获得视频数据s3;
46.进一步,步骤三)中将rgb通道视频及aipha通道视频按指定序列进行排布设置进行合并的具体操作如下:
47.将rgb通道视频和aipha通道视频以最大显示区域m2宽度2倍,m2高度一倍进行左右并排放置,并设置相同的播放时间轴起点和播放时长,合成获得视频数据s3;
48.四)、将视频文件s3转换编码为h.264编码并封装获得目标文件;
49.其中,所述视频数据s3转换编码为h.264编码过程中,所述alpha通道数值转换为灰阶亮度数值;
50.步骤四)中封装格式可为mp4或ts;
51.五)、视频播放目标文件,获得目标文件的实时画面数据,并将实时画面数据填充至向量数据模型-vec4中,获得组合数据;
52.进一步,步骤五)中获得目标文件的实时画面数据具体为:
53.1)、解码目标文件,获取视频帧解码后的画面数据;
54.2)、分别以尺寸m2获取视频帧左侧画面数据和右侧画面数据;
55.其中,获取左侧画面数据的颜色为红色、绿色和蓝色,右侧画面数据的灰阶数据为亮度。
56.进一步,所述由实时画面数据填充至向量数据模型-vec4中获得的组合数据为红色、绿色、蓝色、透明度数据
57.六)、对组合数据实时进行视频画面的渲染,直到视频播放结束。
58.进一步,步骤六)中对组合数据实时进行视频画面的渲染具体为:
59.1)、将组合数据填充到像素着色器中,利用图像处理框架opengl或metal实时填充像素着色器里的数据内容生成视频画面;
60.2)、利用已填充画面数据的像素着色器进行实时视频像素画面的渲染,完成透明视频画面的渲染;
61.由上述技术可以让市场上最常用的视频编码h.264也获得透明视频的播放能力,令原本需要小众编码或其他复杂技术手段才能完成的透明视频播放功能,通过本发明步骤的视频处理,就可以令常用的h.264编码视频获得透明视频播放能力,扩展了h.264编码的适用场景和视频适配兼容能力。
62.由图2和图3所示,操作流程举例如下:
63.[s10]、指定视频处理规范:根据视频层次划分,设计一个最小显示区域m1为视频背景(非透明层),设定一个最大显示区域m2为视频前景(透明层);
[0064]
[s11]、处理视频画面:以视频最大显示范围m1尺寸创建新视频文件m3,将视频按[s10]要求尺寸及坐标叠加前景内容和及后景内容;
[0065]
[s12]、在完成[s11]的处理后,分别导出一个rgb通道视频video_1和一个alpha通道视频video_2;
[0066]
[s13]、将在[s12]导出的视频video1和video2以最大显示区域m2宽度2倍,m2高度一倍进行左右并排放置,设置相同的播放时间轴起点和播放时长,合成为视频文件alphavideo;
[0067]
[s14]、将[s13]得到视频文件alphavideo转换编码为h.264编码,其中的alpha通道数值将转换的灰阶亮度数值;
[0068]
[s15]、将[s14]转换编码后的视频文件alpha_video导出为支持h.264编码的封装文件,得到目标文件targetvideo;
[0069]
[s20]、利用视频播放器播放视频文件target_video,获取视频帧解码后画面数据,分别以尺寸m2获取视频帧左侧画面数据content和右侧画面数据mask;
[0070]
[s21]、获取左侧画面数据content的颜色(r,g,b)即(红色,绿色,蓝色),右侧画面数据mask的灰阶数据(b)即(亮度),并填充到长度为4的向量数据模型-vec4中,组合为一个(r,g,b,a)即(红色,绿色,蓝色,透明度)数据类型;
[0071]
[s22]、利用图像处理框架opengl[4]或metal[5]可以通过实时填充像素着色器(pixelshader)[6]里的数据内容生成视频画面的功能,[s21]获取的(r,g,b,a)数据vec4填充到着色器中;
[0072]
[s23]、将[s22]已填充画面数据的像素着色器(pixelshader)[6]用作实时视频像素画面的渲染,完成透明视频画面的渲染;
[0073]
[s24]、随着视频播放进度,获取相应视频帧画面数据,继续[s20]-[23]对帧画面数据进行处理;
[0074]
直到视频播放结束。
[0075]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0076]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

技术特征:
1.一种支持h.264编码视频播放透明通道内容的方法,其特征在于:具体步骤包括:一)、获取视频数据s1;二)、将视频数据s1进行分离划分出至少两个视频层,将多个视频层内容进行叠加,获得视频数据s2;三)、将视频数据s2分别导出rgb通道视频及aipha通道视频,并按指定序列进行排布设置进行合并,获得视频数据s3;四)、将视频文件s3转换编码为h.264编码并封装获得目标文件;五)、视频播放目标文件,获得目标文件的实时画面数据,并将实时画面数据填充至向量数据模型-vec4中,获得组合数据;六)、对组合数据实时进行视频画面的渲染,直到视频播放结束。2.根据权利要求1所述的一种支持h.264编码视频播放透明通道内容的方法,其特征在于:步骤二)中将视频数据s1进行分离划分并叠加的具体操作如下:1)、设定一个最小显示区域m1为视频背景,设定一个最大显示区域m2为视频前景;2)、以最大显示范围m1尺寸创建视频文件m3,将视频数据s1根据s10)进行划分并根据要求尺寸及坐标叠加前景内容及背景内容,获得视频数据s2。3.根据权利要求2所述的一种支持h.264编码视频播放透明通道内容的方法,其特征在于:所述视频背景为非透明层,所述视频前景为透明层。4.根据权利要求2所述的一种支持h.264编码视频播放透明通道内容的方法,其特征在于:步骤三)中将rgb通道视频及aipha通道视频按指定序列进行排布设置进行合并的具体操作如下:将rgb通道视频和aipha通道视频以最大显示区域m2宽度2倍,m2高度一倍进行左右并排放置,并设置相同的播放时间轴起点和播放时长,合成获得视频数据s3。5.根据权利要求1所述的一种支持h.264编码视频播放透明通道内容的方法,其特征在于:所述视频数据s3转换编码为h.264编码过程中,所述alpha通道数值转换为灰阶亮度数值。6.根据权利要求1所述的一种支持h.264编码视频播放透明通道内容的方法,其特征在于:步骤四)中封装格式可为mp4或ts。7.根据权利要求2所述的一种支持h.264编码视频播放透明通道内容的方法,其特征在于:步骤五)中获得目标文件的实时画面数据具体为:1)、解码目标文件,获取视频帧解码后的画面数据;2)、分别以尺寸m2获取视频帧左侧画面数据和右侧画面数据;其中,获取左侧画面数据的颜色为红色、绿色和蓝色,右侧画面数据的灰阶数据为亮度。8.根据权利要求7所述的一种支持h.264编码视频播放透明通道内容的方法,其特征在于:所述由实时画面数据填充至向量数据模型-vec4中获得的组合数据为红色、绿色、蓝色、透明度数据。9.根据权利要求1所述的一种支持h.264编码视频播放透明通道内容的方法,其特征在于:步骤六)中对组合数据实时进行视频画面的渲染具体为:1)、将组合数据填充到像素着色器中,利用图像处理框架opengl或metal实时填充像素
着色器里的数据内容生成视频画面;2)、利用已填充画面数据的像素着色器进行实时视频像素画面的渲染,完成透明视频画面的渲染。

技术总结
本发明涉及音视频播放技术领域,且公开了一种支持H.264编码视频播放透明通道内容的方法,具体步骤包括:一)、获取视频数据S1;二)、将视频数据S1进行分离划分出至少两个视频层,将多个视频层内容进行叠加,获得视频数据S2;三)、将视频数据S2分别导出RGB通道视频及Aipha通道视频,并按指定序列进行排布设置进行合并,获得视频数据S3。该支持H.264编码视频播放透明通道内容的方法,通过对H.264编码视频做后期处理,分离视频需要透明渲染的视频信息并合成导出为新的H.264视频文件,在播放器播放过程做实时视频滤镜处理,得出透明渲染帧画面,从而增加视频播放功能的应用场景,为用户呈现含透明层的视频播放效果。户呈现含透明层的视频播放效果。户呈现含透明层的视频播放效果。


技术研发人员:郭建华 陈筠乐
受保护的技术使用者:广州埋堆堆科技有限公司
技术研发日:2023.03.20
技术公布日:2023/8/14
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐