首页  >  问答  >  正文

有没有办法从 Safari 中的 HTML 视频标签捕获音频和视频?

在chrome和firefox中,我们可以使用HTMLMediaElement.captureMediaStream()来捕获流。但 Safari 不支持 HTMLMediaElement.captureMediaStream()。

视频标签的来源是分段接收的 hls 数据。

是否有其他方法在 Safari 中将媒体数据捕获为 MediaStream?

P粉904450959P粉904450959182 天前340

全部回复(1)我来回复

  • P粉845862826

    P粉8458628262024-04-01 11:13:54

    Safari 不支持直接 captureMediaStream 方法,至少目前如此,如您所见,但实现此目的的一种方法是使用基于浏览器 ffmpeg 的方法。

    过去,在浏览器中运行 ffmpeg 对于大多数任务来说并不现实,因为它太大且太慢,但最近基于 WASM(Web 程序集)的 ffmpeg 实现使其更易于访问。

    您可以利用以下库构建自己的基于 ffmpeg 的解决方案:

    您确实需要意识到 SharedArrayBuffer 支持的必要性:

    上面提到的链接在这里:https://caniuse.com/sharedarraybuffer

    我发现它对于许多常见的 ffmpeg 任务效果很好,但它对较大的视频文件很敏感 - 我没有尝试过 HLS 到文件转换,因此您需要进行试验才能看到它满足您的需求。这里有一个演示,您可以在其中测试您的用例:https://ffmpegwasm.netlify。应用程序/#demo

    您要使用的 ffmpeg 命令取决于音频,但很可能:

    (有关详细信息,请参阅此问题和答案:将 HLS (m3u8) 转换为 MP4

    还有一些开源现成的解决方案可供您查看 - 例如:

    回复
    0
  • 取消回复