CN106303659A - 在播放器中加载图文字幕的方法及系统 - Google Patents

在播放器中加载图文字幕的方法及系统 Download PDF

Info

Publication number
CN106303659A
CN106303659A CN201610704201.9A CN201610704201A CN106303659A CN 106303659 A CN106303659 A CN 106303659A CN 201610704201 A CN201610704201 A CN 201610704201A CN 106303659 A CN106303659 A CN 106303659A
Authority
CN
China
Prior art keywords
picture
text
captions
caption
video
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.)
Pending
Application number
CN201610704201.9A
Other languages
English (en)
Inventor
高扬
朱春明
朱彦东
张鹏宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Storm Group Ltd By Share Ltd
Original Assignee
Storm Group Ltd By Share Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Storm Group Ltd By Share Ltd filed Critical Storm Group Ltd By Share Ltd
Priority to CN201610704201.9A priority Critical patent/CN106303659A/zh
Publication of CN106303659A publication Critical patent/CN106303659A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44012Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4318Generation of visual interfaces for content selection or interaction; Content or additional data rendering by altering the content in the rendering process, e.g. blanking, blurring or masking an image region
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • H04N21/4355Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reformatting operations of additional data, e.g. HTML pages on a television screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/488Data services, e.g. news ticker
    • H04N21/4884Data services, e.g. news ticker for displaying subtitles

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Systems (AREA)

Abstract

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

Description

