在播放器中加载图文字幕的方法及系统技术方案

技术编号:14346866 阅读:44 留言:0更新日期:2017-01-04 17:48
本申请公开在播放器中加载图文字幕的方法及系统,方法包括:创建一个渲染层;对视屏轨进行解码处理;对视屏轨进行渲染处理,创建视频播放层;对字幕轨进行解码处理,形成解码后的图文字幕信息和数据;对字幕轨进行渲染处理,并将所述渲染层覆盖到视频的播放层之上;根据所述解码后的图文字幕信息和数据,创建图文字幕的纹理,设定图文字幕的显示高度和图文字幕中图片的大小,使得图文字幕底部与所述视频播放层的底部对齐,并将设定的图文字幕显示信息发送至OpenGL着色器;根据所述图文字幕渲染模块发送的图文字幕显示信息,在渲染层上的设定位置显示图文字幕,并使得显示的图文字幕的播放位置与视频的播放位置相对应。

【技术实现步骤摘要】

本申请涉及视频字幕加载
,具体地说,涉及一种在播放器中加载图文字幕的方法及系统
技术介绍
在视频播放过程中,在播放器中加载字幕可以为用户观看视频提供更大的便利。但是随着视频技术的发展,在视频的字幕中出现很多图文形式的字幕,通过文字加载显示字幕的方式很难播放图文格式的字幕。目前的做法是通过软件将图文字幕解码后直接贴合到视频前帧的画面上,利用图片合成的方法加载图文字幕。但是,现有技术的这种方法需要消耗大量的内存对图文字幕及视频帧进行图片合成,而且在每一帧视频画面上都要进行一次图文合成,会极大地消耗内存资源。现有技术的方案需要保证字幕和画面格式一致,目前字幕一般是RGB的,而视频是YUV的,需要做转换;由于一帧字幕远比一帧画面要长,所以每播出一帧画面,都要做一次字幕合成,比较消耗CPU;每一帧字幕解码后的数据需要长期保存在内存中,直至所有需要它的视频画面渲染完毕,这样比较消耗内存;每一帧字幕,在合成前,必须传递给视频渲染模块中,再对比时间戳来决定是否合成,这样结构比较混乱,必须把字幕解码后的数据与视频渲染结合处理,不能与视频完全分开处理,结构比较复杂。总之,现有的图文字幕与视频帧合成加载字幕的方法,比较消耗CPU和内存,而且结构也比较复杂。
技术实现思路
有鉴于此,本申请所要解决的技术问题是提供了一种在播放器中加载图文字幕的方法及系统,为图文字幕单独添加一个透明的渲染层,充分利用字幕解码后所带的信息,与视频轨的处理完全剥离开,所有的操作不受视频画面的速度、大小、时间戳和画面图像格式影响,节省了运行的消耗,提高了运行效率。为了解决上述技术问题,本申请有如下技术方案:一种在播放器中加载图文字幕的方法,其特征在于,视频轨的处理和字幕轨的处理完全分离,包括:采用图文字幕渲染模块创建一个OpenGLLayer渲染层;采用视频解码模块对视屏轨进行解码处理,形成解码后的视频信息,并将解码后的视频信息发送至视频渲染模块;采用视频渲染模块对视屏轨进行渲染处理,创建视频播放层;采用字幕解码模块对字幕轨进行解码处理,形成解码后的图文字幕信息和数据,并将解码后的图文字幕信息和数据发送至图文字幕渲染模块,所述图文字幕信息至少包括:显示起始时间、显示终止时间、图文字幕位置和图文字幕中图片的大小;采用图文字幕渲染模块对字幕轨进行渲染处理,并将所述渲染层覆盖到视频的播放层之上;所述图文字幕渲染模块根据所述解码后的图文字幕信息和数据,创建图文字幕的纹理,设定图文字幕的显示高度和图文字幕中图片的大小,使得图文字幕底部与所述视频播放层的底部对齐,并将设定的图文字幕显示信息发送至OpenGL着色器;所述OpenGL着色器根据所述图文字幕渲染模块发送的图文字幕显示信息,在渲染层上的设定位置显示图文字幕,并使得显示的图文字幕的播放位置与视频的播放位置相对应。优选地,其中:进一步包括:所述图文字幕渲染模块通过循环遍历的方法处理图文字幕,若监控到全局时钟走到了当前图文字幕的显示开始时间,则将设定的图文字幕显示信息发送至着色器处理,并将该条图文字幕的信息从内存中擦除掉;若监控到全局时钟走到了当前图文字幕的显示终止时间,则将着色器显示的图文字幕数据进行清理并更换到下一条图文字幕的数据。优选地,其中:进一步包括:所述OpenGL着色器采用RGB32格式中的透明参数将所述渲染层上除图文字幕之外的其他位置进行透明处理。优选地,其中:进一步包括:利用OpenGL着色器创建一个渲染RGB32的脚本,使得图文字幕渲染的过程在GPU内进行。优选地,其中:所述视频轨和所述字幕轨分别包含一独立的时间戳,所述字幕轨的时间戳和所述视频轨的时间戳同步。一种在播放器中加载图文字幕的系统,其特征在于,包括:视频解码模块、视频渲染模块、字幕解码模块、图文字幕渲染模块和OpenGL着色器,所述视频解码模块,用于对视屏轨进行解码处理,形成解码后的视频信息,并将解码后的视频信息发送至视频渲染模块;所述视频渲染模块,用于对视屏轨进行渲染处理,创建视频播放层;所述字幕解码模块,用于对字幕轨进行解码处理,形成解码后的图文字幕信息和数据,并将解码后的图文字幕信息和数据发送至图文字幕渲染模块,所述图文字幕信息至少包括:显示起始时间、显示终止时间、图文字幕位置和图文字幕中图片的大小;所述图文字幕渲染模块,用于采用图文字幕渲染模块创建一个OpenGLLayer渲染层,对字幕轨进行渲染处理,并将所述渲染层覆盖到视频的播放层之上,还用于根据所述解码后的图文字幕信息和数据,创建图文字幕的纹理,设定图文字幕的显示高度和图文字幕中图片的大小,使得图文字幕底部与所述视频播放层的底部对齐,并将设定的图文字幕显示信息发送至OpenGL着色器;所述OpenGL着色器,用于根据所述图文字幕渲染模块发送的图文字幕显示信息,在渲染层上的设定位置显示图文字幕,并使得显示的图文字幕的播放位置与视频的播放位置相对应。优选地,其中:所述图文字幕渲染模块,进一步用于通过循环遍历的方法处理图文字幕,若监控到全局时钟走到了当前图文字幕的显示开始时间,则将设定的图文字幕显示信息发送至着色器处理,并将该条图文字幕的信息从内存中擦除掉;若监控到全局时钟走到了当前图文字幕的显示终止时间,则将着色器显示的图文字幕数据进行清理并更换到下一条图文字幕的数据。优选地,其中:所述OpenGL着色器,进一步用于采用RGB32格式中的透明参数将所述渲染层上除图文字幕之外的其他位置进行透明处理。优选地,其中:所述OpenGL着色器,进一步用于创建一个渲染RGB32的脚本,使得图文字幕渲染的过程在GPU内进行。优选地,其中:所述视频轨和所述字幕轨分别包含一独立的时间戳,所述字幕轨的时间戳和所述视频轨的时间戳同步。与现有技术相比,本申请所述的方法及系统,达到了如下效果:第一,本专利技术所提供的在播放器中加载图文字幕的方法及系统,为字幕单独添加一个透明的渲染层,充分利用字幕解码后所带的信息,与视频轨的处理完全剥离开,所有的操作不受视频画面的速度、大小、时间戳和画面图像格式影响,节省了运行的消耗,提高了运行效率。第二,本专利技术所提供的在播放器中加载图文字幕的方法及系统,渲染字幕的过程在GPU中进行,减少了CPU的消耗,而且,字幕渲染模块在将图文字幕发送至着色器后,会将该条字幕的信息从内存中擦除掉,当该条字幕显示完成后,着色器内的该条字幕的信息也将进行清理,也就是说,每条字幕都不需要再内存中停留过长时间,而且也不用消耗CPU去跟画面进行合成,只需要根据自己的时间戳控制自己显示和消失,如果视频那边的时间戳没出错,就能达到同步的效果;同时也不用消耗资源去将其格式转换成与画面相一致,只需自己按照自己的RGB画上即可。因此,本专利技术的在播放器中加载图文字幕的方法及系统解决了在现有技术中在视频播放器中加载字幕时将图文字幕与视频帧合成加载字幕严重消耗内存的问题,以及字幕渲染和视频轨渲染相耦合的问题,提高了代码封装性和可读性,降低结构复杂度。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本专利技术的所述一种在播放器中加载图文字幕的方法的流程图;图2为本专利技术的所述一种在播本文档来自技高网...
在播放器中加载图文字幕的方法及系统

