问题标签 [vtt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1105 浏览

video - 使用 ffmpeg 从流中提取隐藏式字幕 VTT

我可以使用 ffmpeg v. 3.4.7 从 mp4 文件中提取隐藏式字幕信息,因此:

该文件是通过捕获包含隐藏式字幕的实时 HLS 流获得的。我想直接从流中提取隐藏式字幕,而不是将视频存储在文件中之后。我尝试了各种方法,包括:

但是电影过滤器无法识别 URL,尽管ffmpeg 过滤器文档说电影过滤器的文件名“不一定是文件;它也可以是通过某种协议访问的设备或流”:

[Parsed_movie_0 @ 0x264ad80] avformat_open_input 'http' 失败
[lavfi @ 0x2647e80] 使用参数 'http://example.com/stream.m3u8' 初始化过滤器'movie' 时出错
movie=http://example.com/stream.m3u8 [out+subcc]:没有这样的文件或目录

当我从流中捕获视频时,如下所示:

ffmpeg 报告该流确实包含隐藏式字幕(这是捕获的视频文件 sample.mp4 获得它们的地方):

流 #0:0:视频:h264(高)([27][0][0][0] / 0x001B),yuv420p(tv,bt709),480x270 [SAR 1:1 DAR 16:9],隐藏式字幕, 14.99 fps, 14.99 tbr, 90k tbn, 29.97 tbc

是否有可能做到这一点?感谢您的任何指示。

0 投票
0 回答
550 浏览

live - 使用 hls.js 播放带有滚动实时窗口的实时流,如何保持 webvtt 中的字幕对齐?

我可以使用播放列表 master.m3u8、video.m3u8 和 metadata.m3u8 使用 hls.js 播放器播放实时流。该视频是使用 ffmpeg hls 命令创建的,并使用带有 args 的滚动实时窗口:

-hls_list_size 20 -hls_time 2 -hls_flags delete_segments

这会创建从 video0.ts 到 video19.ts 的视频片段,然后在添加新片段时开始删除第一个片段。video.m3u8 最终看起来像......

我的 metadata.m3u8 播放列表看起来很相似,尽管我是从单独的来源创建的。视频和元数据播放列表保持同步,从我的直播开始就可以正常播放。

当我重新加载播放器页面时,问题就开始了。重新加载时,播放器加载播放列表并将在当前直播点正确播放。

我看到它在 video45.ts 和 sub_45.vtt 周围加载片段。这似乎是正确的,因为 video.m3u8 中的媒体序列为 25。添加 20 个片段的播放列表大小,实时位置约为第 45 个片段。这是大约 90 秒进入现场。

但是,播放器中的媒体时间显示为 40 秒。似乎用播放列表中的片段数只能得出 40 秒,尽管真正的直播时间是 90 秒。

最后产生的问题是 40 秒的媒体时间被用于引用文本轨道提示并显示 40 秒的字幕......而不是 90 秒标记视频实际来自哪里。

有没有办法让播放器正确反映“实时”时间,尽管实时滚动窗口,所以字幕(正确加载)在正确的时间显示?

还是滚动窗口实时播放不适用于 vtt 中的字幕?

如果我禁用滚动窗口支持,我可以多次重新加载直播,并且“完整”直播时间加载并且字幕排好。

0 投票
1 回答
159 浏览

ffmpeg - vtt文件中的xywh是什么意思

这些行是什么:#xywh=0,0,160,90 在 vtt 文件中表示缩略图?

谢谢。

0 投票
0 回答
40 浏览

webvtt - WebVTT:Firefox 87.0 字幕中的 Escape NOTE

在一个应用程序中,我使用来自用户和其他数据源的输入生成 Web VTT 视频字幕文件。

通常这很好用,但我不知道如何在 Firefox 中显示以字符串“NOTE”开头的字幕行。例子:

这应该在前两秒显示副标题“NOTE A”。在 Chromium 89.0 中这工作正常,但 Firefox 87.0 没有显示任何内容。

我在这里也找不到转义“注意”的提示:https ://developer.mozilla.org/en-US/docs/Web/API/WebVTT_API

0 投票
0 回答
41 浏览

webvtt - WebVTT:Firefox 87.0 的转义和字幕

我想为有关 HTML 的视频生成 Web VTT 字幕文件。

但我不知道如何&在 Firefox 中显示字符串。这在 Chromium 89.0 中运行良好(它显示&):

但 Firefox 87.0 仅显示&.

0 投票
0 回答
70 浏览

android - 在 react native 中调用本地文件时出错,在 android 中出现错误-“无法加载空 url”

我正在尝试在本地加载 .vtt 文件。但此文件未加载并引发错误“无法加载空 url”。我调用此文件的应用程序和 .vtt 文件位于同一文件夹中。

<InteractiveTranscripts uri={'./sample.vtt'}/>

我正在使用上面的代码调用文件。我尝试使用测试 url,它是工作文件。但是每当我使用本地资源时,这个问题仍然存在。我什至尝试在清单中提供读写权限。但没有奏效。有人遇到同样的问题吗?

0 投票
0 回答
46 浏览

html - Rails 动态提供 VTT 内容

所以我使用自己的 HTML 播放器并使用该元素在 VTT 文件中提供标题。我无法在 MVC 方法中正确提供 VTT 文件,但可以正常使用静态 HTML 文件。

现在我让 VTT 在 Rails 中工作的唯一方法是将 VTT 文件放在公共目录中,这需要我将它们 Git 到 Heroku 应用程序。

所以我想知道通过将文本内容放入数据库本身来动态呈现它们。

这是我正在考虑的结构

提示块如下所示:

我的问题是,我怎样才能在 view/videos 目录中的 text_track.vtt.erb 文件中获取这些信息?然后在 player.html.haml 的代码中引用这个?像这样:

text_track.vtt.erb 需要类似于:

任何帮助或建议将不胜感激。

0 投票
0 回答
38 浏览

curl - 使用终端浏览器检测特定的自动加载的文本文件

例如,如果您使用 firefox 打开一个 url,则可能会在后台加载大量文本文件,例如使用 GET 方法。在我的情况下,我调用一个带有视频的 url,并且为字幕加载了一个 .vtt 文件。

有没有办法使用 curl / wget 或其他任何方法来访问从网页自动加载的文件?我很高兴知道浏览器想要加载哪些文件 url。

我的互联网搜索不成功,老实说,我不知道要搜索哪些关键字。提前致谢

0 投票
1 回答
141 浏览

subtitle - 如何在视频字幕/字幕 (VTT) 中添加上标符号

我正在尝试在视频字幕上添加参考编号作为上标。

有什么方法可以申请或另一个上标格式标记来实现与代码片段中相同的预期结果?

https://codepen.io/fraigo/pen/ExvVEze

VTT 文件内容(base64 编码为data:text/vtt;charset=utf-8;base64,V0VCVlRUIEZJTEUNCg0KMQ0KMDA6MDA6MDAuMTAwIC0tPiAwMDowMDowNS4wMDANClN1YnRpdGxlIGxpbmU8c3VwPjEsMiwzPC9zdXA+

0 投票
2 回答
32 浏览

caption - 包含图片 url 和标题的 VTT 文件

有没有办法可以将图像 url 存储在 VTT 文件中?例如:

我知道我可以编写自定义解析器,但我想知道是否有某种标准?