精华内容
下载资源
问答
  • 给Html5视频播放器添加字幕
    2021-06-09 02:40:07

    现在各种支持HTML5的浏览器都能够播放html5视频了,但是对于字幕的支持却很少,我们期待像DVD那样强大的字幕。

    往往我们还不得不通过js来做,着实是一件痛苦的事情。

    现在IE10率先对HTML5 Video 字幕给与内置的支持,而且还支持多语言,可任意切换,真是太给力了。

    示例代码如下:

    通过两个标签分别指定了一个英文字幕文件、一个中文字幕文件,默认为中文字幕,用户可以切换,也可以由程序脚本切换。

    IE10支持2种字幕文件格式:

    WebVTT : Web Video Text Track  (Web视频文本轨道)

    TTML : Timed Text Markup Language (时序文本标记语言)

    WebVTT

    WebVTT是UTF-8编码格式的文本文件,内容示例如下:

    WEBVTT

    00:00:01.878 --> 00:00:05.334

    曾经有一份真诚的爱情放在我面前,

    00:00:08.608 --> 00:00:15.296

    我没有珍惜,等我失去的时候我才后悔莫及,

    人世间最痛苦的事莫过于此。 第一行必需是WEBVTT,接着空行,接下来是一行时间范围+一行或多行字幕内容+空行,一行时间范围+一行或多行字幕内容+空行,……

    时间格式是HH:MM:SS.sss,时:分:秒.毫秒, 开始时间 --> 结束时间,-->的两边各有一个空格,这两个时间必需写在同一行。

    时间都是相对于视频开始的时间间隔。

    时间之后是字幕文本,时间和字幕文本之间不能有空行,字幕文本可以是一行或多行,字幕文本中不能有空行。WebVTT字幕文件的MIME类型约定是"text/vtt",需要在IIS或者Apache等Web服务器中配置.

    TTML

    TTML是xml格式的文件,内容示例如下:

    曾经有一份真诚的爱情放在我面前,

    我没有珍惜,等我失去的时候我才后悔莫及,
    人世间最痛苦的事莫过于此。

    结构很明确了,分别是tt标签,body标签,div标签,p标签,br标签,和HTML很像啊!p元素的begin/end属性指定了字幕的起止时间。

    TTML文件的MIME类型约定为application/ttml+xml

    通过在video标签内使用1个或多个track标签来指定1个或多个语言的字幕文件,每个track元素对应一个字幕文件。

    track标签的属性主要有4个,如下表:

    属性

    描述

    kind

    定义字幕内容类型,只能是这五种之一: subtitles, captions, descriptions, chapters, metadata.

    src

    字幕文件的URL地址

    srclang

    字幕文件的语言类型,标识信息的作用,播放器不使用这个属性。

    label

    字幕标签,每个字幕元素必需设置一个唯一不重复的标签,切换字幕时显示的名称。

    default

    指定是否是默认字幕。如果每个都不指定,将不会自动显示字幕.

    可以通过javascript方式访问每一个字幕元素,甚至其中的每一句台词。这一部分代码比较多,我就不展开了,有兴趣的可以自己看原文。

    http://blog.csdn.net/cuixiping/article/details/7760845

    更多相关内容
  • arctime双语字幕重叠的解决办法

    万次阅读 2020-04-28 16:17:22
    srt双语字幕文件后,将视频及字幕导入到arctime软件里准备压制导出的时候突然发现,中英文字字幕重叠在了一起,如图1: 图1 那么遇到这样的问题怎么解决呢?这个时候不要慌,作者第一次遇到这种问题的时候也是...

    srt双语字幕文件后,将视频及字幕导入到arctime软件里准备压制导出的时候突然发现,中英文字字幕重叠在了一起,如图1:

     

    图1

    那么遇到这样的问题怎么解决呢?这个时候不要慌,作者第一次遇到这种问题的时候也是很慌的,在网上查阅了很多资料以后终于找到了解决的办法,下面就跟着我一起来解决掉它:

     

    1、导入你的视频和从网络上下载的srt字幕,切换到“样式与效果”面板,点击面板上右边的“A"选项卡,确保此时“字幕生成算法是“C:保持字幕块独立”(默认状态)。

    然后找到下方的+号(下图中红色箭头处)分别新建“中文样式”及“英文样式”,如图2:

    图2

     

         2、将时间轴指针放到字幕文件的空白处(如图3),然后双击刚才新建的“中文样式”,调整样式的各项数值,直到自己满意为止,(之所以要把指针放到空白处是因为不这样的话会出现和导入的字幕重叠的情况,可以尝试一下放在有字幕文件的地方,然后调整样式数值就知道为什么了,这里不做过多的解释)。

     

    图3

          

         温馨提示:调整样式各项数值的时候最好点击“显示安全框”(图4红色箭头处),然后双击视频处放大,然后拖动下面和右面的滚动条到可以看到字幕的地方,这样调整起来比较看的清楚并且准确。

         

    图4

          注意:之所以“中文字幕”和“英文字幕”会重叠在一起就是因为他们的垂直边距一样,所以这里在调整完字号、字体阴影等数值以后需要调整“垂直边距”(图4绿色箭头处),以安全框为基准,这一步先把“中文字幕”放到一个自己满意的位置,等到下一步调整“英文字幕”的时候,将“英文字幕”放到和“中文字幕”错开的地方。

          至于“中文字幕”在上还是“英文字幕”在上这个看自己的需要弄就可以了。

     

     

           3、按照上面的方法, 将“英文字幕”也调整好。

     

    4、接下来,在arctime面板上点击红色箭头的选项卡,点击“组1”后面向下的小箭头,将“组1”设定为“中文样式”,“组2”设定为“英文样式”,如图5:

    图5

     

    5、依然将时间轴指针放到无字幕的地方,双击中文字幕轴,鼠标右键“选中当前轨道中的字幕块(图6)

    图6

         选中以后鼠标轻轻移动到附近的“中文字幕”上方,然后点击鼠标右键,“设定分组”选择“组1”。

    图7

          “英文字幕”同样的操作方法,双击“英文字幕”轴,右键“选中当前轨道中的字幕块”,鼠标轻轻移动到附近的英文字幕上右键,选择设定分组为“组2”,最后ctrl+s保存一下,播放一下就发现中英文字幕已经分开了。

     

          假如发现两组字幕还是有一点重叠的话,按照第2、3步的操作重新设置一下中英文样式的“垂直边距”就可以了。

         

         最终效果如下图:

         

    图8

     

         这里需要提醒的是:做字幕的时候切记调整字幕样式的时候要给字幕加“描边”和“阴影”,原因是如果遇到视频中字幕所处的地方正好背景是白色的话,是看不到字幕的。

    展开全文
  • 制作滚动字幕效果:marquee标签 如下:() onmouseover=stop() scrollAmount=4> 参数说明:direction滚动方向:up向上滚动,down向下滚动,left向左滚动,right向右滚动behavior滚动方式:scroll绕来绕去,slid...

    制作滚动字幕效果:marquee标签 如下:<MARQUEE direction=up height=146 οnmοuseοut=start() οnmοuseοver=stop() scrollAmount=4> </marquee>

    参数说明:

    direction滚动方向:

    up向上滚动,down向下滚动,left向左滚动,right向右滚动

    behavior滚动方式:

    scroll绕来绕去,slide滚动一次就停下来,alternate来回滚动

    scrollAmount滚动速度:数值越大滚动越快

    scrollDelay滚动延迟:数值越大延迟时间越长

    loop循环次数:循环几次

    bgcolor背景颜色

    height高度

    width宽度

    οnmοuseοut=start() οnmοuseοver=stop()鼠标悬停停止,离开继续滚动

    移动方式可以系属性果度改...下上左右都得...

    滚动字幕的使用可以增加网页的动感,让网页显得更有生气。当然用javascript可以实现滚动字幕效果;使用Dreamweaver的图层再用其时间轴功能可以做出非常漂亮的滚动看板。但相对而言,用HTML的滚动字幕标记所需的代码最少,虽然效果不是最好,但确实能够以较少的下载时间换来较好的效果。该标记语法格式如下:

    aligh=left|center|right|top|bottom

    bgcolor=

    direction=left|right|up|down

    behavior=

    height=

    hspace=

    scrollamount=

    Scrolldelay=

    width=

    VSpace=

    loop= >

    滚择不同的参数,滚动字幕会有不同的显示方式。下面解释一下各参数的含义:

    align:是设定滚动字幕的位置,除左、中、右三种位置外,还有靠上(align=top)和靠下(align=bottom)两种位置。
    Bgcolor:用于设定滚动字幕的背景颜色。

    Direction:用于设定滚动字幕的滚动方向。

    Behavior:用于设定滚动的方式,

    主要由三种方式:behavior="scroll"表示由一端滚动到另一端;behavior="slide":表示由一端快速滑动到另一端,且不再重复;behavior="alternate"表示在两端之间来回滚动。
    Height:用于设定滚动字幕的高度

    Width:则设定滚动字幕的宽度。

    Hspace和vspace:分别用于设定滚动字幕的左右边框和上下边框的宽度。

    Scrollamount:用于设定滚动字幕的滚动距离。

    scrolldelay:用于设定滚动两次之间的延迟时间。

    Loop:用于设定滚动的次数,当loop=-1表示一直滚动下去,直到页面更新。

    标记的默认情况是向左滚动无限次,字幕高度是文本高度,滚动范围:水平滚动的宽度是当前位置的宽度;垂直滚动的高度是当前位置的高度。

    应用技巧

    1、垂直滚动

    只要加上diriction="up"就行了,如

    向上滚动

    2、多行文本的滚动字幕

    由于标记只能作用于一段文本,因此多行滚动字幕,分行时只能用
    标记,不能用

    标记.

    滚动字幕内容第一行

    滚动字幕内容第二行

    滚动字幕内容第三行

    3、在字幕内容中加入图象

    虽是一个滚动字幕标记,但它允许在其中加入图象:

    a2ball.gif这是加入图象的滚动字幕

    标记的参数较多,在应用中要把握一个原则,能用默认值就不要再设置参数值,用什么参数就设置该参数的值,其它参数就不要再设置,以把代码控制在最少的范围内。

    用MARQUEE标签可以做文字或图片的简单的左右或上下移动。并可以响应鼠标、加入链接。不需要复杂的JS,只要一句简单的MARQUEE标签。

    下面跟你介绍下标签中的参数设置。点这里看示例文件。(MARQUEE标签只有IE支持,在NC的浏览器上无效)

    先看下代码:

    这是放文字或需要移动的图片(光标放在这里时用INSERT命令就可以插入图片)

    下面来解释下各参数意思:

    direction=left/right/up/down表示移动的方向 可以是 上下左右

    BEHAVIOR 属性:改变 marquee 标签内容移动的几种方式。alternate滚动的内容会来回滚动。scroll默认的从右到左的移动。slide滚动结束后会停留在最后的位置上。

    scrollAmount:定每显示一个marquee片段间的间距 如 scrollAmount =100

    scrollDelay 指定每显示一个marquee片段间的时间差 如 scrollDelay = 1

    LOOP:指定循环显示的次数,如 loop=3 还可以1, 默认的值是 无限循环

    BGCOLOR: 背景的颜色 如 #990000 black 等都是有效的值

    width: 移动范围的长度 如 width=300 也可以是百分数。

    height: 移动范围的高度 如 height=50

    Align #=top, middle, bottom 表示居中位置

    Margins 表示MARQUEE块在上下和左右方向留的空距。

    title: 鼠标移动marquee上时出现的说明 好象或图片的ALT那种。

    style: 你可加入风格的样式,如字体的颜色等 STYLE="{color: #ffffff; font-family:Arial;font-size:8pt}"

    stop的SCRIPT:可以令到滚动停止 试试在中加入 onmouserover=this.stop

    start 可以令到滚动重新开始 试试在中加入 onmouserover=this.start

    还可以有onbounce 触发当来回一次时触发的事件等等。

    也可以用以下的javascript方式控制MARQUEE的鼠标响应:其中iescroller是MARQUEE的ID。

    iescroller.οnmοuseοver=new Function("iescroller.scrollAmount=0");

    iescroller.οnmοuseοut=new Function("iescroller.scrollAmount=2");

    展开全文
  • 让scroll_begin和scroll_end个子容器在一内显示(即:变成行内元素),然后通过设置父容器scrollLeft的值,让其发生滚动,当scrollLeft增加到超过scroll_begin宽度时,重新赋值(后面就一直在重复,+=2 超过一...

    代码参考了别人的,但是都没有写原理或更详细的解释,在此总结一下。

     

    jq-原理:元素position定位,然后控制left的值,让left从最右边开始 慢慢减少到最左边直到超过自身宽度后,left(重新赋值)又从最左边开始。

    缺点:不用jq的animate的话闪屏比较严重,必须引入jq,如果是移动端用zepto则没有对应的animate方法。

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>滚动字幕</title>
    </head>
    <body>
        <div id="affiche">
            <span class="affiche_text">字幕会滚动啦</span>
        </div> 
    </body>
    <style>
    #affiche {
    height: 30px;
    background: rgb(82, 118, 238);
    position: relative;
    }
    .affiche_text {
    position: absolute;
    top: 0;
    left: 0;
    line-height: 30px;
    display: block;
    word-break: keep-all;
    text-overflow: ellipsis;
    white-space: nowrap;
    }
    </style>
    
    <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js" ></script>
    <script type="text/javascript">
    // (function(){var timer = setTimeout(this.marquee, 1000);}()); //让字幕几秒后才开始出现
    function marquee() {
        var scrollWidth = $('#affiche').width();console.log(scrollWidth);
        var textWidth = $('.affiche_text').width();console.log(textWidth);
        var i = scrollWidth;console.log(i);
        setInterval(function() {
            i--;
            if(i < -textWidth ) {
                i = scrollWidth;console.log(i);
            }
            $('.affiche_text').animate({'left': i+'px'}, 20);//用jq的animate方法,不会闪屏
            // $('.affiche_text').css('left',i+'px');//直接控制样式,但是会出现闪屏。
        }, 20);
    }
    marquee()
    </script>
    </html>

     

    原生js-原理:让scroll_begin和scroll_end两个子容器在一行内显示(即:变成行内元素),然后通过设置父容器scrollLeft的值,让其发生滚动,当scrollLeft增加到超过scroll_begin宽度时,重新赋值(后面就一直在重复,+=2 超过一定量后又重新赋值)-----(此时已经无法用言语形容了,自己用手比划一下就知道了)

    缺点:轻微屏闪,还有最重要的是:如果文字不够长,即单个子容器宽度不超过父容器的话,就不能一直滚动。

    (我觉得我还没有理解透彻,欢迎评论探讨)

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1">
        <meta name="apple-mobile-web-app-capable" content="yes">
        <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <title>滚动字幕</title>
    </head>
    <style>
      #scroll_div {
                height: 39px;
                line-height: 39px;
                overflow: hidden;
                white-space: nowrap;
                background: rgb(108, 238, 82);
            }
            #scroll_begin,
            #scroll_end {
                display: inline;
            }
    </style>
    <body>
            <div id="scroll_div" class="fl">
                <div id="scroll_begin">
                    如果您有其他问题,请告知客服,我们会尽心为您解答,吧啦吧啦~客服电话:13912345678
                </div>
                <div id="scroll_end"></div>
            </div>
    </body>
    <script type="text/javascript">
        // 横向滚动
        var scroll_begin = document.getElementById("scroll_begin");
        var scroll_end = document.getElementById("scroll_end");
        var scroll_div = document.getElementById("scroll_div");
        scroll_end.innerHTML = scroll_begin.innerHTML;
    
        function Marquee() {
            console.log(scroll_end.offsetWidth);//水平方向 width + 左右padding + 左右border-width
            console.log(scroll_div.scrollLeft);//返回文档的滚动left方向的距离,(当窗口发生滚动时值改变)
            console.log(scroll_begin.offsetWidth);
            if (scroll_end.offsetWidth - scroll_div.scrollLeft <= 0)
                scroll_div.scrollLeft -= scroll_begin.offsetWidth;
            else scroll_div.scrollLeft += 2;
        }
        var MyMar=setInterval(Marquee, 50);
        // pc端?鼠标移入移出字幕暂停、启动
        scroll_div.onmouseover = function() {
            clearInterval(MyMar);
        }
        scroll_div.onmouseout = function() {
            MyMar = setInterval(Marquee, 50);
        }
        //移动端?点击字幕暂停
        scroll_div.ontouchstart = function() {
            clearInterval(MyMar)
        }
        scroll_div.ontouchend = function() {
            MyMar = setInterval(Marquee, 50)
        }
    </script>
    </html>

     

    展开全文
  • 增加个时光机器窗口同时打开时,互相拷贝,如果源窗口复制100,而目的窗口也同时选中100的话,则只复制字幕内容,而不复制时间轴。 2009.11.25 恢复检查出错窗口中查找中文字幕行上有英文字母的功能 将某...
  • 四种滚动字幕的方法

    2021-03-14 19:55:36
    在影视制作中字幕的运动能起到突出主题、画龙点睛的妙用,比如在影视广告中均是通过文字说明向观众强化产品的品牌、性能等信息。以前只有在耗资数万的专业编辑系统中才能实现的字幕效果,现在在业余条件下在PⅡ级别...
  • ffmpeg添加双语字幕

    千次阅读 2020-09-13 19:58:23
    核心思想:重复使用ffmpeg字幕添加命令,利用字幕的上下位置,划分中英文字幕显示位置 准备素材,如下图所示 hack.mp4为视频文件 hack_zh.srt为该视频的中文srt字幕文件 hackz_en.srt为该视频的英文srt字幕文件...
  • 根据给定的字幕文件中的字幕信息,自动给视频添加字幕,运行程序后输入要添加字幕的视频文件和对应的字幕文件路径即可。实际使用时不需要对程序做任何修改,只需要根据实际的视频内容来修改字幕文件就可以,自动把...
  • 您可以删除其中一个,然后更改另一个以在页面上显示一个连续的字幕,或者重复这些语句以添加更多的字幕。 在定义字幕后,必须调用mqRotate函数以传递mqr,因为它将处理旋转。 function start() { new mq('m1'); ...
  • 增加个时光机器窗口同时打开时,互相拷贝,如果源窗口复制100,而目的窗口也同时选中100的话,则只复制字幕内容,而不复制时间轴。 2009.11.25 恢复检查出错窗口中查找中文字幕行上有英文字母的功能 将某...
  • 最近写了个比较简单的python程序,原有都是由于看公开课感觉比较费劲,一个是下载的视频无用的名字太长,另一个就是下载的vtt字幕播放器不识别,写了一个vtt转换成str字幕格式的文件vtt to str比较简单:大概就是...
  • 活动字幕,也称为滚动看板、滚动字幕。活动字幕的使用使得整个网页更有动感,显得很有生气。现在的网站中也越来越多地使用活动字幕来加强网页的互动性。用Javascript编程可以实现活动字幕效果;用Dreamweaver的图层...
  • align:是设定活动字幕的位置,除了居左、居中、居右三种位置外,又增加靠上(top)和靠下(bottom)种位置。 Bgcolor:用于设定活动字幕的背景颜色,可以使用英文的单词也可以是十六进制数的。 Direction:用于...
  • 这是大二的面向对象程序设计(C)这门课的期末大作业,老师的基本要求是:形成16*16汉字的字幕,并实现字体选择;有多种动画效果。 以下是我做完设计后提交的作业文档,对主要技术进行了详尽的解释: 字幕滚动...
  • ASS字幕文件说明

    千次阅读 2019-11-08 18:51:33
    每一行字幕开头的修饰语有种: Dialogue :正常的对话字幕内容 Comment :注释内容,这些不会作为字幕内容显示在视频中 第四部分 代码及其作用 在这一部分正式开始之前,先作一个简单的说明: ...
  • 添加常规字幕

    2019-01-23 00:26:35
    添加常规字幕时的注意事项(1)通常情况下不加标点符号,书名号、双引号等符号除外;(2)字体一般选择“黑体”或“微软雅黑”,且不宜太小,因为现在相当多的人是在用手机看视频;...
  • 输入一个英文句子,输出重复的字母(不包括空格)和重复次数, 结果按次数倒序(从大到小)排列。 例如,输入“I am a student”,输出 a 2 t 2。 分析 要点有个: 统计字符即次数 - 我使用了种方法来统计次数...
  • 本文为您讲解一下如何制作KSC字幕,所谓KSC字幕,就是一种卡拉OK歌词形式,我们在知名的卡拉OK软件MVBOX中就用到过,下边我们就来介绍一下KSC字幕制作方法!1、安装KSC字幕制作软件下载KSC字幕自作软件,并按照提示...
  • esrXP(字幕提取工具)中文版 v10

    千次阅读 2019-08-10 16:35:39
    esrXP中文版是一款专门为国内用户精心...它能够对avi,mpg,rmvb等视频文件进行字幕提取,并进行相应的编辑,也能够轻松的实现字幕过滤器,抓取设置,字幕样式设置,字幕隐藏,合并重复字幕等操作。该软件可以帮...
  • 原版蓝光光盘加国语配音加中文字幕及解说字幕保留弹出菜单傻瓜版教程闲来无事,发现了一本通俗易懂的教程,转发过来,让有点基础的同行们学习一下.在这感谢原著者的辛勤劳动!1. 得到片源朋友到国外出差,就顺带捎回了几...
  • 一般人永远会不自觉通过中文字幕理解英语,而不是通过听懂-理解-记忆-重复,这样的过程学到英语. 3. 看一遍是不够的 看一遍根本不能叫学英语,充其量只能叫娱乐.如果是抱着学习的目的,必须反复看,精听,理解句子词语的...
  • 用文本编辑器打开,我们可以看到格式是:[开始时间码]+内容需要注意的是,这个格式的字幕文件没有结束时间码,也就是在下一句内容显示之前当前显示的内容不会消失如果句话时间分开过长,需要当前这句内容消失,...
  • 哈喽,大家好,我是强哥。 大疆宣布暂停俄罗斯乌克兰...视频字幕提取;全球互联的微博社区。 科技资讯 大疆宣布暂停俄罗斯乌克兰业务 继上个月美国知名 UI 设计软件 Figma 宣布断供大疆后,今日大疆再登热搜.
  • 如今各类支持HTML5的浏览器都可以播放html5视频了,可是对于字幕的支持却不多,咱们期待像DVD那样强大的字幕。...html5示例代码以下:java经过个标签分别指定了一个英文字幕文件、一个中文字幕文件,默认为中...
  • (12)繁体版《Python也可以这样学》,台湾博硕文化股份有限公司,2017年10月出版,本书为《Python可以这样学》在台湾发行的繁体版,本书内容一样,不建议重复购买。 (13)《Python程序设计实例教程》(ISBN:...
  • 滚动字幕的实现

    千次阅读 2019-04-17 10:51:52
    滚动字幕,简单来说,就是从下往上,把一些内容顺序组织之后,同步移动。 这个看似很简单的效果,在配合实际场景的“内容产生不确定性”这个特点之后,就会有一点点挑战了。至少,比可以乱飞,可重叠的 B 站式弹幕...
  • CS的离散数学 课程I-计算机科学中的数学思维 ... ############################# ...计算个骰子的概率 概率:做与不做 不合理的结果 公平的决定和不完美的硬币 囚徒和国王 并非所有问题都有意义 包含

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,553
精华内容 1,821
关键字:

两行重复的字幕