将图像、音频和文本流批量导出到浏览器中的视频

Bulk exporting image, audio and text streams to a video in browser

假设我在客户端的浏览器中有海报图片、音轨和字幕文件(SRT/WebVTT 或任何其他合适的格式)。我想将其导出为视频。

例如,我希望在客户端创建这样的视频(在我获得必要的图像、音频和文本数据之后):https://twitter.com/yayalexisgay/status/1440779723219423238

我在各自的缓冲区中有音频和图像数据,并且有一个字幕文件(例如从 Google Speech to Text API 获得)。如何创建像上面 link 中的视频?

我知道它可以在后端使用 FFmpeg 之类的工具或客户端的 WebAssembly 端口来实现。但是,FFmpeg 不是一个选项。或者,我可以将所有流逐帧转储到 canvas 上,然后将 canvas 流导出到视频 - 但是这需要我实际播放整个音轨 - 这可能需要一些时间。

有没有办法,使用浏览器的内置编解码器将单个 streams/buffers 组合成一个视频?

谢谢!

我认为 WebCodecs 就是您要找的。这是使用内置浏览器 API 以比实时更快的速度生成视频文件的唯一方法。

它仍然很新,仅在 Chrome 中可用(自 v94 起)。 Firefox 也打算支持它。