CN117336563B - 外挂字幕显示方法、装置、设备、介质及程序产品 - Google Patents
外挂字幕显示方法、装置、设备、介质及程序产品 Download PDFInfo
- Publication number
- CN117336563B CN117336563B CN202311379867.8A CN202311379867A CN117336563B CN 117336563 B CN117336563 B CN 117336563B CN 202311379867 A CN202311379867 A CN 202311379867A CN 117336563 B CN117336563 B CN 117336563B
- Authority
- CN
- China
- Prior art keywords
- subtitle
- plug
- display
- video
- displaying
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 230000006870 function Effects 0.000 claims description 195
- 238000004590 computer program Methods 0.000 claims description 17
- 230000001360 synchronised effect Effects 0.000 description 21
- 230000008569 process Effects 0.000 description 18
- 230000009286 beneficial effect Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000009877 rendering Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/488—Data services, e.g. news ticker
- H04N21/4884—Data services, e.g. news ticker for displaying subtitles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
- H04N21/4316—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请涉及一种外挂字幕显示方法及相关产品。外挂字幕显示方法应用于视频播放器,包括:获取外挂字幕及外挂字幕的字幕起止时间,字幕起止时间是指开始显示外挂字幕的时间和结束显示外挂字幕的时间;在至少一个视频帧的视频起止时间属于字幕起止时间所形成的时间区间内的情况下,在开始显示至少一个视频帧时调用回调函数,视频起止时间是指开始显示视频帧的时间和结束显示视频帧的时间,回调函数用于调用视频播放器的用户界面的显示组件的显示功能;在显示至少一个视频帧时,通过回调函数所调用的显示功能显示外挂字幕。采用本方法能实现外挂字幕的显示。
Description
技术领域
本申请涉及视频字幕处理技术领域,特别涉及一种外挂字幕显示方法及相关产品。
背景技术
随着移动设备的日益普及,大量用户已***台,这使得视频播放器成为移动设备上的必需应用。视频播放器在播放显示诸多视频时,需要同步配上字幕以更完整地传达信息,也需要向不同地区及不同语言体系的观众提供字幕以满足对不同种类语言的需求。然而,目前市场上的视频播放器通常支持解析内置字幕,较难支持外挂字幕的显示。
发明内容
基于此,有必要针对上述技术问题,提供一种能够实现外挂字幕显示的外挂字幕显示方法及相关产品,其中,相关产品包括外挂字幕显示装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种外挂字幕显示方法,所述方法包括:
获取外挂字幕及所述外挂字幕的字幕起止时间,所述字幕起止时间是指开始显示所述外挂字幕的时间和结束显示所述外挂字幕的时间;
在至少一个视频帧的视频起止时间属于所述字幕起止时间所形成的时间区间内的情况下,在开始显示所述至少一个视频帧时调用回调函数,所述视频起止时间是指开始显示所述视频帧的时间和结束显示所述视频帧的时间,所述回调函数用于调用所述视频播放器的用户界面的显示组件的显示功能;
在显示所述至少一个视频帧时,通过所述回调函数所调用的所述显示功能显示所述外挂字幕。
在其中一个实施例中,所述获取外挂字幕及所述外挂字幕的字幕起止时间,包括:
创建并启动所述外挂字幕的读线程;
通过所述读线程,从字幕网址中获取所述外挂字幕及所述外挂字幕的所述字幕起止时间,所述字幕网址是所述外挂字幕及所述字幕起止时间的存储路径;
其中,在获取完毕需要显示的所述外挂字幕及所述字幕起止时间的情况下,结束所述读线程。
在其中一个实施例中,所述从字幕网址中获取所述外挂字幕及所述外挂字幕的所述字幕起止时间,包括:
解析所述字幕网址,得到字幕流;
对所述字幕流解封装,得到字幕压缩数据;
对所述字幕压缩数据解码,得到所述外挂字幕及所述外挂字幕的所述字幕起止时间。
在其中一个实施例中,所述在开始显示所述至少一个视频帧时调用回调函数之前,所述方法还包括:
将所述外挂字幕及所述外挂字幕的所述字幕起止时间存放至字幕队列,所述字幕队列中按照开始显示所述外挂字幕的时间进行排序;
启动视频显示线程,所述视频显示线程用于读取所述视频帧及所述视频帧的所述视频起止时间并显示所述视频帧;
通过所述视频显示线程,读取所述字幕队列中的所述外挂字幕及所述外挂字幕的所述字幕起止时间。
在其中一个实施例中,所述将所述外挂字幕及所述外挂字幕的所述字幕起止时间存放至字幕队列,包括:
将所述外挂字幕及所述外挂字幕的所述字幕起止时间,存放至结构体中,得到字幕数据结构体;
将所述字幕数据结构体存放至所述字幕队列;
所述读取所述字幕队列中的所述外挂字幕及所述外挂字幕的所述字幕起止时间,包括:通过读取所述字幕队列中的所述字幕数据结构体,以读取所述外挂字幕及所述外挂字幕的所述字幕起止时间。
在其中一个实施例中,所述在显示所述至少一个视频帧时,通过所述回调函数所调用的所述显示功能显示所述外挂字幕,包括:
在开始显示所述至少一个视频帧时,通过所述回调函数所调用的所述显示功能,显示所述外挂字幕;
在显示完毕所述至少一个视频帧时,通过所述回调函数所调用的所述显示组件的清除功能,清除所述外挂字幕。
在其中一个实施例中,所述在显示所述至少一个视频帧时,通过所述回调函数所调用的所述显示功能显示所述外挂字幕,包括:
将主时钟时间作为显示所述至少一个视频帧和所述外挂字幕的时间参考标准,在显示所述至少一个视频帧时,通过所述回调函数所调用的所述显示功能,显示所述外挂字幕。
在其中一个实施例中,所述在显示所述至少一个视频帧时,通过所述回调函数所调用的所述显示功能显示所述外挂字幕,包括:
在显示所述至少一个视频帧时,通过所述回调函数所调用的所述显示功能,将所述外挂字幕按照文本显示控件中的字幕属性,显示在所述文本显示控件中,所述字幕属性包括字幕显示位置、字幕颜色、字幕大小中的至少一个。
第二方面,本申请还提供了一种外挂字幕显示装置,所述装置应用于视频播放器,所述装置包括:
获取模块,用于获取所述外挂字幕及所述外挂字幕的字幕起止时间,所述字幕起止时间是指开始显示所述外挂字幕的时间和结束显示所述外挂字幕的时间;
调用模块,用于在至少一个视频帧的视频起止时间属于所述字幕起止时间所形成的时间区间内的情况下,在开始显示所述至少一个视频帧时调用回调函数,所述视频起止时间是指开始显示所述视频帧的时间和结束显示所述视频帧的时间,所述回调函数用于调用所述视频播放器的用户界面的显示组件的显示功能;
显示模块,用于在显示所述至少一个视频帧时,通过所述回调函数所调用的所述显示功能显示所述外挂字幕。
在其中一个实施例中,所述获取模块包括:
创建单元,用于创建并启动所述外挂字幕的读线程;
获取单元,用于通过所述读线程,从字幕网址中获取所述外挂字幕及所述外挂字幕的所述字幕起止时间,所述字幕网址是所述外挂字幕及所述字幕起止时间的存储路径;
其中,在获取完毕需要显示的所述外挂字幕及所述字幕起止时间的情况下,结束所述读线程。
在其中一个实施例中,所述获取单元还用于,
解析所述字幕网址,得到字幕流;
对所述字幕流解封装,得到字幕压缩数据;
对所述字幕压缩数据解码,得到所述外挂字幕及所述外挂字幕的所述字幕起止时间。
在其中一个实施例中,所述装置还包括:
存放模块,用于将所述外挂字幕及所述外挂字幕的所述字幕起止时间存放至字幕队列,所述字幕队列中按照开始显示所述外挂字幕的时间进行排序;
启动模块,用于启动视频显示线程,所述视频显示线程用于读取所述视频帧及所述视频帧的所述视频起止时间并显示所述视频帧;
读取模块,用于通过所述视频显示线程,读取所述字幕队列中的所述外挂字幕及所述外挂字幕的所述字幕起止时间。
在其中一个实施例中,所述存放模块包括:
第一存放单元,用于将所述外挂字幕及所述外挂字幕的所述字幕起止时间,存放至结构体中,得到字幕数据结构体;
第二存放单元,用于将所述字幕数据结构体存放至所述字幕队列;
所述读取模块还用于通过读取所述字幕队列中的所述字幕数据结构体,以读取所述外挂字幕及所述外挂字幕的所述字幕起止时间。
在其中一个实施例中,所述显示模块包括:
显示单元,用于在开始显示所述至少一个视频帧时,通过所述回调函数所调用的所述显示功能,显示所述外挂字幕;
清除单元,用于在显示完毕所述至少一个视频帧时,通过所述回调函数所调用的所述显示组件的清除功能,清除所述外挂字幕。
在其中一个实施例中,所述显示模块还用于,
将主时钟时间作为显示所述至少一个视频帧和所述外挂字幕的时间参考标准,在显示所述至少一个视频帧时,通过所述回调函数所调用的所述显示功能,显示所述外挂字幕。
在其中一个实施例中,所述显示模块还用于,
在显示所述至少一个视频帧时,通过所述回调函数所调用的所述显示功能,将所述外挂字幕按照文本显示控件中的字幕属性,显示在所述文本显示控件中,所述字幕属性包括字幕显示位置、字幕颜色、字幕大小中的至少一个。
第三方面,本申请还提供了一种计算机设备,包括:存储器、处理器,其中,所述存储器存储有程序指令;所述程序指令被所述处理器执行时,使所述处理器执行如第一方面或第一方面的任一实施例所示的方法。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序;当所述计算机程序在一个或多个处理器上运行时,执行如第一方面或第一方面的任一实施例所示的方法。
第五方面,本申请还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序或指令;在所述计算机程序或指令在计算机上运行的情况下,使得所述计算机执行如第一方面或第一方面的任一实施例所示的方法。
上述外挂字幕显示方法应用于视频播放器,视频播放器获取需要显示的外挂字幕及外挂字幕的字幕起止时间,其中,字幕起止时间是指开始显示外挂字幕的时间和结束显示外挂字幕的时间;进而,在至少一个视频帧的视频起止时间属于外挂字幕的字幕起止时间所形成的时间区间内的情况下,表明此至少一个视频帧的内容对应此一行外挂字幕,在开始显示此至少一个视频帧时,应同步显示此一行外挂字幕,进一步地,在需要显示外挂字幕时调用回调函数,回调函数用于调用视频播放器的用户界面的显示组件的显示功能;再进一步地,通过回调函数所调用的显示功能,在显示至少一个视频帧时,同步显示外挂字幕。采用上述外挂字幕显示方法,能够实现外挂字幕的显示。
可以理解地,上述第二方面提供的外挂字幕显示装置、第三方面提供的计算机设备、第四方面提供的计算机可读存储介质和第五方面提供的计算机程序产品,均用于执行本申请第一方面或第一方面的任一实施例所示的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的外挂字幕显示方法的流程示意图之一;
图2为本申请实施例提供的获取外挂字幕及外挂字幕的字幕起止时间的流程示意图之一;
图3为本申请实施例提供的从字幕网址中获取外挂字幕及外挂字幕的字幕起止时间的流程示意图之二;
图4为本申请实施例提供的外挂字幕显示方法的流程示意图之二;
图5为本申请实施例提供的将外挂字幕及外挂字幕的字幕起止时间存放至字幕队列的流程示意图;
图6为本申请实施例提供的在显示至少一个视频帧时,通过回调函数所调用的显示功能显示外挂字幕的流程示意图;
图7为本申请实施例提供的外挂字幕显示方法的流程示意图之三;
图8为本申请实施例提供的外挂字幕显示装置的结构示意图;
图9为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
为了便于理解本申请实施例,下面将参照相关附图对本申请实施例进行更全面的描述。附图中给出了本申请实施例的首选实施例。但是,本申请实施例可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本申请实施例的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请实施例的技术领域的技术人员通常理解的含义相同。本文中在本申请实施例的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请实施例。
在使用时,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解的是,术语“包括/包含”指定所陈述的特征、整体、步骤、操作、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、部分或它们的组合的可能性。
目前市场上的视频播放器,如ffplay、ijkplayer等,通常支持解析内置字幕,较难支持外挂字幕的显示。音视频媒体播放器(ffplay),是一个由音视频编解码开源计算机程序(Fast Forward Mpeg,FFmpeg)提供的媒体播放器,可以用于音视频播放、可视化分析,可以提供音视频显示、播放图像信息、播放音频的波形等。跨平台开源播放器(ijkplayer),是一个基于ffplay的轻量级安卓操作***(Android)/苹果操作***(iOS)的视频播放器,具有以下特性:可实现跨平台功能,应用程序编程接口易于集成;编译配置可裁剪,方便控制安装包大小;支持硬件加速解码,更加省电。视频播放器使用内置字幕时,需要对其重新转码,转码及存储的成本较高;而若能使用外挂字幕,则在获取外挂字幕并显示完毕所有外挂字幕后,可清除外挂字幕所占用的内存,有利于节约存储成本,且可以在将已有视频资源最大化复用的同时,避免重新转码,亦有利于节约转码成本。因此,有必要基于如ffplay、ijkplayer等视频播放器的架构,提出一种外挂字幕显示的技术方案,以实现显示外挂字幕。
如图1所示,本申请实施例提供一种外挂字幕显示方法。外挂字幕显示方法应用于视频播放器,包括以下步骤S101至S103。
S101,获取外挂字幕及外挂字幕的字幕起止时间。字幕起止时间是指开始显示外挂字幕的时间和结束显示外挂字幕的时间。
其中,视频播放器成为移动设备上的必需应用,移动设备的操作***的业务层除了将存储有视频帧的视频网址预先设置在移动设备的视频播放器中,供视频播放器访问以外,还将存储有外挂字幕及字幕起止时间的统一资源定位标志(uniform resourcelocator,url),亦即字幕网址,预先设置在视频播放器中。进而,视频播放器可以从视频网址中获取视频帧,还可以从字幕网址中获取外挂字幕及显示外挂字幕的字幕起止时间。
S102,在至少一个视频帧的视频起止时间属于字幕起止时间所形成的时间区间内的情况下,在开始显示至少一个视频帧时调用回调函数。视频起止时间是指开始显示视频帧的时间和结束显示视频帧的时间,回调函数用于调用视频播放器的用户界面的显示组件的显示功能。
其中,移动设备的操作***的业务层还将回调函数预先设置在视频播放器中供视频播放器调用,此回调函数用于调用视频播放器的用户界面的显示组件的显示功能。字幕起止时间所形成的时间区间是指开始显示外挂字幕的时间至结束显示此外挂字幕的时间所形成的时间区段。
示例性地,第A行外挂字幕的字幕起止时间所形成的时间区间为第3秒至第6秒,第a个视频帧的视频起止时间分别为第3秒、第4秒,第a+1个视频帧的视频起止时间分别为第5秒、第6秒,第a+2个视频帧的视频起止时间分别为第7秒、第9秒,则第a个视频帧和第a+1个视频帧的视频起止时间属于第A行外挂字幕的字幕起止时间所形成的时间区间内,第a+2个视频帧的视频起止时间不属于第A行外挂字幕的字幕起止时间所形成的时间区间内。
具体地,视频播放器在渲染、显示视频帧的过程中,判断一个或多个视频帧对应的视频起止时间是否属于外挂字幕的字幕起止时间所形成的时间区间内,若属于,则表明此至少一个视频帧的内容对应此外挂字幕。如上述示例中,表明第a个视频帧和第a+1个视频帧这两个视频帧的内容对应第A行外挂字幕。在此情况下,开始显示此至少一个视频帧时,应显示此外挂字幕。进而,在需要显示外挂字幕时视频播放器调用回调函数。
S103,在显示至少一个视频帧时,通过回调函数所调用的显示功能显示外挂字幕。
具体地,在显示至少一个视频帧时,通过回调函数所调用的显示功能,将获取到的外挂字幕与至少一个视频帧做同步显示。如在显示第a个视频帧和第a+1个视频帧这两个视频帧,通过回调函数所调用的显示功能,将第A行外挂字幕同步显示出来。
需要注意的是,本申请实施例及后续实施例均是以一行外挂字幕、显示一行外挂字幕的字幕起止时间为例进行叙述,每一行外挂字幕及其字幕起止时间的处理方式均相同。另外,外挂字幕的显示过程与视频帧的显示过程,均为边获取边显示的过程。
在本实施例中,一方面,在需要显示外挂字幕时,通过回调函数所调用的显示功能,将与至少一个视频帧的内容对应的外挂字幕显示出来,即实现了外挂字幕的显示。另一方面,在显示至少一个视频帧时,调用回调函数,通过回调函数控制显示对应的外挂字幕,则实现了外挂字幕与至少一个视频帧的同步显示,提升了同步的精准度,还有利于提升同步显示视频帧与外挂字幕所带给用户的观看体验。
如图2所示,在其中一个实施例中,上述步骤S101中,获取外挂字幕及外挂字幕的字幕起止时间包括以下步骤S201至S202。
S201,创建并启动外挂字幕的读线程。
S202,通过读线程,从字幕网址中获取外挂字幕及外挂字幕的字幕起止时间。字幕网址是外挂字幕及字幕起止时间的存储路径。
其中,在获取完毕需要显示的外挂字幕及字幕起止时间的情况下,结束读线程。
具体地,与启动视频帧的读线程,以从视频网址中获取视频帧相类似的,视频播放器还需创建并启动外挂字幕的读线程。其中,外挂字幕的读线程是指用于执行读取外挂字幕相关数据的任务的一个线程,通过启动外挂字幕的读线程,可以从字幕网址中获取外挂字幕及外挂字幕的字幕起止时间。进而,在显示外挂字幕的过程中,当已从字幕网址中获取完毕需要显示的所有外挂字幕及字幕起止时间时,视频播放器退出外挂字幕的读线程。需要理解的是,退出了外挂字幕的读线程,只是不再通过读线程从字幕网址中获取上述外挂字幕信息,并非当然地停止显示外挂字幕。
在本实施例中,创建并启动外挂字幕的读线程,能够获取需要显示的外挂字幕。并且,创建并启动一个只需获取外挂字幕的读线程,无需用于显示外挂字幕,有利于减少对内存和资源的占用,有利于节约时间和空间成本。
如图3所示,在其中一个实施例中,上述步骤S202中,从字幕网址中获取外挂字幕及外挂字幕的字幕起止时间包括以下步骤S301至S303。
S301,解析字幕网址,得到字幕流。
S302,对字幕流解封装,得到字幕压缩数据。
S303,对字幕压缩数据解码,得到外挂字幕及外挂字幕的字幕起止时间。
在本实施例中,通过外挂字幕的读线程,视频播放器对字幕网址进行解析以直接获取字幕流,进而,依次对字幕流进行解封装、解码,以获取外挂字幕及外挂字幕的字幕起止时间。
如图4所示,在其中一个实施例中,外挂字幕显示方法还包括以下步骤S401至S406。其中,步骤S401、S405至S406与前述实施例中步骤S101至S103一一对应,本实施例中关于步骤S401、S405至S406的具体论述可参考前述实施例。
S401,获取外挂字幕及外挂字幕的字幕起止时间。字幕起止时间是指开始显示外挂字幕的时间和结束显示外挂字幕的时间。
具体地,视频播放器可以从字幕网址这一存储路径中获取外挂字幕及显示外挂字幕的字幕起止时间。
S402,将外挂字幕及外挂字幕的字幕起止时间存放至字幕队列,字幕队列中按照开始显示外挂字幕的时间进行排序。
具体地,将每一行外挂字幕及此一行外挂字幕的字幕起止时间,对应地存放至字幕队列中,一行外挂字幕对应字幕队列中一个节点,各行外挂字幕按照开始显示的时间进行排序,存放至字幕队列中,以供视频播放器后续读取。
示例性地,第A行外挂字幕的字幕起止时间分别为第3秒和第6秒,其中开始显示的时间为第3秒;第B行外挂字幕的字幕起止时间分别为第7秒和第9秒,其中开始显示的时间为第7秒;第C行外挂字幕的字幕起止时间分别为第10秒和第11秒,其中开始显示的时间为第10秒。则将第A行、B行、C行外挂字幕及对应的字幕起止时间,按照开始显示的时间进行排序,存放至字幕队列。具体地,将第A行外挂字幕及其字幕起止时间第3秒和第6秒存放至字幕队列的第n个节点,将第B行外挂字幕及其字幕起止时间第7秒和第9秒存放至字幕队列的第n+1个节点,将第C行外挂字幕及其字幕起止时间第10秒和第11秒存放至字幕队列的第n+3个节点。进而,供视频播放器后续依次读取第n个节点至第n+3个节点所对应的外挂字幕。
S403,启动视频显示线程,视频显示线程用于读取视频帧及视频帧的视频起止时间并显示视频帧。
具体地,视频播放器启动视频显示线程,以从存放每一个视频帧及此一个视频帧的视频起止时间的队列中,读取视频帧及视频帧的视频起止时间,进而,在视频显示线程中,按照视频起止时间渲染、显示各个视频帧。
S404,通过视频显示线程,读取字幕队列中的外挂字幕及外挂字幕的字幕起止时间。
具体地,无需创建独立的外挂字幕显示进程,而是直接通过视频显示进程,在对视频帧及视频帧的视频起止时间进行读取的情况下,也对存放至字幕队列中的外挂字幕及外挂字幕的字幕起止时间进行依次读取。
S405,在至少一个视频帧的视频起止时间属于字幕起止时间所形成的时间区间内的情况下,在开始显示至少一个视频帧时调用回调函数。视频起止时间是指开始显示视频帧的时间和结束显示视频帧的时间,回调函数用于调用视频播放器的用户界面的显示组件的显示功能。
S406,在显示至少一个视频帧时,通过回调函数所调用的显示功能显示外挂字幕。
具体地,在视频显示线程中,视频播放器在渲染、显示视频帧时,判断一个或多个视频帧对应的视频起止时间是否属于外挂字幕的字幕起止时间所形成的时间区间内,即判断在显示此至少一个视频帧时,是否需要同步显示此一行外挂字幕。若需要,则在显示此至少一个视频帧时,通过回调函数调用的显示功能,将读取到的外挂字幕与读取到的至少一个视频帧做同步显示。
应该理解的是,外挂字幕的显示过程与视频帧的显示过程,均为边获取、边存放、边读取、边显示的过程。如外挂字幕的显示过程为:一边获取外挂字幕及外挂字幕的字幕起止时间,一边将已经获取到的外挂字幕及外挂字幕的字幕起止时间存放至字幕队列中,还一边通过视频显示线程,按照开始显示外挂字幕的时间的先后顺序,读取已经存放至字幕队列中的外挂字幕,并一边控制显示已经读取到的外挂字幕。
在本实施例中,对线程进行优化,没有依赖创建独立的字幕显示线程,而是将同步操作与原有的视频显示线程合并,通过原有的视频显示线程实现外挂字幕与视频帧的同步显示。不仅有利于节约创建另一线程的内存和资源、节约时间和空间成本,使线程更简捷;在视频显示线程中直接读取视频帧和外挂字幕,并判断是否需要同步显示视频帧和外挂字幕,进而控制外挂字幕的显示,还简化了外挂字幕与视频帧同步显示的流程,响应速度更快,有利于更精准地实现显示同步。
如图5所示,在其中一个实施例中,上述步骤S402中,将外挂字幕及外挂字幕的字幕起止时间存放至字幕队列包括以下步骤S501至S502。
S501,将外挂字幕及外挂字幕的字幕起止时间,存放至结构体中,得到字幕数据结构体。
S502,将字幕数据结构体存放至字幕队列。
具体地,将一行外挂字幕及此一行外挂字幕的字幕起止时间,存放至一个结构体中,得到一个字幕数据结构体。每一行外挂字幕对应一个字幕数据结构体。如上述示例中,第A行外挂字幕及其字幕起止时间第3秒和第6秒存放至第m个字幕数据结构体中,第B行外挂字幕及其字幕起止时间第7秒和第9秒存放至第m+1个字幕数据结构体中,第C行外挂字幕及其字幕起止时间第10秒和第11秒存放至第m+2个字幕数据结构体中。进而,将每一个字幕数据结构体存放至字幕队列中,一个字幕数据结构体对应字幕队列中一个节点。各字幕数据结构体按照开始显示外挂字幕的时间进行排序,存放至字幕队列中,以供视频播放器后续读取。
示例性地,上述第m个、m+1个、m+2个字幕数据结构体所存储的外挂字幕的开始显示时间分别为第3秒、第7秒、第10秒,按照开始显示外挂字幕的时间进行排序,将上述第m个字幕数据结构体存放至字幕队列的第n个节点,将上述第m+1个字幕数据结构体存放至字幕队列的第n+1个节点,将上述第m+2个字幕数据结构体存放至字幕队列的第n+2个节点,进而,供视频播放器后续依次读取第n个节点至第n+3个节点所对应的外挂字幕。
对应地,上述步骤S404中,读取字幕队列中的外挂字幕及外挂字幕的字幕起止时间包括步骤:通过读取字幕队列中的字幕数据结构体,以读取外挂字幕及外挂字幕的字幕起止时间。
在本实施例中,以字幕数据结构体存储外挂字幕及外挂字幕的字幕起止时间等不同类型的数据,有利于将每一行外挂字幕的相关数据进行汇总,有利于提高读取字幕队列中每一行外挂字幕的便利性。
如图6所示,在其中一个实施例中,上述步骤S103,在显示至少一个视频帧时,通过回调函数所调用的显示功能显示外挂字幕包括以下步骤S601至S602。
S601,在开始显示至少一个视频帧时,通过回调函数所调用的显示功能,显示外挂字幕。
S602,在显示完毕至少一个视频帧时,通过回调函数所调用的显示组件的清除功能,清除外挂字幕。
其中,回调函数不仅可用于调用视频播放器的用户界面的显示组件的显示功能,还可用于调用显示组件的清除功能。
具体地,视频播放器在渲染、显示视频帧的过程中,判断一个或多个视频帧对应的视频起止时间是否属于外挂字幕的字幕起止时间所形成的时间区间内,若属于,则表明此至少一个视频帧的内容对应此外挂字幕。在此情况下,一方面,开始显示此至少一个视频帧时,应同步开始显示此外挂字幕。进而,在开始显示至少一个视频帧时,通过回调函数调用的显示功能,将获取到的外挂字幕与至少一个视频帧做同步显示。另一方面,至少一个视频帧作为一个整体,包括了需要对应显示此一行外挂字幕的所有视频帧,因此,此至少一个视频帧显示完毕时,相应地,此一行外挂字幕也需结束显示,即需被清除。进而,在显示完毕至少一个视频帧时,通过回调函数调用的清除功能,清除此外挂字幕,以实现同步结束显示至少一个视频帧和对应的外挂字幕。能够理解地,待显示视频起止时间不属于字幕起止时间所形成的时间区间内的视频帧时,此字幕起止时间对应的外挂字幕已经被清除掉。
示例性地,第A行外挂字幕的字幕起止时间所形成的时间区间为第3秒至第6秒,第a个视频帧的视频起止时间分别为第3秒、第4秒,第a+1个视频帧的视频起止时间分别为第5秒、第6秒,第a+2个视频帧的视频起止时间分别为第7秒、第9秒,则第a个视频帧和第a+1个视频帧的视频起止时间属于第A行外挂字幕的字幕起止时间所形成的时间区间内,第a+2个视频帧的视频起止时间不属于第A行外挂字幕的字幕起止时间所形成的时间区间内。进而,在开始显示第a个视频帧和第a+1个视频帧时,通过回调函数调用的显示功能,同步显示出第A行外挂字幕;在显示完毕第a个视频帧和第a+1个视频帧时,通过回调函数调用的清除功能,清除第A行外挂字幕,以实现同步结束显示第A行外挂字幕。进一步地,当开始显示第a+2个视频帧时,第A行外挂字幕已经被清除,视频播放器将继续通过回调函数调用的显示功能,控制与第a+2个视频帧的内容相对应的外挂字幕进行同步显示。
示例性地,回调函数不仅可用于调用显示组件的显示、清除功能,还可用于调用显示组件的编辑、更新、关闭显示等功能,视频播放器调用回调函数,可以通过回调函数调用的上述功能,根据显示需求,对外挂字幕的内容进行编辑、更新,清除外挂字幕,控制显示外挂字幕及关闭显示外挂字幕等。
在本实施例中,在开始显示至少一个视频帧时,通过回调函数控制开始显示对应的外挂字幕;在显示完毕至少一个视频帧时,通过回调函数控制结束显示对应的外挂字幕,实现了外挂字幕与至少一个视频帧的更精准的同步显示。
在其中一个实施例中,上述步骤S103,在显示至少一个视频帧时,通过回调函数所调用的显示功能显示外挂字幕包括步骤:将主时钟时间作为显示至少一个视频帧和外挂字幕的时间参考标准,在显示至少一个视频帧时,通过回调函数所调用的显示功能,显示外挂字幕。
具体地,视频播放器在渲染、显示视频帧的过程中,判断一个或多个视频帧对应的视频起止时间是否属于外挂字幕的字幕起止时间所形成的时间区间内,若属于,则在显示至少一个视频帧时,通过回调函数调用的显示功能,将获取到的外挂字幕与至少一个视频帧做同步显示。与此同时,还可以***的主时钟时间为参考标准,同步显示至少一个视频帧和外挂字幕。
本实施例中的方法,不仅能够实现外挂字幕与至少一个视频帧的同步显示,还能够控制显示视频帧和外挂字幕的时间与***的主时钟时间同步,有利于进一步优化同步。
在其中一个实施例中,上述步骤S103,在显示至少一个视频帧时,通过回调函数所调用的显示功能显示外挂字幕包括步骤:在显示至少一个视频帧时,通过回调函数调用的显示功能,将外挂字幕按照文本显示控件中的字幕属性,显示在文本显示控件中,字幕属性包括字幕显示位置、字幕颜色、字幕大小中的至少一个。
其中,如iOS、Android等操作***的业务层创建文本显示控件,如创建UILabel文本显示控件,并设置需显示的字幕的字幕属性,进而将文本显示控件添加至视图控制器(View Controller)的视图上,供显示出外挂字幕。
具体地,视频播放器在渲染、显示视频帧的过程中,判断一个或多个视频帧对应的视频起止时间是否属于外挂字幕的字幕起止时间所形成的时间区间内,若属于,则在显示至少一个视频帧时,通过回调函数调用的显示功能,将获取到的外挂字幕按照预先设置的字幕属性,同步显示在视图的文本显示控件中。
示例性地,预先设置字幕显示位置为视频图像的下方居中、字幕颜色为黑色、字幕大小为小二号等,则通过回调函数调用的显示功能,将获取到的外挂字幕以黑色、小二号的形式同步显示在文本显示控件中,文本显示控件位于视频图像的下方居中。
示例性地,字幕属性还可以包括字幕字体。预先设置字幕显示位置为视频图像的上方居中、字幕颜色为白色、字幕大小为小三号、字幕字体为宋体等,则通过回调函数调用的显示功能,将获取到的外挂字幕以白色、小三号、宋体的形式同步显示在文本显示控件中,文本显示控件位于视频图像的上方居中。
在本实施例中,通过调用回调函数及操作***提供文本显示控件,将外挂字幕以文本的形式直接显示在移动设备的用户界面,不需要在移动设备的本地服务层将文本转化成图片,进而将图片与视频图像进行匹配。相较于做文本和图片的转化,通过文本显示控件直接显示文本有利于降低成本。除此以外,文本显示控件中可供设置字幕显示位置、字幕颜色、字幕大小等字幕属性,提供了灵活调整外挂字幕的颜色、大小、显示位置等功能,通过文本显示控件直接显示文本,使外挂字幕按照预先设置好的字幕属性进行显示,有利于控制外挂字幕的显示效果。进一步地,本实施例中的外挂字幕显示方法,巧妙地利用移动设备的操作***的文本显示性能,通过操作***提供的文本显示控件显示外挂字幕,本方法可方便地应用于如ijkplayer、ffplay等视频播放器的原有流程中,实现在保证各视频播放器原有性能的前提下达到较好的外挂字幕显示效果,且还能实现设置字幕属性的功能拓展。
如图7所示,在其中一个实施例中,外挂字幕显示方法还包括以下步骤S701至S711。
S701,创建并启动外挂字幕的读线程。
S702,通过读线程,解析字幕网址,得到字幕流。其中,字幕网址是外挂字幕及字幕起止时间的存储路径。
S703,对字幕流解封装,得到字幕压缩数据。
S704,对字幕压缩数据解码,得到外挂字幕及外挂字幕的字幕起止时间。其中,字幕起止时间是指开始显示外挂字幕的时间和结束显示外挂字幕的时间。
其中,在获取完毕需要显示的外挂字幕及字幕起止时间的情况下,结束读线程。
S705,将外挂字幕及外挂字幕的字幕起止时间,存放至结构体中,得到字幕数据结构体。
S706,将字幕数据结构体存放至字幕队列,字幕队列中按照开始显示外挂字幕的时间进行排序。
S707,启动视频显示线程,视频显示线程用于读取视频帧及视频帧的视频起止时间并显示视频帧。其中,视频起止时间是指开始显示视频帧的时间和结束显示视频帧的时间。
S708,通过视频显示线程,通过读取字幕队列中的字幕数据结构体,以读取外挂字幕及外挂字幕的字幕起止时间。
S709,在至少一个视频帧的视频起止时间属于字幕起止时间所形成的时间区间内的情况下,在开始显示至少一个视频帧时调用回调函数。其中,回调函数用于调用视频播放器的用户界面的显示组件的显示功能。
S710,将主时钟时间作为显示至少一个视频帧和外挂字幕的时间参考标准,在开始显示至少一个视频帧时,通过回调函数所调用的显示功能,将外挂字幕按照文本显示控件中的字幕属性,显示在文本显示控件中。其中,字幕属性包括字幕显示位置、字幕颜色、字幕大小中的至少一个。
S711,在显示完毕至少一个视频帧时,通过回调函数所调用的显示组件的清除功能,清除外挂字幕。
在本实施例中,首先,在需要显示外挂字幕时,通过回调函数调用的显示功能,将与至少一个视频帧的内容对应的外挂字幕显示出来,实现了外挂字幕的显示。其次,在开始显示至少一个视频帧时,调用回调函数,通过回调函数控制显示对应的外挂字幕,在显示完毕至少一个视频帧时,通过回调函数控制结束显示对应的外挂字幕,实现了外挂字幕与至少一个视频帧的更精准的同步显示。再次,创建并启动一个只需获取外挂字幕的读线程,且将同步操作与原有的视频显示线程合并,通过原有的视频显示线程实现外挂字幕与视频帧的同步显示,上述对线程进行优化,有利于减少对内存和资源的占用,有利于节约时间和空间成本,使线程更简捷;且在视频显示线程中直接读取视频帧和外挂字幕,并判断是否需要同步显示视频帧和外挂字幕,进而控制外挂字幕的显示,还简化了外挂字幕与视频帧同步显示的流程,响应速度更快,有利于更精准地实现显示同步。再次,本实施例中的方法不仅能够实现外挂字幕与至少一个视频帧的同步显示,还能够控制显示视频帧和外挂字幕的时间与***的主时钟时间同步,有利于进一步优化同步。再次,通过文本显示控件直接显示文本,不需要在移动设备的本地服务层将文本转化成图片,进而将图片与视频图像进行匹配,有利于降低成本,文本显示控件中还可供设置字幕显示位置、字幕颜色、字幕大小等字幕属性,提供了灵活调整外挂字幕的颜色、大小、显示位置等功能,通过文本显示控件直接显示文本,使外挂字幕按照预先设置好的字幕属性进行显示,有利于控制外挂字幕的显示效果。进一步地,本实施例中的外挂字幕显示方法,巧妙地利用移动设备的操作***的文本显示性能,通过操作***提供的文本显示控件显示外挂字幕,本方法可方便地应用于如ijkplayer、ffplay等视频播放器的原有流程中,实现在保证各视频播放器原有性能的前提下达到较好的外挂字幕显示效果,且还能实现设置字幕属性的功能拓展。
如图8所示,本申请实施例还提供了一种外挂字幕显示装置800。外挂字幕显示装置800应用于视频播放器,外挂字幕显示装置800包括获取模块801、调用模块802和显示模块803。获取模块801,用于获取外挂字幕及外挂字幕的字幕起止时间,字幕起止时间是指开始显示外挂字幕的时间和结束显示外挂字幕的时间。调用模块802,用于在至少一个视频帧的视频起止时间属于字幕起止时间所形成的时间区间内的情况下,在开始显示至少一个视频帧时调用回调函数,视频起止时间是指开始显示视频帧的时间和结束显示视频帧的时间,回调函数用于调用视频播放器的用户界面的显示组件的显示功能。显示模块803,用于在显示至少一个视频帧时,通过回调函数所调用的显示功能显示外挂字幕。
在本实施例中,一方面,在需要显示外挂字幕时,通过回调函数所调用的显示功能,将与至少一个视频帧的内容对应的外挂字幕显示出来,即实现了外挂字幕的显示。另一方面,在显示至少一个视频帧时,调用回调函数,通过回调函数控制显示对应的外挂字幕,则实现了外挂字幕与至少一个视频帧的同步显示,提升了同步的精准度,还有利于提升同步显示视频帧与外挂字幕所带给用户的观看体验。
在其中一个实施例中,上述获取模块801包括创建单元和获取单元。创建单元,用于创建并启动外挂字幕的读线程。获取单元,用于通过读线程,从字幕网址中获取外挂字幕及外挂字幕的字幕起止时间,字幕网址是外挂字幕及字幕起止时间的存储路径。其中,在获取完毕需要显示的外挂字幕及字幕起止时间的情况下,结束读线程。
在本实施例中,创建并启动外挂字幕的读线程,能够获取需要显示的外挂字幕。并且,创建并启动一个只需获取外挂字幕的读线程,无需用于显示外挂字幕,有利于减少对内存和资源的占用,有利于节约时间和空间成本。
在其中一个实施例中,上述获取单元还用于,解析字幕网址,得到字幕流;对字幕流解封装,得到字幕压缩数据;对字幕压缩数据解码,得到外挂字幕及外挂字幕的字幕起止时间。
在本实施例中,通过外挂字幕的读线程,视频播放器对字幕网址进行解析以直接获取字幕流,进而,依次对字幕流进行解封装、解码,以获取外挂字幕及外挂字幕的字幕起止时间。
在其中一个实施例中,上述外挂字幕显示装置800还包括存放模块、启动模块和读取模块。存放模块,用于将外挂字幕及外挂字幕的字幕起止时间存放至字幕队列,字幕队列中按照开始显示外挂字幕的时间进行排序。启动模块,用于启动视频显示线程,视频显示线程用于读取视频帧及视频帧的视频起止时间并显示视频帧。读取模块,用于通过视频显示线程,读取字幕队列中的外挂字幕及外挂字幕的字幕起止时间。
在本实施例中,对线程进行优化,没有依赖创建独立的字幕显示线程,而是将同步操作与原有的视频显示线程合并,通过原有的视频显示线程实现外挂字幕与视频帧的同步显示。不仅有利于节约创建另一线程的内存和资源、节约时间和空间成本,使线程更简捷;在视频显示线程中直接读取视频帧和外挂字幕,并判断是否需要同步显示视频帧和外挂字幕,进而控制外挂字幕的显示,还简化了外挂字幕与视频帧同步显示的流程,响应速度更快,有利于更精准地实现显示同步。
在其中一个实施例中,上述存放模块包括第一存放单元和第二存放单元。第一存放单元,用于将外挂字幕及外挂字幕的字幕起止时间,存放至结构体中,得到字幕数据结构体。第二存放单元,用于将字幕数据结构体存放至字幕队列。上述读取模块还用于通过读取字幕队列中的字幕数据结构体,以读取外挂字幕及外挂字幕的字幕起止时间。
在本实施例中,以字幕数据结构体存储外挂字幕及外挂字幕的字幕起止时间等不同类型的数据,有利于将每一行外挂字幕的相关数据进行汇总,有利于提高读取字幕队列中每一行外挂字幕的便利性。
在其中一个实施例中,上述显示模块803包括显示单元和清除单元。显示单元,用于在开始显示至少一个视频帧时,通过回调函数所调用的显示功能,显示外挂字幕。清除单元,用于在显示完毕至少一个视频帧时,通过回调函数所调用的显示组件的清除功能,清除外挂字幕。
在本实施例中,在开始显示至少一个视频帧时,通过回调函数控制开始显示对应的外挂字幕;在显示完毕至少一个视频帧时,通过回调函数控制结束显示对应的外挂字幕,实现了外挂字幕与至少一个视频帧的更精准的同步显示。
在其中一个实施例中,上述显示模块803还用于,将主时钟时间作为显示至少一个视频帧和外挂字幕的时间参考标准,在显示至少一个视频帧时,通过回调函数所调用的显示功能,显示外挂字幕。
本实施例中的装置,不仅能够实现外挂字幕与至少一个视频帧的同步显示,还能够控制显示视频帧和外挂字幕的时间与***的主时钟时间同步,有利于进一步优化同步。
在其中一个实施例中,上述显示模块803还用于,在显示至少一个视频帧时,通过回调函数所调用的显示功能,将外挂字幕按照文本显示控件中的字幕属性,显示在文本显示控件中,字幕属性包括字幕显示位置、字幕颜色、字幕大小中的至少一个。
在本实施例中,通过调用回调函数及操作***提供文本显示控件,将外挂字幕以文本的形式直接显示在移动设备的用户界面,不需要在移动设备的本地服务层将文本转化成图片,进而将图片与视频图像进行匹配。相较于做文本和图片的转化,通过文本显示控件直接显示文本有利于降低成本。除此以外,文本显示控件中可供设置字幕显示位置、字幕颜色、字幕大小等字幕属性,提供了灵活调整外挂字幕的颜色、大小、显示位置等功能,通过文本显示控件直接显示文本,使外挂字幕按照预先设置好的字幕属性进行显示,有利于控制外挂字幕的显示效果。进一步地,本实施例中的装置,巧妙地利用移动设备的操作***的文本显示性能,通过操作***提供的文本显示控件显示外挂字幕,本装置可方便地应用于如ijkplayer、ffplay等视频播放器的原有流程中,实现在保证各视频播放器原有性能的前提下达到较好的外挂字幕显示效果,且还能实现设置字幕属性的功能拓展。
关于各名词的解释可以参照前述方法实施例中的相关描述,在此不再详述。
需要说明的是,上述外挂字幕显示装置800的具体执行过程可以参见图1-图7所示的实施例的具体说明,在此不进行赘述。
上述外挂字幕显示装置800中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
如图9所示,本申请实施例还提供了一种计算机设备900。示例性的,计算机设备900可以包括处理器901、通信接口902、通信总线903以及存储器904。具体的,计算机设备900可以包括:
至少一个处理器901,例如CPU,至少一个通信接口902,存储器904,至少一个通信总线903。其中,通信总线903用于实现这些组件之间的连接通信。通信接口902可选的可以包括标准的有线接口、无线接口(如WI-FI接口或蓝牙接口等)。存储器904可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器904可选的还可以是至少一个位于远离前述处理器901的存储装置。如图9所示,作为一种计算机存储介质的存储器904中可以包括操作***和程序指令。
示例性的,处理器901可以用于实现上述图8中的获取模块801、调用模块802和显示模块803所执行的步骤或方法。
可理解的,以上的方式仅为示例,也可以由处理器901以及上述计算机设备900中的其他模块配合执行上述图8中的获取模块801、调用模块802和显示模块803所执行的步骤或方法,本文对此不做限定。
在图9所示的计算机设备900中,处理器901可以用于加载存储器904中存储的程序指令,并具体执行以下操作:
获取外挂字幕及外挂字幕的字幕起止时间,字幕起止时间是指开始显示外挂字幕的时间和结束显示外挂字幕的时间;
在至少一个视频帧的视频起止时间属于字幕起止时间所形成的时间区间内的情况下,在开始显示至少一个视频帧时调用回调函数,视频起止时间是指开始显示视频帧的时间和结束显示视频帧的时间,回调函数用于调用视频播放器的用户界面的显示组件的显示功能;
在显示至少一个视频帧时,通过回调函数所调用的显示功能显示外挂字幕。
处理器901还可以具体执行以下操作:
创建并启动外挂字幕的读线程;
通过读线程,解析字幕网址,得到字幕流;其中,字幕网址是外挂字幕及字幕起止时间的存储路径;
对字幕流解封装,得到字幕压缩数据;
对字幕压缩数据解码,得到外挂字幕及外挂字幕的字幕起止时间;其中,字幕起止时间是指开始显示外挂字幕的时间和结束显示外挂字幕的时间;
其中,在获取完毕需要显示的外挂字幕及字幕起止时间的情况下,结束读线程;
将外挂字幕及外挂字幕的字幕起止时间,存放至结构体中,得到字幕数据结构体;
将字幕数据结构体存放至字幕队列,字幕队列中按照开始显示外挂字幕的时间进行排序;
启动视频显示线程,视频显示线程用于读取视频帧及视频帧的视频起止时间并显示视频帧;其中,视频起止时间是指开始显示视频帧的时间和结束显示视频帧的时间;
通过视频显示线程,通过读取字幕队列中的字幕数据结构体,以读取外挂字幕及外挂字幕的字幕起止时间;
在至少一个视频帧的视频起止时间属于字幕起止时间所形成的时间区间内的情况下,在开始显示至少一个视频帧时调用回调函数;其中,回调函数用于调用视频播放器的用户界面的显示组件的显示功能;
将主时钟时间作为显示至少一个视频帧和外挂字幕的时间参考标准,在开始显示至少一个视频帧时,通过回调函数所调用的显示功能,将外挂字幕按照文本显示控件中的字幕属性,显示在文本显示控件中;其中,字幕属性包括字幕显示位置、字幕颜色、字幕大小中的至少一个;
在显示完毕至少一个视频帧时,通过回调函数所调用的显示组件的清除功能,清除外挂字幕。
关于各名词的解释可以参照前述方法实施例中的相关描述,在此不再详述。
需要说明的是,具体执行过程可以参见图1至图7所示的实施例的具体说明,在此不进行赘述。
本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质可以存储有多条指令,上述指令适于由处理器加载并执行如上述图1至图7所示的实施例的方法步骤,具体执行过程可以参见图1至图7所示实施例的具体说明,在此不进行赘述。
上述实施例中所用,根据上下文,术语“当…时”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“若检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (11)
1.一种外挂字幕显示方法,其特征在于,所述方法应用于视频播放器,所述方法包括:
获取外挂字幕及所述外挂字幕的字幕起止时间,所述字幕起止时间是指开始显示所述外挂字幕的时间和结束显示所述外挂字幕的时间;
将所述外挂字幕及所述外挂字幕的所述字幕起止时间存放至字幕队列,所述字幕队列中按照开始显示所述外挂字幕的时间进行排序;
启动视频显示线程,所述视频显示线程用于读取视频帧及所述视频帧的视频起止时间并显示所述视频帧,所述视频起止时间是指开始显示所述视频帧的时间和结束显示所述视频帧的时间;
通过所述视频显示线程,读取所述字幕队列中的所述外挂字幕及所述外挂字幕的所述字幕起止时间;
在至少一个视频帧的所述视频起止时间属于所述字幕起止时间所形成的时间区间内的情况下,在开始显示所述至少一个视频帧时调用回调函数,所述回调函数用于调用所述视频播放器的用户界面的显示组件的显示功能,所述回调函数还用于调用所述显示组件的编辑功能或更新功能;
在显示所述至少一个视频帧时,通过所述回调函数所调用的所述显示功能显示所述外挂字幕;
在显示所述外挂字幕的情况下,通过所述回调函数所调用的所述编辑功能编辑所述外挂字幕,或通过所述回调函数所调用的所述更新功能更新所述外挂字幕。
2.根据权利要求1所述的方法,其特征在于,所述获取外挂字幕及所述外挂字幕的字幕起止时间,包括:
创建并启动所述外挂字幕的读线程;
通过所述读线程,从字幕网址中获取所述外挂字幕及所述外挂字幕的所述字幕起止时间,所述字幕网址是所述外挂字幕及所述字幕起止时间的存储路径;
其中,在获取完毕需要显示的所述外挂字幕及所述字幕起止时间的情况下,结束所述读线程。
3.根据权利要求2所述的方法,其特征在于,所述从字幕网址中获取所述外挂字幕及所述外挂字幕的所述字幕起止时间,包括:
解析所述字幕网址,得到字幕流;
对所述字幕流解封装,得到字幕压缩数据;
对所述字幕压缩数据解码,得到所述外挂字幕及所述外挂字幕的所述字幕起止时间。
4.根据权利要求1所述的方法,其特征在于,所述将所述外挂字幕及所述外挂字幕的所述字幕起止时间存放至字幕队列,包括:
将所述外挂字幕及所述外挂字幕的所述字幕起止时间,存放至结构体中,得到字幕数据结构体;
将所述字幕数据结构体存放至所述字幕队列;
所述读取所述字幕队列中的所述外挂字幕及所述外挂字幕的所述字幕起止时间,包括:
通过读取所述字幕队列中的所述字幕数据结构体,以读取所述外挂字幕及所述外挂字幕的所述字幕起止时间。
5.根据权利要求1所述的方法,其特征在于,所述在显示所述至少一个视频帧时,通过所述回调函数所调用的所述显示功能显示所述外挂字幕,包括:
在开始显示所述至少一个视频帧时,通过所述回调函数所调用的所述显示功能,显示所述外挂字幕;
在显示完毕所述至少一个视频帧时,通过所述回调函数所调用的所述显示组件的清除功能,清除所述外挂字幕。
6.根据权利要求1所述的方法,其特征在于,所述在显示所述至少一个视频帧时,通过所述回调函数所调用的所述显示功能显示所述外挂字幕,包括:
将主时钟时间作为显示所述至少一个视频帧和所述外挂字幕的时间参考标准,在显示所述至少一个视频帧时,通过所述回调函数所调用的所述显示功能,显示所述外挂字幕。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述在显示所述至少一个视频帧时,通过所述回调函数所调用的所述显示功能显示所述外挂字幕,包括:
在显示所述至少一个视频帧时,通过所述回调函数所调用的所述显示功能,将所述外挂字幕按照文本显示控件中的字幕属性,显示在所述文本显示控件中,所述字幕属性包括字幕显示位置、字幕颜色、字幕大小中的至少一个。
8.一种外挂字幕显示装置,其特征在于,所述装置应用于视频播放器,所述装置包括:
获取模块,用于获取所述外挂字幕及所述外挂字幕的字幕起止时间,所述字幕起止时间是指开始显示所述外挂字幕的时间和结束显示所述外挂字幕的时间;
存放模块,用于将所述外挂字幕及所述外挂字幕的所述字幕起止时间存放至字幕队列,所述字幕队列中按照开始显示所述外挂字幕的时间进行排序;
启动模块,用于启动视频显示线程,所述视频显示线程用于读取视频帧及所述视频帧的视频起止时间并显示所述视频帧,所述视频起止时间是指开始显示所述视频帧的时间和结束显示所述视频帧的时间;
读取模块,用于通过所述视频显示线程,读取所述字幕队列中的所述外挂字幕及所述外挂字幕的所述字幕起止时间;
调用模块,用于在至少一个视频帧的所述视频起止时间属于所述字幕起止时间所形成的时间区间内的情况下,在开始显示所述至少一个视频帧时调用回调函数,所述回调函数用于调用所述视频播放器的用户界面的显示组件的显示功能,所述回调函数还用于调用所述显示组件的编辑功能或更新功能;
显示模块,用于在显示所述至少一个视频帧时,通过所述回调函数所调用的所述显示功能显示所述外挂字幕;还用于在显示所述外挂字幕的情况下,通过所述回调函数所调用的所述编辑功能编辑所述外挂字幕,或通过所述回调函数所调用的所述更新功能更新所述外挂字幕。
9.一种计算机设备,其特征在于,包括:存储器、处理器,其中,所述存储器存储有程序指令;所述程序指令被所述处理器执行时,使所述处理器执行如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序;当所述计算机程序在一个或多个处理器上运行时,执行如权利要求1至7中任一项所述的方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序或指令;在所述计算机程序或指令在计算机上运行的情况下,使得所述计算机执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311379867.8A CN117336563B (zh) | 2023-10-23 | 2023-10-23 | 外挂字幕显示方法、装置、设备、介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311379867.8A CN117336563B (zh) | 2023-10-23 | 2023-10-23 | 外挂字幕显示方法、装置、设备、介质及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117336563A CN117336563A (zh) | 2024-01-02 |
CN117336563B true CN117336563B (zh) | 2024-06-25 |
Family
ID=89295135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311379867.8A Active CN117336563B (zh) | 2023-10-23 | 2023-10-23 | 外挂字幕显示方法、装置、设备、介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117336563B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102655571A (zh) * | 2011-03-01 | 2012-09-05 | 上海清鹤数码科技有限公司 | 基于嵌入式平台的数字电视流媒体中间件多字幕显示组件 |
CN107396203A (zh) * | 2017-09-06 | 2017-11-24 | 深圳市视维科技股份有限公司 | 一种基于IJKPlayer外挂字幕的方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982832B (zh) * | 2012-11-24 | 2015-05-27 | 安徽科大讯飞信息科技股份有限公司 | 一种在线卡拉ok伴奏、人声与字幕的同步方法 |
CN103117077A (zh) * | 2013-01-17 | 2013-05-22 | 广东欧珀移动通信有限公司 | 一种蓝光播放器碟片外挂字幕显示***及方法 |
CN106899875A (zh) * | 2017-02-06 | 2017-06-27 | 合网络技术(北京)有限公司 | 外挂字幕的显示控制方法及装置 |
CN106804011B (zh) * | 2017-02-10 | 2021-03-30 | 深圳创维数字技术有限公司 | 一种播放视频时加载字幕文件的方法及*** |
US11295497B2 (en) * | 2019-11-25 | 2022-04-05 | International Business Machines Corporation | Dynamic subtitle enhancement |
CN115119030A (zh) * | 2021-03-19 | 2022-09-27 | 海信视像科技股份有限公司 | 一种字幕的处理方法及装置 |
CN115623275A (zh) * | 2022-10-18 | 2023-01-17 | Vidaa国际控股(荷兰)公司 | 一种字幕显示方法及显示设备 |
-
2023
- 2023-10-23 CN CN202311379867.8A patent/CN117336563B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102655571A (zh) * | 2011-03-01 | 2012-09-05 | 上海清鹤数码科技有限公司 | 基于嵌入式平台的数字电视流媒体中间件多字幕显示组件 |
CN107396203A (zh) * | 2017-09-06 | 2017-11-24 | 深圳市视维科技股份有限公司 | 一种基于IJKPlayer外挂字幕的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117336563A (zh) | 2024-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7529236B2 (ja) | インタラクティブ情報処理方法、装置、機器、及び媒体 | |
EP3866477A1 (en) | Video processing method and apparatus, electronic device, and computer-readable medium | |
US7702996B2 (en) | Apparatus and method for converting multimedia contents | |
CN111050201B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN106804003B (zh) | 基于ffmpeg的视频编辑方法及装置 | |
CN113259740A (zh) | 一种多媒体处理方法、装置、设备及介质 | |
US20080240683A1 (en) | Method and system to reproduce contents, and recording medium including program to reproduce contents | |
US20090007208A1 (en) | Program, data processing method, and system of same | |
EP3866481A1 (en) | Audio/video switching method and apparatus, and computer device and readable storage medium | |
KR100340169B1 (ko) | 자바를 이용한 동적 멀티미디어 웹 카타로깅 시스템 및 그 방법 | |
CN113886612A (zh) | 一种多媒体浏览方法、装置、设备及介质 | |
CN113507637A (zh) | 媒体文件处理方法、装置、设备、可读存储介质及产品 | |
CN113207044A (zh) | 视频处理方法、装置、电子设备和存储介质 | |
CN114095784A (zh) | H.265格式视频流转码播放方法、***、设备及介质 | |
CN115767131A (zh) | 云导播方法、装置、设备以及计算机存储介质 | |
CN113992926B (zh) | 界面显示方法、装置、电子设备和存储介质 | |
US20240119970A1 (en) | Method and apparatus for multimedia resource clipping scenario, device and storage medium | |
CN114640874A (zh) | 字幕同步方法、装置、机顶盒及计算机可读存储介质 | |
JP2021044669A (ja) | 情報処理装置およびプログラム | |
CN117336563B (zh) | 外挂字幕显示方法、装置、设备、介质及程序产品 | |
CN113691862B (zh) | 视频处理方法、用于视频播放的电子设备和视频播放*** | |
CN113271487B (zh) | 音视频同步播放方法、装置、***、程序产品及存储介质 | |
US20020194354A1 (en) | Displaying image data | |
CN112118473B (zh) | 视频弹幕显示方法、装置、计算机设备及可读存储介质 | |
CN113891108A (zh) | 字幕优化方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |