根据画面调整字幕的方法及系统技术方案

技术编号:14444904 阅读:79 留言:0更新日期:2017-01-15 10:12
本申请公开根据画面调整字幕的方法及系统,方法包括:设置视频画面中的字幕显示参数,实时获取视频画面的宽度,根据视频画面的宽度计算字幕显示去的宽度,根据字幕显示区域的宽度计算字幕显示区域所能容纳的最大字号,根据所述字幕显示区域所能容纳的最大字号以及当前字幕显示区域的宽度,计算当前字幕内容所需显示的行数,然后计算每行字幕的显示位置,最后根据字幕显示区域所能容纳的最大字号、当前字幕内容所需显示的行数、以及每行字幕的显示位置,将字幕内容显示到所述字幕显示区域。如此方式,能够根据视频画面宽度适应性调整字幕大小,而不会使得字幕随视频的缩放变得过大或过小,从而使得字幕满足用户观看需求,提升了用户体验。

【技术实现步骤摘要】

本申请涉及视频字幕播放
,具体地说,涉及一种根据画面调整字幕的方法及系统
技术介绍
在视频播放过程中,字幕作为一种便于用户在视频语音之外接收视频内容信息的形式,方便用户观看视频。目前的很多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本文档来自技高网...
根据画面调整字幕的方法及系统

【技术保护点】
一种根据画面调整字幕的方法,包括:设置视频画面中的字幕显示参数,所述字幕显示参数至少包括:字幕显示区域上每行显示的最大字符数、最小显示字号、最大显示字号、字幕显示区域距视频画面左端的距离d1、字幕显示区域距视频画面右端的距离d2、以及字幕显示区域距视频画面底端的距离d3;实时获取视频画面的宽度d0,根据所述视频画面的宽度d0、所述字幕显示区域距视频画面左端的距离d1、以及所述字幕显示区域距视频画面右端的距离d2,计算字幕显示区域的宽度d4,d4=d0‑d1‑d2;根据所述字幕显示区域的宽度、所述每行显示的最大字符数、所述最小显示字号和所述最大显示字号,计算所述字幕显示区域所能容纳的最大字号;根据所述字幕显示区域所能容纳的最大字号以及当前字幕显示区域的宽度,计算当前字幕内容所需显示的行数;根据所述字幕显示区域所能容纳的最大字号、所述当前字幕内容所需显示的行数、以及所述字幕显示区域距视频画面底端的距离,计算每行字幕的显示位置,使得靠近所述视频画面底端的第一行字幕底部与所述视频画面底端之间的距离保持为d3;根据所述字幕显示区域所能容纳的最大字号、所述当前字幕内容所需显示的行数、以及所述每行字幕的显示位置,将字幕内容显示到所述字幕显示区域。...

【技术特征摘要】
1.一种根据画面调整字幕的方法,包括:设置视频画面中的字幕显示参数,所述字幕显示参数至少包括:字幕显示区域上每行显示的最大字符数、最小显示字号、最大显示字号、字幕显示区域距视频画面左端的距离d1、字幕显示区域距视频画面右端的距离d2、以及字幕显示区域距视频画面底端的距离d3;实时获取视频画面的宽度d0,根据所述视频画面的宽度d0、所述字幕显示区域距视频画面左端的距离d1、以及所述字幕显示区域距视频画面右端的距离d2,计算字幕显示区域的宽度d4,d4=d0-d1-d2;根据所述字幕显示区域的宽度、所述每行显示的最大字符数、所述最小显示字号和所述最大显示字号,计算所述字幕显示区域所能容纳的最大字号;根据所述字幕显示区域所能容纳的最大字号以及当前字幕显示区域的宽度,计算当前字幕内容所需显示的行数;根据所述字幕显示区域所能容纳的最大字号、所述当前字幕内容所需显示的行数、以及所述字幕显示区域距视频画面底端的距离,计算每行字幕的显示位置,使得靠近所述视频画面底端的第一行字幕底部与所述视频画面底端之间的距离保持为d3;根据所述字幕显示区域所能容纳的最大字号、所述当前字幕内容所需显示的行数、以及所述每行字幕的显示位置,将字幕内容显示到所述字幕显示区域。2.根据权利要求1所述根据画面调整字幕的方法,其特征在于,计算所述字幕显示区域所能容纳的最大字号,进一步为:将字号设置为所述最小显示字号,利用ObjectC中属性字符串类提供的函数,计算当前字号下每个字符的宽度;根据所述字幕显示区域的宽度和所述每个字符的宽度,计算所述字幕显示区域的宽度范围所能容纳的字符数;判断所述字符数是否超过所述每行显示的最大字符数,若超过,则将字号加1,再计算对应的字符的宽度和所述字幕显示区域的宽度所能容纳的字符数,直至当前字号在当前字幕显示区域的宽度下每行显示的字符数小于等于所述最大字符数或当前字号达到所述最大显示字号,此时得到的字号为满足字号范围和所述每行显示的最大字符数下所述字幕显示区域所能容纳的最大字号。3.根据权利要求1所述根据画面调整字幕的方法,其特征在于,计算当前字幕内容所需显示的行数,进一步为:根据当前字号的大小,计算当前字号下,当前字幕内容的总宽度;用计算出的所述字幕内容的总宽度除以所述字幕显示区域的宽度,得出当前字幕内容所需显示的行数。4.根据权利要求1所述根据画面调整字幕的方法,其特征在于,计算每行字幕的显示位置,进一步为:根据当前字号的大小,计算当前字号下,每行字幕的高度d5;从视频画面底部开始从下至上数第1行字幕的底端距离所述视频画面底端的距离为所述字幕显示区域距视频画面底端的距离d3,第n行字幕的顶端距离所述视频画面底端的距离为d3+n*d5。5.根据权利要求1所述根据画面调整字幕的方法,其特征在于,进一步包括:将所述每行显示的最大字符数设置为40,将所述最小显示字号设置为22,将所述最大显示字号设置为50,将所述字幕显示区域距视频画面左端的距离d1设置为100个像素,将所述字幕显示区域距视频画面右端的距离d2设置为100个像素、将所述字幕显示区域距视频画面底端的距离d3设置为40个像素。6.一种根据画面调整字幕的系统,其特征在于,包括:参数设置模块、字幕显示区域宽度计算模块、字幕显示区域字号计算模块、字幕显示区域行数...

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

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

1