在播放器中加载图文字幕的方法及系统
技术领域
本申请涉及视频字幕加载技术领域,具体地说,涉及一种在播放器中加载图文字幕的方法及系统。
背景技术
在视频播放过程中,在播放器中加载字幕可以为用户观看视频提供更大的便利。但是随着视频技术的发展,在视频的字幕中出现很多图文形式的字幕,通过文字加载显示字幕的方式很难播放图文格式的字幕。目前的做法是通过软件将图文字幕解码后直接贴合到视频前帧的画面上,利用图片合成的方法加载图文字幕。但是,现有技术的这种方法需要消耗大量的内存对图文字幕及视频帧进行图片合成,而且在每一帧视频画面上都要进行一次图文合成,会极大地消耗内存资源。
现有技术的方案需要保证字幕和画面格式一致,目前字幕一般是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为本发明的所述一种在播放器中加载图文字幕的系统的结构图;
图3为本发明的所述一种在播放器中加载图文字幕的方法的实施例的流程图。
具体实施方式
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。
实施例1
参见图1所示为本申请所述一种在播放器中加载图文字幕的方法的具体实施例,该方法包括:
步骤101、采用图文字幕渲染模块创建一个OpenGLLayer渲染层;
步骤102、采用视频解码模块对视屏轨进行解码处理,形成解码后的视频信息,并将解码后的视频信息发送至视频渲染模块;
步骤103、采用视频渲染模块对视屏轨进行渲染处理,创建视频播放层;
步骤104、采用字幕解码模块对字幕轨进行解码处理,形成解码后的图文字幕信息和数据,并将解码后的图文字幕信息和数据发送至图文字幕渲染模块,所述图文字幕信息至少包括:显示起始时间、显示终止时间、图文字幕位置和图文字幕中图片的大小;
步骤105、采用图文字幕渲染模块对字幕轨进行渲染处理,并将所述渲染层覆盖到视频的播放层之上;
步骤106、所述图文字幕渲染模块根据所述解码后的图文字幕信息和数据,创建图文字幕的纹理,设定图文字幕的显示高度和图文字幕中图片的大小,使得图文字幕底部与所述视频播放层的底部对齐,并将设定的图文字幕显示信息发送至OpenGL着色器;
步骤107、所述OpenGL着色器根据所述图文字幕渲染模块发送的图文字幕显示信息,在渲染层上的设定位置显示图文字幕,并使得显示的图文字幕的播放位置与视频的播放位置相对应。
从上述方案中可看出,本申请中视频处理和字幕轨处理是完全分离的,视频轨由视频解码模块和视频渲染模块进行处理,字幕轨由字幕解码模块和图文字幕渲染模块进行处理,视屏轨处理和字幕轨处理互不干预,结构清晰。因此,上述步骤102和步骤103与后续步骤104-107之间的执行顺序可根据实际情况进行调整。例如,在实际操作的过程中可先执行步骤104-107,再执行步骤102和103。
本申请所提供的在播放器中加载图文字幕的方法,为图文字幕单独添加一个OpenGLLayer渲染层,充分利用字幕解码后所带的信息,与视频轨的处理完全剥离开,所有的操作不受视频画面的速度、大小、时间戳和画面图像格式影响,节省了运行的消耗,提高了运行效率。
本申请所提供的在播放器中加载图文字幕的方法,进一步包括:所述图文字幕渲染模块通过循环遍历的方法处理图文字幕,若监控到全局时钟走到了当前图文字幕的开始时间,则将设定的图文字幕显示信息发送至着色器处理,并将该条图文字幕的信息从内存中擦除掉;若监控到全局时钟走到了当前图文字幕的显示终止时间,则将着色器显示的图文字幕数据进行清理并更换到下一条图文字幕的数据。
从上述图文字幕渲染模块对图文字幕的处理过程可看出,在处理某条图文字幕的开始到结束的过程中,该条字幕并不需要在内存中停留过长的时间,发送到着色器后即可从图文字幕渲染模块中擦除;而且也不用消耗CPU去跟画面进行合成,只需要根据自己的时间戳控制自己显示和消失,如果视频那边的时间戳没出错,就能达到同步的效果;同时也不用消耗资源去将其格式转换成与画面相一致,只需自己按照自己的RGB画上即可。因此,有效解决了在现有技术中在视频播放器中加载字幕时将图文字幕与视频帧合成加载字幕严重消耗内存的问题,以及字幕渲染和视频轨渲染相耦合的问题,提高了代码封装性和可读性,降低结构复杂度。
本申请所提供的在播放器中加载图文字幕的方法,进一步包括:OpenGL着色器采用RGB32格式中的透明参数将所述渲染层上除图文字幕之外的其他位置进行透明处理。通过此种方式使得渲染层上仅在设定的位置出现图文字幕信息,其他位置均为透明,从而不影响视频的正常播放。通过此种方式,不仅能够保证视频的正常播放,还能大大减少消耗的资源,操作的复杂度也大大降低。
本申请所提供的在播放器中加载图文字幕的方法,进一步包括:利用OpenGL着色器创建一个渲染RGB32的脚本,使得图文字幕渲染的过程在GPU内进行,这样就有利于进一步减少CPU的消耗,提高CPU的运行效率。
本申请所提供的在播放器中加载图文字幕的方法,将视频轨的处理和字幕轨的处理完全分离开,而且视屏轨和字幕轨分别包含一个独立的时间戳,为保证视频内容和图文字幕内容相匹配,还需将字幕轨的时间戳和视频轨的时间戳保持同步,如此即能保证视频的正常播放。
实施例2
参见图2所示为本申请所述一种在播放器中加载图文字幕的系统100的具体实施例,该系统包括:视频解码模块10、视频渲染模块20、字幕解码模块30、图文字幕渲染模块40和OpenGL着色器50,
所述视频解码模块10,用于对视屏轨进行解码处理,形成解码后的视频信息,并将解码后的视频信息发送至视频渲染模块20;
所述视频渲染模块20,用于对视屏轨进行渲染处理,创建视频播放层;
所述字幕解码模块30,用于对字幕轨进行解码处理,形成解码后的图文字幕信息和数据,并将解码后的图文字幕信息和数据发送至图文字幕渲染模块40,所述图文字幕信息至少包括:显示起始时间、显示终止时间、图文字幕位置和图文字幕中图片的大小;
所述图文字幕渲染模块40,用于采用图文字幕渲染模块创建一个OpenGLLayer渲染层,对字幕轨进行渲染处理,并将所述渲染层覆盖到视频的播放层之上,还用于根据所述解码后的图文字幕信息和数据,创建图文字幕的纹理,设定图文字幕的显示高度和图文字幕中图片的大小,使得图文字幕底部与所述视频播放层的底部对齐,并将设定的图文字幕显示信息发送至OpenGL着色器50;
所述OpenGL着色器50,用于根据所述图文字幕渲染模块40发送的图文字幕显示信息,在渲染层上的设定位置显示图文字幕,并使得显示的图文字幕的播放位置与视频的播放位置相对应。
从上述方案中可看出,本申请中视频处理和字幕轨处理是完全分离的,视频轨由视频解码模块10和视频渲染模块20进行处理,字幕轨由字幕解码模块30和图文字幕渲染模块40进行处理,视屏轨处理和字幕轨处理互不干预,结构清晰。
本申请所提供的在播放器中加载图文字幕的系统,通过图文字幕渲染模块40为图文字幕单独添加一个OpenGLLayer渲染层,充分利用字幕解码后所带的信息,与视频轨的处理完全剥离开,所有的操作不受视频画面的速度、大小、时间戳和画面图像格式影响,节省了运行的消耗,提高了运行效率。
本申请中的图文字幕渲染模块40,进一步用于通过循环遍历的方法处理图文字幕,若监控到全局时钟走到了当前图文字幕的开始时间,则将设定的图文字幕显示信息发送至着色器50处理,并将该条图文字幕的信息从内存中擦除掉;若监控到全局时钟走到了当前图文字幕的显示终止时间,则将着色器50显示的图文字幕数据进行清理并更换到下一条图文字幕的数据。
上述图文字幕渲染模块40通过一个循环进行遍历,如果全局时钟走到当前字幕的显示开始时间,则将字幕数据传递给着色器50,并将该条字幕信息从其内存中擦除掉,当时钟走到结束时间,则将着色器50数据清理并更换到下一条字幕的数据。这样一个流程下来,该条字幕不需要在内存中停留过长时间,给到着色器50即可擦除;而且也不用消耗CPU去跟画面进行合成,只需要根据自己的时间戳控制自己显示和消失,如果视频那边的时间戳没出错,就能达到同步的效果;同时也不用消耗资源去将其格式转换成与画面相一致,只需自己按照自己的RGB画上即可。因此,有效解决了在现有技术中在视频播放器中加载字幕时将图文字幕与视频帧合成加载字幕严重消耗内存的问题,以及字幕渲染和视频轨渲染相耦合的问题,提高了代码封装性和可读性,降低结构复杂度。
本申请在播放器中加载图文字幕的系统中的OpenGL着色器50,进一步用于创建一个渲染RGB的脚本,使得图文字幕渲染的过程在GPU内进行,这样就有利于进一步减少CPU的消耗,提高CPU的运行效率。
本申请中视频轨和所述字幕轨分别包含一独立的时间戳,所述字幕轨的时间戳和所述视频轨的时间戳同步。本申请将视频轨的处理和字幕轨的处理完全分离开,而且视屏轨和字幕轨分别包含一个独立的时间戳,为保证视频内容和图文字幕内容相匹配,还需将字幕轨的时间戳和视频轨的时间戳保持同步,如此即能保证视频的正常播放。
实施例3
以下提供一种本发明在播放器中加载图文字幕的方法的应用实施例,参见图3,具体包括:
步骤201、采用字幕解码模块对字幕轨进行解码处理,形成解码后的图文字幕信息和数据,并将解码后的图文字幕信息和数据发送至图文字幕渲染模块;
步骤202、采用图文字幕渲染模块对字幕轨进行渲染处理,借助MacOS下的OpenGL库创建OpenGLLayer渲染层,覆盖到视频播放窗口之上;
步骤203、图文字幕渲染模块根据解码的信息和数据,创建一个结构体来保存;
实际应用时,结构体可保存在内存中,在解码之后,渲染之前,这个结构体就要创建好,这个结构体就是用来封装数据,用于数据从解码模块到渲染模块的传递过程。
步骤204、使用OpenGLLayer,用OpenGL着色器创建一个渲染RGB的脚本;
步骤205、图文字幕渲染模块根据位置信息和大小,创建纹理,并设定字幕的高度,使其底部与播放窗口底部对齐;
步骤206、图文字幕渲染模块通过一个循环进行遍历,如果全局时钟走到当前字幕的开始时间,则将字幕数据传递给着色器,并将该条字幕信息从内存中擦除掉,当时钟走到结束时间,则将着色器数据清理或更换到下一条字幕的数据,直至完成整个视频的播放;
步骤207、视频解码模块对视屏轨进行解码处理,形成解码后的视频信息,并将解码后的视频信息发送至视频渲染模块;
步骤208、视频渲染模块对视屏轨进行渲染处理,创建视频播放层;
步骤209、OpenGL着色器采用RGB32格式中的透明参数将除了图文字幕之外的其他位置进行透明处理,使得图文信息显示在渲染层中。
上述步骤204保证了渲染字幕的过程在GPU中进行,从而有效减少了CPU的消耗。
通过步骤206,各条字幕不需要在内存中停留过长时间,给到着色器即可擦除;而且也不用消耗CPU去跟画面进行合成,只需要根据自己的时间戳控制自己显示和消失,如果视频那边的时间戳没出错,就能达到同步的效果;同时也不用消耗资源去将其格式转换成与画面相一致,只需自己按照自己的RGB画上即可,大大节省了资源,提高了运行效率。
通过上述步骤209,结合字幕解码模块所解码出的图文字幕显示起始时间、图文字幕显示终止时间、图文字幕位置和图文字幕中图片的大小等信息,使得图文字幕在规定的时间、位置和大小进行显示,使得图文字幕在视频播放的过程中正常显示,与现有技术相比消耗的资源大大减少,操作的复杂度也大大降低。
本申请所提供的上述方案将视频处理和字幕处理完全分离开。在文件分离后,视频轨由自己的解码、渲染模块进行处理,字幕轨由自己的解码、渲染模块处理,互不干预,结构清晰。
通过以上各实施例可知,本申请存在的有益效果是:
第一,本发明所提供的在播放器中加载图文字幕的方法及系统,为字幕单独添加一个透明的渲染层,充分利用字幕解码后所带的信息,与视频轨的处理完全剥离开,所有的操作不受视频画面的速度、大小、时间戳和画面图像格式影响,节省了运行的消耗,提高了运行效率。
第二,本发明所提供的在播放器中加载图文字幕的方法及系统,渲染字幕的过程在GPU中进行,减少了CPU的消耗,而且,字幕渲染模块在将图文字幕发送至着色器后,会将该条字幕的信息从内存中擦除掉,当该条字幕显示完成后,着色器内的该条字幕的信息也将进行清理,也就是说,每条字幕都不需要再内存中停留过长时间,而且也不用消耗CPU去跟画面进行合成,只需要根据自己的时间戳控制自己显示和消失,如果视频那边的时间戳没出错,就能达到同步的效果;同时也不用消耗资源去将其格式转换成与画面相一致,只需自己按照自己的RGB画上即可。因此,本发明的在播放器中加载图文字幕的方法及系统解决了在现有技术中在视频播放器中加载字幕时将图文字幕与视频帧合成加载字幕严重消耗内存的问题,以及字幕渲染和视频轨渲染相耦合的问题,提高了代码封装性和可读性,降低结构复杂度。
本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。

