CN106331828B - 根据画面调整字幕的方法及*** - Google Patents
根据画面调整字幕的方法及*** Download PDFInfo
- Publication number
- CN106331828B CN106331828B CN201610695236.0A CN201610695236A CN106331828B CN 106331828 B CN106331828 B CN 106331828B CN 201610695236 A CN201610695236 A CN 201610695236A CN 106331828 B CN106331828 B CN 106331828B
- Authority
- CN
- China
- Prior art keywords
- display area
- subtitle
- font size
- width
- video pictures
- 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
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/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
-
- 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/485—End-user interface for client configuration
- H04N21/4858—End-user interface for client configuration for modifying screen layout parameters, e.g. fonts, size of the windows
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Controls And Circuits For Display Device (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开根据画面调整字幕的方法及***,方法包括:设置视频画面中的字幕显示参数,实时获取视频画面的宽度,根据视频画面的宽度计算字幕显示去的宽度,根据字幕显示区域的宽度计算字幕显示区域所能容纳的最大字号,根据所述字幕显示区域所能容纳的最大字号以及当前字幕显示区域的宽度,计算当前字幕内容所需显示的行数,然后计算每行字幕的显示位置,最后根据字幕显示区域所能容纳的最大字号、当前字幕内容所需显示的行数、以及每行字幕的显示位置,将字幕内容显示到所述字幕显示区域。如此方式,能够根据视频画面宽度适应性调整字幕大小,而不会使得字幕随视频的缩放变得过大或过小,从而使得字幕满足用户观看需求,提升了用户体验。
Description
技术领域
本申请涉及视频字幕播放技术领域,具体地说,涉及一种根据画面调整字幕的方法及***。
背景技术
在视频播放过程中,字幕作为一种便于用户在视频语音之外接收视频内容信息的形式,方便用户观看视频。目前的很多Mac下的播放器,其字幕都是通过人工控制合成到视频帧画面中的,在视频画面进行缩放时,字幕的字体也跟随画面进行缩放,如果画面缩得过小,字幕也会跟着缩得过小,且有的字幕合成到画面中后也不能自动换行,不利于根据画面缩放的需要调整字幕,影响用户观看效果。而且现有的Mac下的XCode控件CATextlayer不能进行字幕进行底端对齐,利用这个控件实现的字幕显示也会有无法底端对齐的问题。
现有技术中,在画面缩放的过程中,字幕不能跟随视频画面内容进行适应性变化,只会根据比例进行变化,当视频过大或过小时,字幕也会过大或过小,用户体验效果极差。如果mac下播放器是使用XCode下的CATextlayer实现的,则字幕无法底端对齐,采用的是顶端对齐,这样字幕行数变化时就会感觉视觉有混乱,不符合正常的字幕习惯,同样给用户带来了不良的视觉效果。
发明内容
有鉴于此,本申请所要解决的技术问题是提供了一种根据画面调整字幕方法及***,能够根据视频画面宽度适应性调整字幕大小,而不会使得字幕随视频的缩放变得过大或过小,从而使得字幕满足用户观看需求,提升了用户体验。
为了解决上述技术问题,本申请有如下技术方案:
一种根据画面调整字幕的方法,包括:
设置视频画面中的字幕显示参数,所述字幕显示参数至少包括:字幕显示区域上每行显示的最大字符数、最小显示字号、最大显示字号、字幕显示区域距视频画面左端的距离d1、字幕显示区域距视频画面右端的距离d2、以及字幕显示区域距视频画面底端的距离d3;
实时获取视频画面的宽度d0,根据所述视频画面的宽度d0、所述字幕显示区域距视频画面左端的距离d1、以及所述字幕显示区域距视频画面右端的距离d2,计算字幕显示区域的宽度d4,d4=d0-d1-d2;
根据所述字幕显示区域的宽度、所述每行显示的最大字符数、所述最小显示字号和所述最大显示字号,计算所述字幕显示区域所能容纳的最大字号;
根据所述字幕显示区域所能容纳的最大字号以及当前字幕显示区域的宽度,计算当前字幕内容所需显示的行数;
根据所述字幕显示区域所能容纳的最大字号、所述当前字幕内容所需显示的行数、以及所述字幕显示区域距视频画面底端的距离,计算每行字幕的显示位置,使得靠近所述视频画面底端的第一行字幕底部与所述视频画面底端之间的距离保持为d3;
根据所述字幕显示区域所能容纳的最大字号、所述当前字幕内容所需显示的行数、以及所述每行字幕的显示位置,将字幕内容显示到所述字幕显示区域。
优选地,其中:
计算所述字幕显示区域所能容纳的最大字号,进一步为:
将字号设置为所述最小显示字号,利用ObjectC中属性字符串类提供的函数,计算当前字号下每个字符的宽度;
根据所述字幕显示区域的宽度和所述每个字符的宽度,计算所述字幕显示区域的宽度范围所能容纳的字符数;
判断所述字符数是否超过所述每行显示的最大字符数,若超过,则将字号加1,再计算对应的字符的宽度和所述字幕显示区域的宽度所能容纳的字符数,直至当前字号在当前字幕显示区域的宽度下每行显示的字符数小于等于所述最大字符数或当前字号达到所述最大显示字号,此时得到的字号为满足字号范围和所述每行显示的最大字符数下所述字幕显示区域所能容纳的最大字号。
优选地,其中:
计算当前字幕内容所需显示的行数,进一步为:
根据当前字号的大小,计算当前字号下,当前字幕内容的总宽度;
用计算出的所述字幕内容的总宽度除以所述字幕显示区域的宽度,得出当前字幕内容所需显示的行数。
优选地,其中:
计算每行字幕的显示位置,进一步为:
根据当前字号的大小,计算当前字号下,每行字幕的高度d5;
从视频画面底部开始从下至上数第1行字幕的底端距离所述视频画面底端的距离为所述字幕显示区域距视频画面底端的距离d3,第n行字幕的顶端距离所述视频画面底端的距离为d3+n*d5。
优选地,其中:
进一步包括:
将所述每行显示的最大字符数设置为40,将所述最小显示字号设置为22,将所述最大显示字号设置为50,将所述字幕显示区域距视频画面左端的距离d1设置为100个像素,将所述字幕显示区域距视频画面右端的距离d2设置为100个像素、将所述字幕显示区域距视频画面底端的距离d3设置为40个像素。
一种根据画面调整字幕的***,其特征在于,包括:参数设置模块、字幕显示区域宽度计算模块、字幕显示区域字号计算模块、字幕显示区域行数计算模块、字幕显示位置计算模块和字幕载入模块,
所述参数设置模块,用于设置视频画面中的字幕显示参数,所述字幕显示参数至少包括:字幕显示区域上每行显示的最大字符数、最小显示字号、最大显示字号、字幕显示区域距视频画面左端的距离d1、字幕显示区域距视频画面右端的距离d2、以及字幕显示区域距视频画面底端的距离d3;
所述字幕显示区域宽度计算模块,用于实时获取视频画面的宽度d0,根据所述视频画面的宽度d0、所述字幕显示区域距视频画面左端的距离d1、以及所述字幕显示区域距视频画面右端的距离d2,计算字幕显示区域的宽度d4,d4=d0-d1-d2;
所述字幕显示区域字号计算模块,用于根据所述字幕显示区域的宽度、所述每行显示的最大字符数、所述最小显示字号和所述最大显示字号,计算所述字幕显示区域所能容纳的最大字号;
所述字幕显示区域行数计算模块,用于根据所述字幕显示区域所能容纳的最大字号以及当前字幕显示区域的宽度,计算当前字幕内容所需显示的行数;
所述字幕显示位置计算模块,用于根据所述字幕显示区域所能容纳的最大字号、所述当前字幕内容所需显示的行数、以及所述字幕显示区域距视频画面底端的距离,计算每行字幕的显示位置,使得靠近所述视频画面底端的第一行字幕底部与所述视频画面底端之间的距离保持为d3;
所述字幕载入模块,用于根据所述字幕显示区域所能容纳的最大字号、所述当前字幕内容所需显示的行数、以及所述每行字幕的显示位置,将字幕内容显示到所述字幕显示区域。
优选地,其中:
所述字幕显示区域字号计算模块,进一步用于:
将字号设置为所述最小显示字号,利用ObjectC中属性字符串类提供的函数,计算当前字号下每个字符的宽度;
根据所述字幕显示区域的宽度和所述每个字符的宽度,计算所述字幕显示区域的宽度范围所能容纳的字符数;
判断所述字符数是否超过所述每行显示的最大字符数,若超过,则将字号加1,再计算对应的字符的宽度和所述字幕显示区域的宽度所能容纳的字符数,直至当前字号在当前字幕显示区域的宽度下每行显示的字符数小于等于所述最大字符数或当前字号达到所述最大显示字号,此时得到的字号为满足字号范围和所述每行显示的最大字符数下所述字幕显示区域所能容纳的最大字号。
优选地,其中:
所述字幕显示区域行数计算模块,进一步用于:
根据当前字号的大小,计算当前字号下,当前字幕内容的总宽度;
用计算出的所述字幕内容的总宽度除以所述字幕显示区域的宽度,得出当前字幕内容所需显示的行数。
优选地,其中:
所述字幕显示位置计算模块,进一步用于:
根据当前字号的大小,计算当前字号下,每行字幕的高度d5;
从视频画面底部开始从下至上数第1行字幕的底端距离所述视频画面底端的距离为所述字幕显示区域距视频画面底端的距离d3,第n行字幕的顶端距离所述视频画面底端的距离为d3+n*d5。
优选地,其中:
所述每行显示的最大字符数为40,所述最小显示字号为22,所述最大显示字号为50,所述字幕显示区域距视频画面左端的距离d1=100个像素,所述字幕显示区域距视频画面右端的距离d2=100个像素、所述字幕显示区域距视频画面底端的距离d3=40个像素。
与现有技术相比,本申请所述的方法及***,达到了如下效果:
第一,本发明所提供的根据画面调整字幕的方法及***,能够实时获取视频画面的宽度,并能根据视频画面的宽度实时调整字幕的字号和显示的行数,使得无论视频画面如何变化,字幕的字号始终处于最小显示字号和最大显示字号的范围内,避免了字幕随着画面的拉伸而变得过大或过小,使得字幕的大小随视频画面的变化始终处于较佳的字号范围内,满足用户的观看需求的同时有效提升了用户的体验效果。
第二,本发明所提供的根据画面调整字幕的方法及***,能够对字幕显示区域的位置进行设定,使得字幕显示时位置不会超过一定的范围,而且还能够使得无论显示几行字幕时,始终能够实现底部对齐,避免了显示行数有多行时,字幕显示无规则且混乱的现象,给用户带来良好的视觉体验效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本发明的所述一种根据画面调整字幕的方法的流程图;
图2为本发明的所述一种根据画面调整字幕的***的结构图;
图3为本发明的所述一种根据画面调整字幕的方法的实施例的流程图。
具体实施方式
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。
实施例1
参见图1所示为本申请所述一种根据画面调整字幕的方法的具体实施例,该方法包括:
步骤101、设置视频画面中的字幕显示参数,所述字幕显示参数至少包括:字幕显示区域上每行显示的最大字符数、最小显示字号、最大显示字号、字幕显示区域距视频画面左端的距离d1、字幕显示区域距视频画面右端的距离d2、以及字幕显示区域距视频画面底端的距离d3;
步骤102、实时获取视频画面的宽度d0,根据所述视频画面的宽度d0、所述字幕显示区域距视频画面左端的距离d1、以及所述字幕显示区域距视频画面右端的距离d2,计算字幕显示区域的宽度d4,d4=d0-d1-d2;
步骤103、根据所述字幕显示区域的宽度、所述每行显示的最大字符数、所述最小显示字号和所述最大显示字号,计算所述字幕显示区域所能容纳的最大字号;
步骤104、根据所述字幕显示区域所能容纳的最大字号以及当前字幕显示区域的宽度,计算当前字幕内容所需显示的行数;
步骤105、根据所述字幕显示区域所能容纳的最大字号、所述当前字幕内容所需显示的行数、以及所述字幕显示区域距视频画面底端的距离,计算每行字幕的显示位置,使得靠近所述视频画面底端的第一行字幕底部与所述视频画面底端之间的距离保持为d3;
步骤106、根据所述字幕显示区域所能容纳的最大字号、所述当前字幕内容所需显示的行数、以及所述每行字幕的显示位置,将字幕内容显示到所述字幕显示区域。
通过上述步骤101,设置字幕显示区域上每行字幕中能够显示的最大字符数,使得每行显示的字符数不大于该最大字符数。通过设置最小显示字号和最大显示字号,将字幕中文字的大小设置在该区间范围内,即使视频画面被拉伸或缩小,字幕中文字的大小也会始终保持在此范围内,不会随视频画面变得过大或过小,给观众良好的视觉体验效果。通过设置字幕显示区域距视频画面左端的距离d1、字幕显示区域距视频画面右端的距离d2、以及靠近视频画面底端的第一行字幕底部距视频画面底端的距离d3,将字幕显示区域控制在这些参数所限定的位置范围内,满足用户观看需求的同时提升用户体验效果。
上述步骤103中,计算所述字幕显示区域所能容纳的最大字号,进一步为:
将字号设置为所述最小显示字号,利用ObjectC中属性字符串类提供的函数计算当前字号下每个字符的宽度;
根据所述字幕显示区域的宽度和所述每个字符的宽度,计算所述字幕显示区域的宽度范围所能容纳的字符数,即用字幕显示区域的宽度除以每个字符的宽度,再取整即可得到字幕显示区域的宽度范围所能容纳的字符数;
判断所述字符数是否超过所述每行显示的最大字符数,若超过,则将字号加1,再计算对应的字符的宽度和所述字幕显示区域的宽度所能容纳的字符数,直至当前字号在当前字幕显示区域的宽度下每行显示的字符数小于等于所述最大字符数或当前字号达到所述最大显示字号,此时得到的字号为满足字号范围和所述每行显示的最大字符数下所述字幕显示区域所能容纳的最大字号。
通过上述方法,获得到了同时满足字号范围以及不超过每行显示的最大字符数这两个条件下的最大字号,并不会因为视频画面宽度过大或过小而造成字号过大或过小以致影响观看。
上述步骤104中,计算当前字幕内容所需显示的行数,进一步为:
根据当前字号的大小,计算当前字号下,当前字幕内容的总宽度,其中,当前字幕内容的总宽度为当前字号下各个字符的宽度之和;
用计算出的所述字幕内容的总宽度除以所述字幕显示区域的宽度,得出当前字幕内容所需显示的行数。例如,若计算出的字幕内容的总宽度为45,字幕显示区域的宽度为30,用45除以30的结果为1.5,则代表当前字幕内容所需显示的行数为2行。
上述步骤105中,计算每行字幕的显示位置,进一步为:
根据当前字号的大小,计算当前字号下,每行字幕的高度d5;
从视频画面底部开始从下至上数第1行字幕的底端距离所述视频画面底端的距离为所述字幕显示区域距视频画面底端的距离d3,第n行字幕的顶端距离所述视频画面底端的距离为d3+n*d5。
若字幕内容需分3行进行显示,那么从视频画面底部开始从下至上数第1行与视频画面底端的距离始终保持不变,为d3,第2行字幕的顶端与视频画面底端的距离为d3+2*d5,第3行顶端与视频画面底端的距离为d3+3*d5。
在字号和字幕显示位置均确定后,通过步骤106将字幕内容按照计算出的字号和位置在字幕显示区域进行显示即可。
本申请根据画面调整字幕的方法,通过上述步骤101,进一步将所述每行显示的最大字符数设置为40,将所述最小显示字号设置为22,将所述最大显示字号设置为50,将所述字幕显示区域距视频画面左端的距离d1设置为100个像素,将所述字幕显示区域距视频画面右端的距离d2设置为100个像素、将所述字幕显示区域距视频画面底端的距离d3设置为40个像素。通过这些参数的设置,将字幕的字号和位置设置在合理的位置,满足用户的观看需求,并能提升用户的视觉体验效果。
实施例2
参见图2所示为本申请所述一种根据画面调整字幕的***的具体实施例,该***包括:参数设置模块10、字幕显示区域宽度计算模块20、字幕显示区域字号计算模块30、字幕显示区域行数计算模块40、字幕显示位置计算模块50和字幕载入模块60,
所述参数设置模块10,用于设置视频画面中的字幕显示参数,所述字幕显示参数至少包括:字幕显示区域上每行显示的最大字符数、最小显示字号、最大显示字号、字幕显示区域距视频画面左端的距离d1、字幕显示区域距视频画面右端的距离d2、以及字幕显示区域距视频画面底端的距离d3;
所述字幕显示区域宽度计算模块20,用于实时获取视频画面的宽度d0,根据所述视频画面的宽度d0、所述字幕显示区域距视频画面左端的距离d1、以及所述字幕显示区域距视频画面右端的距离d2,计算字幕显示区域的宽度d4,d4=d0-d1-d2;
所述字幕显示区域字号计算模块30,用于根据所述字幕显示区域的宽度、所述每行显示的最大字符数、所述最小显示字号和所述最大显示字号,计算所述字幕显示区域所能容纳的最大字号;
所述字幕显示区域行数计算模块40,用于根据所述字幕显示区域所能容纳的最大字号以及当前字幕显示区域的宽度,计算当前字幕内容所需显示的行数;
所述字幕显示位置计算模块50,用于根据所述字幕显示区域所能容纳的最大字号、所述当前字幕内容所需显示的行数、以及所述字幕显示区域距视频画面底端的距离,计算每行字幕的显示位置,使得靠近所述视频画面底端的第一行字幕底端与所述视频画面底端之间的距离保持为d3;
所述字幕载入模块60,用于根据所述字幕显示区域所能容纳的最大字号、所述当前字幕内容所需显示的行数、以及所述每行字幕的显示位置,将字幕内容显示到所述字幕显示区域。
本申请中的参数设置模块10,能够设置字幕显示区域上每行字幕中能够显示的最大字符数,使得每行显示的字符数不大于该最大字符数;还能通过设置最小显示字号和最大显示字号,将字幕中文字的大小设置在该区间范围内,即使视频画面被拉伸或缩小,字幕中文字的大小也会始终保持在此范围内,不会随视频画面变得过大或过小,给观众良好的视觉体验效果。本申请中的参数设置模块10还通过设置字幕显示区域距视频画面左端的距离d1、字幕显示区域距视频画面右端的距离d2、以及字幕显示区域距视频画面底端的距离d3,将字幕显示区域控制在这些参数所限定的位置范围内,满足用户观看需求的同时提升用户体验效果。
上述字幕显示区域字号计算模块30,进一步用于:
将字号设置为所述最小显示字号,利用ObjectC中属性字符串类提供的函数,计算当前字号下每个字符的宽度;
根据所述字幕显示区域的宽度和所述每个字符的宽度,计算所述字幕显示区域的宽度范围所能容纳的字符数;
判断所述字符数是否超过所述每行显示的最大字符数,若超过,则将字号加1,再计算对应的字符的宽度和所述字幕显示区域的宽度所能容纳的字符数,直至当前字号在当前字幕显示区域的宽度下每行显示的字符数小于等于所述最大字符数或当前字号达到所述最大显示字号,此时得到的字号为满足字号范围和所述每行显示的最大字符数下所述字幕显示区域所能容纳的最大字号。
通过字幕显示区域字号计算模块30对字号的计算,获得到了同时满足字号范围以及不超过每行显示的最大字符数这两个条件下的最大字号,并不会因为视频画面宽度过大或过小而造成字号过大或过小以致影响观看。
上述字幕显示区域行数计算模块40,进一步用于:
根据当前字号的大小,计算当前字号下,当前字幕内容的总宽度,其中,当前字幕内容的总宽度为当前字号下各个字符的宽度之和;
用计算出的所述字幕内容的总宽度除以所述字幕显示区域的宽度,得出当前字幕内容所需显示的行数。例如,若计算出的字幕内容的总宽度为45,字幕显示区域的宽度为30,用45除以30的结果为1.5,则代表当前字幕内容所需显示的行数为2行。
上述字幕显示位置计算模块50,进一步用于:
根据当前字号的大小,计算当前字号下,每行字幕的高度d5;
从视频画面底部开始从下至上数第1行字幕的底端距离所述视频画面底端的距离为所述字幕显示区域距视频画面底端的距离d3,第n行字幕的顶端距离所述视频画面底端的距离为d3+n*d5。
若字幕内容需分3行进行显示,那么从视频画面底部开始从下至上数第1行与视频画面底端的距离始终保持不变,为d3,第2行字幕的顶端与视频画面底端的距离为d3+2*d5,第3行字幕的顶端与视频画面底端的距离为d3+3*d5。
优选地,本申请中的参数设置模块10对各项参数的设置情况如下:
每行显示的最大字符数为40,最小显示字号为22,最大显示字号为50,字幕显示区域距视频画面左端的距离d1=100个像素,字幕显示区域距视频画面右端的距离d2=100个像素、字幕显示区域距视频画面底端的距离d3=40个像素。
实施例3
以下提供一种本发明根据画面调整字幕的方法的应用实施例,参见图3,具体包括:
步骤201、设定字幕显示参数。包括设定字幕每行显示的范围,此处将每行最多显示的字符数设为38个(中文和英文皆如此),设定最小显示字号为18号,最大显示字号为40号,设定字幕区域距视频画面左端的距离为80个像素,距视频画面右端的距离为80个像素,距视频画面底端为50个像素。
对字幕每行的显示范围、最小显示字号和最大显示字号进行设定,使得字幕在跟随画面变化的同时,避免字幕随着画面拉伸缩小而过大或过小。此外,通过设定字幕区域距视频画面左端、右端和底端的距离,就可以保证字幕显示时,位置不会超过一定范围或太靠近底端,影响观看效果。
步骤202、在显示一条字幕时,计算能够显示字幕区域的宽度,即(视频画面宽度-字幕区域距视频画面左端的距离80个像素-字幕区域距视频画面右端的距离80个像素)。
步骤203、计算字幕区域宽度可以容纳多大字号的字幕。首先将字号设置为最小字号18号,然后利用ObjectC提供的方法计算当前字号每个字符的宽度,继而计算出当前的字幕区域宽度能够容纳多少个字符。如果超过最多显示的38个,则字号加1,再继续做同样的判断。这样字号不断加1,不断判断,直至当前字号达到最大值40号,或者当前字号在当前宽度下显示的字符数小于38个。这样最终得到的字号,就是在满足字号范围和每行显示不超过38个字这两个条件下,最大的字号,并不会因为画面宽度过大或过小而造成字号过大或过小以致影响观看。
步骤204、确定了字号之后,根据当前字号的大小,计算当前字号下,当前字幕内容的宽度,再用当前字幕内容的宽度除以当前字幕区域的宽度,计算当前内容需要分几行。
步骤205、然后再根据当前字号计算这些行所需要的高度。由于CATextLayer只能设置其顶部距视频画面窗口底部的距离,所以将这个高度加上距底距离(50个像素),将这个值设定为CATextLayer顶部距离画面窗口底端的距离。这样每次都计算高度,算到CATextLayer顶部位置,可以间接地保证CATextLayer底部距离画面窗口底端的距离不变,达到CATextLayer自身没有的底部对齐的效果。
步骤206、最后在字号和位置都确定后,将文字显示到设定好的CATextLayer区域即可。
本申请所提供的上述方法,能够根据视频画面的宽度调整字幕显示的大小,使字幕的大小保持在最小显示字号和最大显示字号所规定的范围内,避免由于视频宽度过大或过小而导致显示的字幕过大或过小,影响用户的正常观看。另外,本申请所提供方案能够根据字幕内容调整CATextLayer位置,让没有底部对齐的控件CATextLayer间接具有了底部对齐的功能,达到了底部对齐的效果,使得通过CATextLayer实现的字幕显示更符合用户习惯,给用户带来更好的视觉效果。
本实施例将每行显示的最大字符数设置为38,将最小显示字号设置为18,将最大显示字号设置为40,将字幕显示区域距视频画面左端的距离d1设置为80个像素,将字幕显示区域距视频画面右端的距离d2设置为80个像素、将字幕显示区域距视频画面底端的距离d3设置为50个像素。本申请将这些参数设为以上值,使得无论视频画面如何调整也能保证字幕能够正常显示,满足用户的观看需求,而且,也能使得字幕始终保持底部对齐,给用户带来良好的视觉体验效果。
当然,本申请所设置的各项参数均可根据实际情况进行优化调整,例如视频画面中字幕显示区域上每行显示的最大字符数、最小显示字号、最大显示字号、字幕显示区域距视频画面左端的距离、字幕显示区域距视频画面右端的距离、以及字幕显示区域距视频画面底端的距离等均可按照用户需求或根据视频实际显示效果进行适应性调整。
通过以上各实施例可知,本申请存在的有益效果是:
第一,本发明所提供的根据画面调整字幕的方法及***,能够实时获取视频画面的宽度,并能根据视频画面的宽度实时调整字幕的字号和显示的行数,使得无论视频画面如何变化,字幕的字号始终处于最小显示字号和最大显示字号的范围内,避免了字幕随着画面的拉伸而变得过大或过小,使得字幕的大小随视频画面的变化始终处于较佳的字号范围内,满足用户的观看需求的同时有效提升了用户的体验效果。
第二,本发明所提供的根据画面调整字幕的方法及***,能够对字幕显示区域的位置进行设定,使得字幕显示时位置不会超过一定的范围,而且还能够使得无论显示几行字幕时,始终能够实现底部对齐,避免了显示行数有多行时,字幕显示无规则且混乱的现象,给用户带来良好的视觉体验效果。
本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。
Claims (10)
1.一种根据画面调整字幕的方法,包括:
设置视频画面中的字幕显示参数,所述字幕显示参数至少包括:字幕显示区域上每行显示的最大字符数、最小显示字号、最大显示字号、字幕显示区域距视频画面左端的距离d1、字幕显示区域距视频画面右端的距离d2、以及字幕显示区域距视频画面底端的距离d3;
实时获取视频画面的宽度d0,根据所述视频画面的宽度d0、所述字幕显示区域距视频画面左端的距离d1、以及所述字幕显示区域距视频画面右端的距离d2,计算字幕显示区域的宽度d4,d4=d0-d1-d2;
根据所述字幕显示区域的宽度、所述每行显示的最大字符数、所述最小显示字号和所述最大显示字号,计算所述字幕显示区域所能容纳的最大字号;
根据所述字幕显示区域所能容纳的最大字号以及当前字幕显示区域的宽度,计算当前字幕内容所需显示的行数;
根据所述字幕显示区域所能容纳的最大字号、所述当前字幕内容所需显示的行数、以及所述字幕显示区域距视频画面底端的距离,计算每行字幕的显示位置,使得靠近所述视频画面底端的第一行字幕底部与所述视频画面底端之间的距离保持与d3相等;
根据所述字幕显示区域所能容纳的最大字号、所述当前字幕内容所需显示的行数、以及所述每行字幕的显示位置,将字幕内容显示到所述字幕显示区域。
2.根据权利要求1所述根据画面调整字幕的方法,其特征在于,
计算所述字幕显示区域所能容纳的最大字号,进一步为:
将字号设置为所述最小显示字号,利用ObjectC中属性字符串类提供的函数,计算当前字号下每个字符的宽度;
根据所述字幕显示区域的宽度和所述每个字符的宽度,计算所述字幕显示区域的宽度范围所能容纳的字符数;
判断所述字符数是否超过所述每行显示的最大字符数,若超过,则将字号加1,再计算对应的字符的宽度和所述字幕显示区域的宽度所能容纳的字符数,直至当前字号在当前字幕显示区域的宽度下每行显示的字符数小于等于所述最大字符数或当前字号达到所述最大显示字号,此时得到的字号为满足字号范围和所述每行显示的最大字符数下所述字幕显示区域所能容纳的最大字号。
3.根据权利要求1所述根据画面调整字幕的方法,其特征在于,
计算当前字幕内容所需显示的行数,进一步为:
根据当前字号的大小,计算当前字号下,当前字幕内容的总宽度;
用计算出的所述字幕内容的总宽度除以所述字幕显示区域的宽度,得出当前字幕内容所需显示的行数。
4.根据权利要求1所述根据画面调整字幕的方法,其特征在于,
计算每行字幕的显示位置,进一步为:
根据当前字号的大小,计算当前字号下,每行字幕的高度d5;
从靠近所述视频画面底端的第一行字幕底部与所述视频画面底端之间的距离为所述字幕显示区域距视频画面底端的距离d3,第n行字幕的顶端距离所述视频画面底端的距离为d3+n*d5。
5.根据权利要求1所述根据画面调整字幕的方法,其特征在于,进一步包括:
将所述每行显示的最大字符数设置为40,将所述最小显示字号设置为22,将所述最大显示字号设置为50,将所述字幕显示区域距视频画面左端的距离d1设置为100个像素,将所述字幕显示区域距视频画面右端的距离d2设置为100个像素、将所述字幕显示区域距视频画面底端的距离d3设置为40个像素。
6.一种根据画面调整字幕的***,其特征在于,包括:参数设置模块、字幕显示区域宽度计算模块、字幕显示区域字号计算模块、字幕显示区域行数计算模块、字幕显示位置计算模块和字幕载入模块,
所述参数设置模块,用于设置视频画面中的字幕显示参数,所述字幕显示参数至少包括:字幕显示区域上每行显示的最大字符数、最小显示字号、最大显示字号、字幕显示区域距视频画面左端的距离d1、字幕显示区域距视频画面右端的距离d2、以及字幕显示区域距视频画面底端的距离d3;
所述字幕显示区域宽度计算模块,用于实时获取视频画面的宽度d0,根据所述视频画面的宽度d0、所述字幕显示区域距视频画面左端的距离d1、以及所述字幕显示区域距视频画面右端的距离d2,计算字幕显示区域的宽度d4,d4=d0-d1-d2;
所述字幕显示区域字号计算模块,用于根据所述字幕显示区域的宽度、所述每行显示的最大字符数、所述最小显示字号和所述最大显示字号,计算所述字幕显示区域所能容纳的最大字号;
所述字幕显示区域行数计算模块,用于根据所述字幕显示区域所能容纳的最大字号以及当前字幕显示区域的宽度,计算当前字幕内容所需显示的行数;
所述字幕显示位置计算模块,用于根据所述字幕显示区域所能容纳的最大字号、所述当前字幕内容所需显示的行数、以及所述字幕显示区域距视频画面底端的距离,计算每行字幕的显示位置,使得靠近所述视频画面底端的第一行字幕底部与所述视频画面底端之间的距离保持与d3相等;
所述字幕载入模块,用于根据所述字幕显示区域所能容纳的最大字号、所述当前字幕内容所需显示的行数、以及所述每行字幕的显示位置,将字幕内容显示到所述字幕显示区域。
7.根据权利要求6所述根据画面调整字幕的***,其特征在于,
所述字幕显示区域字号计算模块,进一步用于:
将字号设置为所述最小显示字号,利用ObjectC中属性字符串类提供的函数,计算当前字号下每个字符的宽度;
根据所述字幕显示区域的宽度和所述每个字符的宽度,计算所述字幕显示区域的宽度范围所能容纳的字符数;
判断所述字符数是否超过所述每行显示的最大字符数,若超过,则将字号加1,再计算对应的字符的宽度和所述字幕显示区域的宽度所能容纳的字符数,直至当前字号在当前字幕显示区域的宽度下每行显示的字符数小于等于所述最大字符数或当前字号达到所述最大显示字号,此时得到的字号为满足字号范围和所述每行显示的最大字符数下所述字幕显示区域所能容纳的最大字号。
8.根据权利要求6所述根据画面调整字幕的***,其特征在于,
所述字幕显示区域行数计算模块,进一步用于:
根据当前字号的大小,计算当前字号下,当前字幕内容的总宽度;
用计算出的所述字幕内容的总宽度除以所述字幕显示区域的宽度,得出当前字幕内容所需显示的行数。
9.根据权利要求6所述根据画面调整字幕的***,其特征在于,
所述字幕显示位置计算模块,进一步用于:
根据当前字号的大小,计算当前字号下,每行字幕的高度d5;
从靠近所述视频画面底端的第一行字幕底部与所述视频画面底端之间的距离为所述字幕显示区域距视频画面底端的距离d3,第n行字幕的顶端距离所述视频画面底端的距离为d3+n*d5。
10.根据权利要求6所述根据画面调整字幕的***,其特征在于,
所述每行显示的最大字符数为40,所述最小显示字号为22,所述最大显示字号为50,所述字幕显示区域距视频画面左端的距离d1=100个像素,所述字幕显示区域距视频画面右端的距离d2=100个像素、所述字幕显示区域距视频画面底端的距离d3=40个像素。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610695236.0A CN106331828B (zh) | 2016-08-19 | 2016-08-19 | 根据画面调整字幕的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610695236.0A CN106331828B (zh) | 2016-08-19 | 2016-08-19 | 根据画面调整字幕的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106331828A CN106331828A (zh) | 2017-01-11 |
CN106331828B true CN106331828B (zh) | 2019-02-05 |
Family
ID=57744616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610695236.0A Active CN106331828B (zh) | 2016-08-19 | 2016-08-19 | 根据画面调整字幕的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106331828B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284481B (zh) * | 2018-09-06 | 2021-11-19 | 郑州云海信息技术有限公司 | 一种提示文本处理方法、装置及计算机可读存储介质 |
CN110971952B (zh) * | 2018-09-29 | 2022-03-15 | 阿里巴巴(中国)有限公司 | 弹幕展示方法及装置 |
CN109982027A (zh) * | 2019-02-26 | 2019-07-05 | 视联动力信息技术股份有限公司 | 一种字幕显示参数的调整方法、装置和*** |
CN110351605B (zh) * | 2019-08-15 | 2021-05-25 | 海信电子科技(深圳)有限公司 | 字幕处理方法及装置 |
CN110418162B (zh) * | 2019-08-20 | 2021-10-22 | 成都索贝数码科技股份有限公司 | 一种同时制作不同幅面比的短视频的方法 |
CN113542903A (zh) * | 2021-07-16 | 2021-10-22 | 思享智汇(海南)科技有限责任公司 | 一种支持字号自适应的字幕生成方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6452597B1 (en) * | 1999-08-24 | 2002-09-17 | Microsoft Corporation | Displaying text on a limited-area display surface |
CN101360193A (zh) * | 2008-09-04 | 2009-02-04 | 北京中星微电子有限公司 | 一种视频字幕处理装置及方法 |
CN102082931A (zh) * | 2009-11-30 | 2011-06-01 | 新奥特(北京)视频技术有限公司 | 一种自适应调整字幕区域的方法及装置 |
CN105025386A (zh) * | 2015-07-23 | 2015-11-04 | 无锡天脉聚源传媒科技有限公司 | 一种字幕处理方法及装置 |
CN105159868A (zh) * | 2015-09-01 | 2015-12-16 | 广东欧珀移动通信有限公司 | 文本显示方法和*** |
CN105718428A (zh) * | 2016-01-25 | 2016-06-29 | 北京京东尚科信息技术有限公司 | 一种文本的输出方法和输出装置 |
-
2016
- 2016-08-19 CN CN201610695236.0A patent/CN106331828B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6452597B1 (en) * | 1999-08-24 | 2002-09-17 | Microsoft Corporation | Displaying text on a limited-area display surface |
CN101360193A (zh) * | 2008-09-04 | 2009-02-04 | 北京中星微电子有限公司 | 一种视频字幕处理装置及方法 |
CN102082931A (zh) * | 2009-11-30 | 2011-06-01 | 新奥特(北京)视频技术有限公司 | 一种自适应调整字幕区域的方法及装置 |
CN105025386A (zh) * | 2015-07-23 | 2015-11-04 | 无锡天脉聚源传媒科技有限公司 | 一种字幕处理方法及装置 |
CN105159868A (zh) * | 2015-09-01 | 2015-12-16 | 广东欧珀移动通信有限公司 | 文本显示方法和*** |
CN105718428A (zh) * | 2016-01-25 | 2016-06-29 | 北京京东尚科信息技术有限公司 | 一种文本的输出方法和输出装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106331828A (zh) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106331828B (zh) | 根据画面调整字幕的方法及*** | |
CN104469179B (zh) | 一种将动态图片结合到手机视频中的方法 | |
US10127706B2 (en) | Language element vision augmentation methods and devices | |
US10082867B2 (en) | Display control method and display control apparatus | |
Moshtael et al. | High tech aids low vision: a review of image processing for the visually impaired | |
WO2020018607A1 (en) | Dynamic digital content processing and generation for a virtual environment | |
CN101998029A (zh) | 影像处理装置和影像处理方法 | |
US20150242998A1 (en) | Display system, health apparatus, and display control method | |
US20170161232A1 (en) | Method and electronic device for configuring a video player in a web page | |
CN110969673A (zh) | 一种直播换脸交互实现方法、存储介质、设备及*** | |
KR101789153B1 (ko) | 가상현실 기반의 emdr 안구 운동의 몰입형 제공 방법 | |
CN113825020B (zh) | 视频清晰度切换方法、装置、设备、存储介质及程序产品 | |
CN105931204B (zh) | 图片还原方法及*** | |
CN107495922A (zh) | 侦测眼睛疲劳的方法 | |
CN104915166B (zh) | 信息处理方法及电子设备 | |
CN113625928A (zh) | 一种荧幕显示自动调节***及调节方法 | |
CN110755241A (zh) | 视觉训练方法、视觉训练装置及存储介质 | |
CN110221695A (zh) | 在虚拟现实设备中调整弹幕的显示属性的方法和装置 | |
CN110868623A (zh) | 视觉焦点区域的弹幕隐藏方法及处理装置 | |
CN105933690A (zh) | 一种自适应调整3d画面内容大小的方法和装置 | |
CN109431761A (zh) | 视疲劳缓解的方法、装置、电子设备及存储介质 | |
CN111240466B (zh) | 辅助听力文字近眼显示适应性调节方法、控制设备和*** | |
CN109901709B (zh) | 调节显示画面的方法、装置及vr设备 | |
CN112807683B (zh) | 游戏角色调整方法及相关装置 | |
CN105430513A (zh) | 显示投票信息的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PP01 | Preservation of patent right |
Effective date of registration: 20190705 Granted publication date: 20190205 |
|
PP01 | Preservation of patent right |