Chrome 本机消息传递:我可以将 MediaStream 流式传输到本机程序吗?

Chrome native messaging: can I stream a MediaStream to a native program?

我正在编写需要在主机 window 系统中显示本机 window 的 Web 应用程序。 window 必须显示正在流式传输到 Web 应用程序的视频。

我已经为 OS X 编写了一个本机程序,它以我需要的方式显示视频,并且在 Web 应用程序中我有一个 MediaStream 通过 WebRTC 发送。我需要将它们连接在一起。

我想使用 Chrome 的本机消息传递,它允许我将 JSON 对象流式传输到本机程序。如果我可以从 MediaStream 访问原始数据流,我应该能够将其转换为 JSON 对象,将它们流式传输到本机应用程序,在那里我可以重建原始视频流。

这样的事情可能吗?

如果可能,我强烈建议在您的本机应用程序中实现 WebRTC 媒体服务器,并在浏览器的 WebRTC API 和您的服务器之间直接通信。其他任何东西都有更多的开销。

例如,要从 MediaSource 转到本机消息传递,您需要一种方法将 MediaSource 中的音频和视频提要序列化为字节序列,然后通过本机消息传递通道(将是 JSON-encoded 由浏览器,然后 JSON-decoded 由您的本机应用程序)。

这听起来效率很低,而且可能确实如此,所以您最好在本机应用程序中实现 WebRTC 媒体服务器以获得合理的性能。