我的 Javascript 应用程序通过 Websocket 连接获取 WebM 视频流。远程对等方发送视频帧和应用程序获取它们之间没有延迟。
我MediaSource在应用程序中创建了一个对象,“附加视频帧”,并让视频元素显示它:
video.src = window.URL.createObjectURL(mediaSource);
Run Code Online (Sandbox Code Playgroud)
这很好用,但有一些(不到一秒)延迟,这可以说使这个解决方案不是视频通话的最佳选择。
显然,一些 WebRTC 应用程序使用MediaStream:
video.srcObject = mediaStream;
Run Code Online (Sandbox Code Playgroud)
...这些显示没有延迟。
我无法从文档浏览器确定是否处理src和srcObject不同。
我找不到的另一件事是,是否可以MediaStream像使用MediaSource. 我想尝试这样做只是为了检查是否srcObject不会导致我的应用程序出现上述延迟。
如果我使用:
video.srcObject = mediaSource;
Run Code Online (Sandbox Code Playgroud)
我收到错误:
类型错误:无法在“HTMLMediaElement”上设置“srcObject”属性:提供的值不是“MediaStream”类型