Claims (10)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610704201.9A CN106303659A (zh) 2016-08-22 2016-08-22 在播放器中加载图文字幕的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610704201.9A CN106303659A (zh) 2016-08-22 2016-08-22 在播放器中加载图文字幕的方法及系统

Publications (1)

Publication Number Publication Date
CN106303659A true CN106303659A (zh) 2017-01-04

Family

ID=57662322

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610704201.9A Pending CN106303659A (zh) 2016-08-22 2016-08-22 在播放器中加载图文字幕的方法及系统

Country Status (1)

Country Link
CN (1) CN106303659A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106899875A (zh) * 2017-02-06 2017-06-27 合网络技术(北京)有限公司 外挂字幕的显示控制方法及装置
CN108600785A (zh) * 2018-05-10 2018-09-28 闪玩有限公司 视频串流中子程序的同步方法及计算机可读存储介质
CN110278479A (zh) * 2019-06-04 2019-09-24 青岛海信电器股份有限公司 一种图片显示方法及电视机
CN111565330A (zh) * 2020-07-13 2020-08-21 北京美摄网络科技有限公司 一种同步字幕的添加方法及装置、电子设备、存储介质
CN112689188A (zh) * 2020-12-21 2021-04-20 威创集团股份有限公司 一种大屏滚动字幕显示方法、装置、终端及存储介质
CN112988005A (zh) * 2020-11-27 2021-06-18 北京达佳互联信息技术有限公司 自动加载字幕的方法
CN113014834A (zh) * 2019-12-19 2021-06-22 合肥杰发科技有限公司 图片字幕显示方法、装置及相关装置
WO2022083250A1 (zh) * 2020-10-23 2022-04-28 北京字节跳动网络技术有限公司 图像处理方法、装置、电子设备和计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103517104A (zh) * 2012-06-15 2014-01-15 深圳市快播科技有限公司 一种机顶盒和基于网络点播的视频字幕复合方法
CN103700385A (zh) * 2012-09-27 2014-04-02 深圳市快播科技有限公司 媒体播放器和播放方法、硬件加速下的视频的后处理方法
CN103905744A (zh) * 2014-04-10 2014-07-02 中央电视台 一种渲染合成方法及系统
CN104065997A (zh) * 2014-07-07 2014-09-24 四川金网通电子科技有限公司 机顶盒滚动字幕显示的方法及其系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103517104A (zh) * 2012-06-15 2014-01-15 深圳市快播科技有限公司 一种机顶盒和基于网络点播的视频字幕复合方法
CN103700385A (zh) * 2012-09-27 2014-04-02 深圳市快播科技有限公司 媒体播放器和播放方法、硬件加速下的视频的后处理方法
CN103905744A (zh) * 2014-04-10 2014-07-02 中央电视台 一种渲染合成方法及系统
CN104065997A (zh) * 2014-07-07 2014-09-24 四川金网通电子科技有限公司 机顶盒滚动字幕显示的方法及其系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106899875A (zh) * 2017-02-06 2017-06-27 合网络技术(北京)有限公司 外挂字幕的显示控制方法及装置
CN108600785A (zh) * 2018-05-10 2018-09-28 闪玩有限公司 视频串流中子程序的同步方法及计算机可读存储介质
CN108600785B (zh) * 2018-05-10 2021-05-04 闪玩有限公司 视频串流中子程序的同步方法及计算机可读存储介质
CN110278479A (zh) * 2019-06-04 2019-09-24 青岛海信电器股份有限公司 一种图片显示方法及电视机
CN110278479B (zh) * 2019-06-04 2021-10-29 海信视像科技股份有限公司 一种图片显示方法及电视机
CN113014834A (zh) * 2019-12-19 2021-06-22 合肥杰发科技有限公司 图片字幕显示方法、装置及相关装置
CN113014834B (zh) * 2019-12-19 2024-02-27 合肥杰发科技有限公司 图片字幕显示方法、装置及相关装置
CN111565330A (zh) * 2020-07-13 2020-08-21 北京美摄网络科技有限公司 一种同步字幕的添加方法及装置、电子设备、存储介质
WO2022083250A1 (zh) * 2020-10-23 2022-04-28 北京字节跳动网络技术有限公司 图像处理方法、装置、电子设备和计算机可读存储介质
CN112988005A (zh) * 2020-11-27 2021-06-18 北京达佳互联信息技术有限公司 自动加载字幕的方法
CN112988005B (zh) * 2020-11-27 2023-02-28 北京达佳互联信息技术有限公司 自动加载字幕的方法
CN112689188A (zh) * 2020-12-21 2021-04-20 威创集团股份有限公司 一种大屏滚动字幕显示方法、装置、终端及存储介质

