video - 使用 WebVTT 在 YouTube 上定位字幕
问题描述
根据 YouTube关于字幕格式的文档,它支持使用 W3C 的 WebVTT 格式定位字幕,这似乎在野外得到了证明:我看过的大多数使用定位的视频——包括这个测试视频和这个音乐视频——都使用 WebVTT这样做。
我能够align:start position:100%
成功地将字幕对齐到视频视口的右侧,但是我尝试的任何变体align-left
或align-end
我尝试的任何变体都会简单地恢复为默认(中心)对齐方式。
line-left
W3C 的WebVTT 规范中示例 7的语法指出:
“左行”或“右行”仅指“位置”设置应用到的框的物理侧,其方式与提示的水平或垂直方向无关。它不影响或与文本本身在框中的方向或位置有关。
但是当我尝试使用它来明确指定左对齐时,上传文件时我从 YouTube 收到一个错误(第 17 行指的是第三个提示 - 实际错误是第line-left
18 行):
WEBVTT
Kind: captions
Language: en
1
00:00:16.439 --> 00:00:20.998 align:start position:100% // Successfully aligns right
میرے کنّاں دے چمکن جھمکے
Mere kannaan de chamkan jhumke
Sparkling jewels adorn my ears
2
00:00:21.038 --> 00:00:25.037 align:left position:0% // Silently fails; falls back to centre alignment
میرے کنّاں دے چمکن جھمکے
Mere kannaan de chamkan jhumke
Sparkling jewels adorn my ears
3
00:00:25.837 --> 00:00:30.037 align:left position:0%,line-left // Fails with errors
مینوں ویکھے ہوا وی پئی گھم کے
Mainoon wekhe hawa wi pai ghum ke
Even the breeze turns around to get a glimpse of me
YouTube 根本不支持line-left
/line-right
语法,还是我用错了?如果不是,我该如何强制我的字幕左对齐?
请注意,虽然我有旁遮普语中每个提示的第一行,但视频的字幕文件本身上传为,并且文件开头的标签English (United Kingdom)
也明确说明了这一点,因此这不是 Right-To-Language: en
左题。
解决方案
我发布这个答案纯粹是为了记录我用来使定位工作的内容,但我很乐意接受任何比我更善于弄清楚规格所说的人的答案,这样做可以准确解释定位的方式在 WebVTT 中工作。
自从第一次写这个问题,并且在大量阅读规范和测试之后,我设法偶然发现了解决这个问题所需的正确代码排列,但有一些警告。
在大多数情况下,您可以使用:
<timecode> align:left position:0% size:50%
左对齐字幕
<timecode> align:right position:100% size:50%
右对齐它们
<timecode> line:0%
将它们放在视频的顶部
...至少在我的特殊情况下。然而,这种方法似乎在较长的线路上完全失败,这会退回到中心对齐。
我也不明白为什么,但size
我的视频中的指令总是需要在 50% 左右:将其设置为太低或太高的值 - 包括 100%,就像 CSS 中的情况一样 - 似乎也失败了。
推荐阅读
- docker - apt-key 命令在 shell 上有效,但在 Dockerfile 上失败
- php - 空对象模式无法解决多种返回类型的问题
- regex - 评估多个正则表达式的优化
- c# - RestSharp JsonDeserializer 列表对象
- android - Java 邮件在 Marshmallow 及更高版本上失败,但在 Lollipop 及更低版本上成功
- tensorflow - MNIST分类:mean_squared_error损失函数和tanh激活函数
- python - 无法为 python 导入 tweepy
- python - Sqlalchemy 将纪元时间按组转换为日期
- angular - TypeError:没有'new'就不能调用类构造函数DefaultValueAccessor
- iframe - 如何通过悬停 iframe 动态获取 iframe 内的元素