大家好,我在将字幕添加到视频中时遇到了这个问题。
我将.vtt作为值放置在对象中,但似乎浏览器不喜欢其输出方式。我正在遵循本指南here
这是我的控制台上弹出的错误
{name: "", message: "Converting circular structure to JSON", error: TypeError: Converting circular structure to JSON at Object.stringify (native) at Object.<ano…}
captions-en.vtt
00:00:01.000 --> 00:00:15.000
What brings you to the land
of the gatekeepers?
00:00:15.500 --> 00:00:20.500
I'm searching for someone.
00:00:36.500 --> 00:00:39.000
A dangerous quest for a lone hunter.
00:00:41.500 --> 00:00:44.000
I've been alone for as long
as I can remember.
Java脚本
jwplayer("my-video").setup({
file: "<my-video-file>",
width: "100%",
aspectratio: "24:10",
primary: "flash",
tracks: [{
file: "/assets/captions/captions-en.vtt",
label: "English",
kind: "captions"
}]
});
我还确保保存为“ UTF-8”编码。
我还有其他步骤想念吗?像解析方法一样?
还要注意,我正在从AWS S3 Bucket流视频。那是导致错误的原因,我必须在那里上载vtt文件吗?
这个post中的错误是相同的,但是他们通过放置在字符串中显示了如何做到这一点。如果来自vtt文件,我将如何处理?
最佳答案
还要注意,我正在从AWS S3 Bucket流视频。那是导致错误的原因,我必须在那里上载vtt文件吗?
是的,无论视频出现在哪里,都可以上传VTT文件。 VTT受到安全限制,以我自己的经验,我还没有使用与视频不同的VTT成功运行JWPlayer。
通过在https://quuz.org/webvtt/上运行以确保您检查了VTT文件是否有效
S3可能会将VTT默认设置为content-type
,从而对VTT进行一般性处理。我不确定您如何使用S3,但是如果您可以在上传VTT后检查其属性,请查找以下属性:
Content-Type: binary/octet-stream
如果看到,则需要将其更改为:
Content-Type: text/vtt
如果您没有确定的过程和/或工具来检查S3上的VTT,请使用S3浏览器或Cloudberry S3 Explorer的免费版本。
关于该错误:
application/octet-stream
我不认为该错误与VTT文件有关。如果看一下它的格式,VTT与JSON没有任何相似之处,但是JW设置语法的结构非常相似。