问题标签 [video-subtitles]

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 投票
0 回答
102 浏览

video - 自动检测视频源中烧录字幕的框/坐标

实际上,我想检测给定视频源的“最大”(高度和宽度)刻录字幕的坐标。但为了做到这一点,我首先需要检测示例视频中每个不同字幕的框坐标,并比较它们以找到最大的。我不知道从哪里开始,所以我找到的最接近的东西(有点)是 ffmpeg 的bbox视频过滤器,它根据文档计算"the bounding box for the non-black pixels in the input frame luminance plane",基于给定的亮度值:

这给了我一条线,其中包含视频中每个输入帧的坐标,例如:

这个想法是制作一个脚本并循环过滤器的输出,通过比较它们来检测“最大”框,并输出它的坐标和帧号作为最长字幕的代表。

bbox即使在带有白色硬字幕的相对较暗的视频中,过滤器也无法正确检测字幕框。通过反复试验并且仅针对我用来运行测试的特定视频样本,检测任何字幕框的“最佳”结果是使用min_val130 的 a(假设有意义的值min_val在 0- 255,虽然文档什么也没说)。使用drawbox过滤器ffplay测试特定帧报告的坐标,我可以看到它只正确检测到字幕的底部/左侧/右侧边界,大概是因为下图中的地球轮廓同样亮:

在此处输入图像描述

提高min_val到 230 会稍微打破之前在底部/左侧/右侧的正确边界:

在此处输入图像描述

将其提高到 240 会给我一个奇怪的结果:

在此处输入图像描述

但是即使我能够通过bbox过滤器达到完美的效果,这种技术也不是万无一失的,原因很明显(min_val应该任意选择,烧录的字幕可以是不同的颜色,字幕后面的图像可以是取决于视频源等,同样甚至更亮)。

所以如果可能的话,我想知道:

  1. 是否有过滤器或其他技术可以与 ffmpeg 一起使用来做我想做的事
  2. 是否有另一个 CLI 工具或编程库来实现这一点
  3. 任何可能有帮助的提示(也许我以错误的方式看待问题)
0 投票
1 回答
618 浏览

python - 使用需要编码的moviepy向视频添加字幕

我有一个名为subtitles.srt非英语的 srt 文件,我遵循了 moviepy 包的文档和源代码的说明(https://moviepy.readthedocs.io/en/latest/_modules/moviepy/video/tools/字幕.html):

这给出了错误TypeError: __init__() got an unexpected keyword argument 'encoding'

在源代码中,该类SubtitlesClip确实有一个关键字参数encoding。这是否意味着源代码的版本已过时或什么?我能做些什么呢?我什至尝试将moviepy.video.tools.subtitles带有encoding关键字参数的源代码直接复制到我的代码中,但它导致了更多错误,例如:

它未能导入装饰器convert_path_to_string

源代码似乎与我安装的不一致。无论如何要修复它?如果没有,是否有任何用于插入字幕或视频编辑的 Python 库的替代方案?

编辑:我目前的解决方案是创建一个子类SubtitlesClip并覆盖父类的构造函数:

我实际上只改了两行,但我必须创建一个新类并重新定义整个东西,所以我怀疑它是否真的有必要。还有比这更好的解决方案吗?

0 投票
1 回答
294 浏览

video - 有没有办法提高在 ffmpeg 中将字幕刻录到视频的速度

目前,我是这样做的:ffmpeg -i video.mkv -vf subtitles=video.mkv out.mp4但是对于某些视频,大约需要 55 分钟左右,但使用手刹时,即使我调整了启用超快模式的实例的设置,也只需 10 分钟即可将字幕刻录到视频。有没有办法提高速度:也许保存质量较差的输出文件或其他什么?

0 投票
1 回答
135 浏览

animation - FFmpeg多个drawtext过滤器彼此相邻

我想用 ffmpeg 在视频上绘制文本

  • 有多条线路
  • 这些行中的一些单词是粗体文本样式,而另一些则不是
  • 线条需要使用时间线选项进行动画处理

我在这里有什么选择?我知道当要使一行中的某些单词变粗时,我最好使用字幕过滤器。但据我所知,我不能为字幕制作动画,对吧?

这就是为什么我想知道我是否可以使用多个相互相邻的drawtext过滤器。但是如何将一个drawtext的宽度信息传递给下一个drawtext以使其匹配正确的坐标?

0 投票
0 回答
122 浏览

python - 由于 Imagemagick 的错误,无法用 moviepy 编写文本剪辑

我正在尝试将 TextClip 写入带有 moviepy 的视频中。它一直在工作,但是在我重新安装 ffmpeg 后,它不再工作了(我不确定它是否导致它,但我提到它以防万一)。一些 TextClip 对象是纯空间。

我收到以下错误消息:

我尝试了多种方式解决问题,比如检查config-default.pymoviepy安装目录中的文件,它指向的ImageMagick的路径没有错。我试图重新安装ImageMagick,它也没有用。我尝试将policy.xmlImageMagick 目录中的文件从noneto编辑read|write,但它也不起作用。任何人都可以提出其他可能的解决方案吗?

0 投票
0 回答
82 浏览

html - 如何删除 WebVTT 生成的字符轮廓?

我想用 WebVTT 文件为视频添加标题,并注意到字符是自动勾勒出来的(所附图片中的黑线,如 html/CSS 的“文本笔划”),但我希望删除这些轮廓。我可以使用特定的 CSS 来实现这一点吗?请参考附件图片和我的 CSS 和 WebVTT 文件。提前感谢您的帮助。

在此处输入图像描述

0 投票
1 回答
245 浏览

html - 将 WebVTT 文本覆盖(字幕)定位在视频的四个角落

我在定位 WebVTT 字幕时遇到问题。我想在视频的四个角落放置 4 个占位符,以便在视频中发布一些额外的数据。问题是,定位的行为很奇怪,我想这样做有点不合时宜,所以如果我为此完全滥用 WebVTT,请在评论中让我知道通常支持的方式。

我目前取得的成绩

在此处输入图像描述

使用视频:https ://www.w3schools.com/html/mov_bbb.mp4

HTML:

track.vtt 文件:

<video>在开发工具中强调了元素。

如您所见,“A”、“B”和“C”字幕正确放置在视频的角落。但由于某种原因,“D”未对齐并向左移动。

任何想法如何解决这个问题并将“D”放在视频的右下角?

0 投票
0 回答
193 浏览

m3u8 - 在 m3u 播放列表中结合来自两个不同来源的视频和字幕

是否可以有一个.m3u播放列表,其中包含从两个不同来源获取的视频和字幕?例如,一个视频文件,比如说.mp4,位于

www.somedomain.com/example-video.mp4

.srt格式的字幕文件位于

www.anotherdomain.com/example-video.srt

我已经尝试了一切,但似乎没有什么对我有用。这可以通过.m3u播放列表格式来完成吗?

谢谢!

0 投票
0 回答
63 浏览

javascript - tvOS TVML 应用程序 - 外部 WebVTT 字幕轨道

我们的团队正在开发一个 TVML 视频存档应用程序。最近我们遇到了自定义字幕的问题。是否可以为基于 TVMLKit JS 的应用程序加载自定义/外部 WebVTT 字幕轨道?

我们正在尝试快速创建/修改我们自己的播放器并将这个对象传递给 javascript,但没有成功。

现在我们正在使用我们在 javascript 中创建的实例的基本播放器:

这将创建一个 IKJSPlayer 对象。问题是:我们可以修改 IKJSPlayer 的功能,还是可以创建一个基于 IKJSPlayer 的新对象并重写他的一些功能?

我们是否错误地看待这个问题,我们是否应该尝试以不同的方式解决它?

感谢您的任何建议。

0 投票
3 回答
83 浏览

javascript - 如何使用 JavaScript 正则表达式拆分此文本?

我想拆分此文本。我正在尝试使用 JavaScript 正则表达式来做到这一点。

(1) 真的没有。(2) 嗯。(3)看哪,王子(4)是他自然元素的关键,畏缩在他生命中女人的摆布之下。(5) 见我,也许你想和我的女儿们一起吐口水,教她们一些组合。(6) 陛下,您无疑是最好的老师。(7) 例如,是我女儿教我现代世界的语言。

我想将其解析为片段组。我正在寻找这些结果之一。

我使用这种模式。

请问你能帮帮我吗?我应该使用什么模式来正确拆分文本?

先感谢您!