【技术保护点】
一种在播放器中加载图文字幕的方法,其特征在于,视频轨的处理和字幕轨的处理完全分离,包括:采用图文字幕渲染模块创建一个OpenGLLayer渲染层;采用视频解码模块对视屏轨进行解码处理,形成解码后的视频信息,并将解码后的视频信息发送至视频渲染模块;采用视频渲染模块对视屏轨进行渲染处理,创建视频播放层;采用字幕解码模块对字幕轨进行解码处理,形成解码后的图文字幕信息和数据,并将解码后的图文字幕信息和数据发送至图文字幕渲染模块,所述图文字幕信息至少包括:显示起始时间、显示终止时间、图文字幕位置和图文字幕中图片的大小;采用图文字幕渲染模块对字幕轨进行渲染处理,并将所述渲染层覆盖到视频的播放层之上;所述图文字幕渲染模块根据所述解码后的图文字幕信息和数据,创建图文字幕的纹理,设定图文字幕的显示高度和图文字幕中图片的大小,使得图文字幕底部与所述视频播放层的底部对齐,并将设定的图文字幕显示信息发送至OpenGL着色器;所述OpenGL着色器根据所述图文字幕渲染模块发送的图文字幕显示信息,在渲染层上的设定位置显示图文字幕,并使得显示的图文字幕的播放位置与视频的播放位置相对应。

