如何解决实时将 Blob 块转换为视频
我有一个客户端,可以将您的摄像头流式传输到 blob,然后再通过 socket.io 发送到另一个客户端。但是我一直在努力在这个客户端中实时显示这些 blob。让我们看看代码:
<video id="video"></video>
<script src="/socket.io/socket.io.js"></script>
<script>
const socket = io('/');
const mediaSource = new MediaSource();
const url = URL.createObjectURL(mediaSource);
const video = document.getElementById("video");
const arrayOfBlobs = [];
video.src = url;
socket.on('stream',blob => {
console.log(blob);
arrayOfBlobs.push(blob);
appendToSourceBuffer();
});
let sourceBuffer = null;
mediaSource.addEventListener("sourceopen",() => {
sourceBuffer = mediaSource.addSourceBuffer("video/webm; codecs=\"opus,vp8\"");
sourceBuffer.addEventListener("updateend",appendToSourceBuffer);
});
function appendToSourceBuffer() {
if (
mediaSource.readyState === "open" &&
sourceBuffer &&
sourceBuffer.updating === false
) {
sourceBuffer.appendBuffer(arrayOfBlobs.shift());
}
}
</script>
基本上,我试图获取从 socket.io 接收到的 blob,并将其转换为源缓冲区,以便附加到 html 上的标记视频,但注意到发生了。所有的斑点都完美无缺,但我认为我需要在此之前做一些 tratative....
有人吗?谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。