Gibt es eine Möglichkeit, Audio und Video aus dem HTML-Video-Tag in Safari aufzunehmen?
P粉904450959
P粉904450959 2024-03-31 12:27:03
0
1
512

In Chrome und Firefox können wir HTMLMediaElement.captureMediaStream() verwenden, um den Stream zu erfassen. Aber Safari unterstützt HTMLMediaElement.captureMediaStream() nicht.

Die Quelle des Video-Tags sind die in Segmenten empfangenen HLS-Daten.

Gibt es eine andere Möglichkeit, Mediendaten als MediaStream in Safari zu erfassen?

P粉904450959
P粉904450959

Antworte allen(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

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

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage