有没有办法从 Safari 中的 HTML 视频标签捕获音频和视频?
P粉904450959
P粉904450959 2024-03-31 12:27:03
0
1
509

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

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

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

P粉904450959
P粉904450959

全部回复(1)
P粉845862826

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

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

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

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

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

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

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板