Similar Documents

Publication Publication Date Title
CN106303659A (zh) 在播放器中加载图文字幕的方法及系统
US9043800B2 (en) Video player instance prioritization
CN107018370A (zh) 用于视频墙的显示方法及其系统
US9077970B2 (en) Independent layered content for hardware-accelerated media playback
US8786781B2 (en) Detection and enhancement of in-video text
US20130128120A1 (en) Graphics Pipeline Power Consumption Reduction
CN103617027B (zh) 基于安卓系统的图像渲染引擎构建方法及系统
EP2637083A1 (en) Method and device for displaying startup interface of multimedia terminal
CN109600666A (zh) 游戏场景中的视频播放方法、装置、介质以及电子设备
CN103546816A (zh) 用户界面处理及视频播放方法及用户界面系统
JP2012505488A (ja) シームレスな表示移行
US20200252580A1 (en) Video data processing method and video data processing device
CN105094289B (zh) 一种实现图形用户交互界面的方法、设备及系统
US9412196B2 (en) Regional compositing
CN105430296A (zh) 一种高清视频多画面分割裂屏显示的解决方法
US20150331558A1 (en) Method for switching pictures of picture galleries and browser
CN103607581A (zh) 基于三维图像视频监控图像显示方法
CN104936030B (zh) 一种开机画面显示方法、设备以及组合终端系统
CN110187858B (zh) 图像显示方法及系统
CN109272923A (zh) 一种基于多屏设备的字幕滚动显示方法、系统及存储介质
US8724029B2 (en) Accelerating video from an arbitrary graphical layer
US8411110B2 (en) Interactive image and graphic system and method capable of detecting collision
CN107197356A (zh) 一种在电视中显示屏幕菜单的方法、装置及电视
US11513937B2 (en) Method and device of displaying video comments, computing device, and readable storage medium
CN104740873A (zh) 游戏中的图像渲染方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination