大家好,我在将字幕添加到视频中时遇到了这个问题。

我将.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设置语法的结构非常相似。

10-08 13:23