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

Posted

技术标签:

【中文标题】将图像、音频和文本流批量导出到浏览器中的视频【英文标题】:Bulk exporting image, audio and text streams to a video in browser 【发布时间】:2021-10-14 09:04:27 【问题描述】:

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

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

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

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

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

谢谢!

【问题讨论】:

【参考方案1】:

我认为WebCodecs 是您正在寻找的。这是使用内置浏览器 API 比实时更快地生成视频文件的唯一方法。

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

【讨论】:

以上是关于将图像、音频和文本流批量导出到浏览器中的视频的主要内容,如果未能解决你的问题,请参考以下文章

如何将 ffmpeg 流中的音频传输到 nginx rtmp 服务器?

iOS AVFoundation 导出会话缺少音频

使用 ffmpeg 和 python 将视频中的所有音频流提取到单独的音频文件中

mac怎么把视频中的音频提取出来?

支持vue3.0 中的音频插件都有哪些?

如何把视频里的文字提取出来,做成WORD格式的?急啊,帮帮忙啊