video - 使用 WebVTT 在 YouTube 上定位字幕

标签 video youtube subtitle webvtt

根据 YouTube 的 documentation on subtitle formats ,它支持使用 W3C 的 WebVTT 格式定位字幕,这似乎在野外得到了证明:我见过的大多数视频都使用定位 - 包括 this test videothis music video - 使用 WebVTT 这样做。

我能够使用 align:start position:100%成功地将字幕对齐到视频视口(viewport)的右侧,但 align-left 的任何变体或 align-end我尝试简单地恢复到默认(中心)对齐方式。

line-left来自 W3C 的 WebVTT spec 示例 7 的语法状态:

The "line-left" or "line-right" only refers to the physical side of the box to which the "position" setting applies, in a way which is agnostic regarding the horizontal or vertical direction of the cue. It does not affect or relate to the direction or position of the text itself within the box.

但是当我尝试使用它来明确指定左对齐时,我在上传文件时从 YouTube 收到错误消息(第 17 行指的是第三个提示 - 实际错误是第 18 行的 line-left):

enter image description here

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

line-left/line-right YouTube 根本不支持语法,还是我用错了?如果不是,我如何强制我的字幕左对齐?

请注意,虽然我在旁遮普语中有每个提示的第一行,但视频的字幕文件本身上传为 English (United Kingdom) ,这也由 Language: en 明确说明。标记在文件的开头,因此这不是从右到左的问题。

最佳答案

我发布这个答案纯粹是为了记录我用来使定位工作的方法,但我很乐意接受任何比我更了解规范说明和做事的人的回答所以可以准确解释 WebVTT 中的定位是如何工作的。

自从第一次写下这个问题,并在大量阅读规范并针对它们进行测试后,我设法偶然发现了解决这个问题所需的正确代码排列,但有一些注意事项。

在大多数情况下,您可以使用:

<timecode> align:left position:0% size:50%左对齐字幕

<timecode> align:right position:100% size:50%将它们右对齐

<timecode> line:0%将它们放在视频的顶部

...至少在我的特殊情况下。然而,这种方法似乎在较长的行上完全失败,这又回到了中心对齐。

我也不明白为什么,但是 size在我的视频中,指令始终需要在 50% 左右:将其设置为过低或过高的值 - 包括 100%,就像在 CSS 中的情况一样 - 似乎也失败了。

关于video - 使用 WebVTT 在 YouTube 上定位字幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66372869/

相关文章:

xcode - currentPlaybackTime 和 NSTimer 在视频期间启动 View ,并在使用 scrubber 定位时间点时正确启动/重新启动

javascript - YouTube 提要显示

c# - 是否可以使用 C# Markdown 库将 Youtube/Vimeo 视频嵌入 Markdown

用于从 channel 获取最新视频的 YouTube API

html5 MKV播放带字幕

c++ - 如何获取 SDL2 中视频卡支持的所有分辨率?

audio - 如何输入音频文件、生成视频、分割、裁剪和叠加以输出万花筒效果

android - 使用 native 视频播放器在 Android 上全屏播放视频

android - 如何将自定义字体设置为android工具栏的副标题?

json - 解析和转换 TED 演讲 JSON 字幕