【技术特征摘要】
1.一种在播放器中加载图文字幕的方法,其特征在于,视频轨的处理和字幕轨的处理完全分离,包括:采用图文字幕渲染模块创建一个OpenGLLayer渲染层;采用视频解码模块对视屏轨进行解码处理,形成解码后的视频信息,并将解码后的视频信息发送至视频渲染模块;采用视频渲染模块对视屏轨进行渲染处理,创建视频播放层;采用字幕解码模块对字幕轨进行解码处理,形成解码后的图文字幕信息和数据,并将解码后的图文字幕信息和数据发送至图文字幕渲染模块,所述图文字幕信息至少包括:显示起始时间、显示终止时间、图文字幕位置和图文字幕中图片的大小;采用图文字幕渲染模块对字幕轨进行渲染处理,并将所述渲染层覆盖到视频的播放层之上;所述图文字幕渲染模块根据所述解码后的图文字幕信息和数据,创建图文字幕的纹理,设定图文字幕的显示高度和图文字幕中图片的大小,使得图文字幕底部与所述视频播放层的底部对齐,并将设定的图文字幕显示信息发送至OpenGL着色器;所述OpenGL着色器根据所述图文字幕渲染模块发送的图文字幕显示信息,在渲染层上的设定位置显示图文字幕,并使得显示的图文字幕的播放位置与视频的播放位置相对应。2.根据权利要求1所述在播放器中加载图文字幕的方法,其特征在于,进一步包括:所述图文字幕渲染模块通过循环遍历的方法处理图文字幕,若监控到全局时钟走到了当前图文字幕的显示开始时间,则将设定的图文字幕显示信息发送至着色器处理,并将该条图文字幕的信息从内存中擦除掉;若监控到全局时钟走到了当前图文字幕的显示终止时间,则将着色器显示的图文字幕数据进行清理并更换到下一条图文字幕的数据。3.根据权利要求1所述在播放器中加载图文字幕的方法,其特征在于,进一步包括:所述OpenGL着色器采用RGB32格式中的透明参数将所述渲染层上除图文字幕之外的其他位置进行透明处理。4.根据权利要求1所述在播放器中加载图文字幕的方法,其特征在于,进一步包括:利用OpenGL着色器创建一个渲染RGB32的脚本,使得图文字幕渲染的过程在GPU内进行。5.根据权利要求1所述在播放器中加载图文字幕的方法,其特征在于,所述视频轨和所述字幕轨分别包含一独立的时间戳,所述字幕轨的时间戳和所述视频轨的时间戳同步。6.一种在播放器中加载图文字幕...

【专利技术属性】
技术研发人员:高扬朱春明朱彦东张鹏宇
申请(专利权)人:暴风集团股份有限公司
类型:发明
国别省市:北京;11

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

1