MP4视频开放字幕中的LaTeX

由于无障碍立法要求视频在2020年9月23日之前加上字幕,而且我们的教学是在线的,我一直在考虑让LaTeX加入视频字幕。

以下是一个有点黑客,但它似乎工作!它只适用于烧录到视频中的开放字幕,我很有兴趣了解封闭字幕的解决方案。

总体工作流程

以下是工作流程:

  1. 录制视频。我一直在用OBS工作室为此,遵循优秀的詹姆斯·萨姆纳的视频(如果你看这些,你也会在这个页面的其他地方看到他的影响——整个工作流是他的扩展版本,允许LaTeX在开放字幕中出现)。

  2. 在这个阶段,我们有一个文件视频.mp4说吧。现在我们把它上传到YouTube。上传后,我们可以进入YouTube Studio播放视频。视频有自己的带有标识符的网络链接。复制它。

  3. 向下Sub,将网络链接粘贴到视频中,然后单击“下载”,很快您将获得下载.srt(.srt)文件。这样做;这是谷歌制作的自动字幕文件(特别是SubRip格式;还有其他选择,但这是我们稍后需要的)。

  4. 不幸的是,至少可以说,这不是很好。但您可以在文本编辑器中编辑此内容。可以在此处插入LaTeX命令,但要确保每一行都有与开头的数学标记(美元等)相匹配的结束数学标记。这是耗时的部分!允许大约4倍于视频长度的长度来编辑字幕。。。。

  5. 下载以下文件,并将其放入目录中:

      • gawk64.exe(987KB),Windows实现AWK公司(这是一个本地Linux程序,因此在那里很容易使用,我想也有Mac实现);

      • 露天煤矿(12KB),用于打开字幕的AWK脚本;

      • 打开caps.bat(102字节),用于从命令行运行脚本的批处理文件;

      • 白色.jpg(4KB),它将被用作背景文件,尽管不透明度非常大,您无论如何都不会看到它;也许可以省略。

(制作一个不需要导航到转录文件的版本很容易,只需编辑一行并双击批处理文件即可。)

  1. 导航到目录,然后从命令行运行:“opencaps视频”,您将获得一些输出:

      • 视频传输.tex,LaTeX转录文件(请随意编辑打开caps.bat让它也运行LaTeX,如果您愿意,可以直接获取PDF,但您可能想编辑它以放入段落);

      • 视频cc.srt,试图将LaTeX转换为闭路字幕文件(并不太好):没有任何闭路字幕系统允许LaTeX命令,所以这是一种胡编乱造——LaTeX数学被转换为黄色斜体。(据我所见,SubRip只允许使用粗体、斜体和字体颜色作为HTML标记。)它看起来不太好,许多LaTeX命令根本不起作用。不过,我想我不会对此做任何事情——任何真正想要字幕的人都可以观看公开字幕版。

      • 视频.html,一个HTML文件。此HTML文件显示标题,并显示正确的时间(大约);每个标题都有自己的div公司,一些JavaScript会显示具有适当延时的正确脚本。LaTeX显示得很好,因为MathJax是在标题中导入的;文本在灰色背景矩形上是白色的(有些不透明),但矩形实际上是在透明背景上。

  1. 现在返回OBS工作室,并使用播放视频的“媒体源”制作场景视频.mp4和播放字幕HTML文件的“浏览器”源代码视频.html。这两者都应设置为在场景启动时刷新;我制作了一个额外的场景开始录制,当我准备好录制时,我立即按“开始录制”将场景切换到视频加字幕场景。(请注意,如果可能的话,你应该关掉电脑麦克风,或者保持安静——一次早期尝试录制了我的健身自行车和视频……)你需要在结束时手动停止录制(或编辑视频以切断多余的比特)。

  2. 通过这种方式,您可以获得一个视频,并将其另存为视频(oc.mp4)文件的一个版本,带有打开的标题(即刻录的标题)。

  3. 我发现文件的大小相当大。无论如何,您应该将隐藏字幕文件添加到原始(未选)视频中,您可以使用手刹,以获取视频cc.mp4,原始视频视频.mp4带闭路字幕(非LaTeX)视频cc.srt但这通常会减少文件大小,即使与原始视频相比也是如此,因此可以对打开的字幕文件执行相同的操作,并且我们发现文件大小大大减少(在我目前的实验中,大约减少了8倍):替换视频_oc.mp4这个版本添加了闭路字幕(默认情况下会关闭,并且打开的字幕仍然可以正常播放)。

就这样!通过将内容放入批处理脚本文件中,大多数步骤都是自动化的,而且不会太麻烦。

一个例子

以下是视频的记录文件(关于统计中的分类问题):ML7-1.srt型(6KB)。这是从Downsub下载的内容的(大量)编辑版本;请注意,有些行被合并成更长的行(因此标题编号都混乱了),还有一些LaTeX。

在运行“opencaps ML7-1”时,我们得到三个文件:

  • ML7-1.html(13KB),一个带有标题的HTML文件;

  • ML7-1cc.srt型(7KB),一个新的SubRip文件,适度尝试添加隐藏字幕,并将使用Handbrake添加到视频中;

  • ML7-1变速箱(4KB),LaTeX转录文件。

迄今为止的问题

这只是我为我的视频制作的一个实验性的东西——它似乎总体上还可以,但所有东西都是由真正了解自己在做什么的人破解的。但有很多LaTeX命令我没有尝试过:我没有尝试过矩阵、数组,甚至显示方程等,这可能需要更大的基线。

请让我知道任何问题,但我不承诺对此采取任何行动!发送电子邮件给我a.f.jarvis@sheffield.ac.uk邮箱如果你有解决方案、建议等,我很乐意阅读!

我将维护使用此方法的人发现的问题的列表。

  • 有时输出中缺少条形图:$\上划线{x}$的输出方式与$x$相同。(也许LaTeX文件是错误的?)