Google chrome 将数据从Chrome浏览器流到本地计算机的最快方式

Google chrome 将数据从Chrome浏览器流到本地计算机的最快方式,google-chrome,webgl,shared-memory,Google Chrome,Webgl,Shared Memory,我喜欢将Chrome上的HTML、JS、WebGL应用程序中的视频数据流到本地Linux机器上 虽然XMLHttpRequest通常可以有效地将数据推送到Internet,但如果要将数据发送到本地机器上的某个接收器,这可能是一个很大的瓶颈。例如,WebGL纹理将经历几个转换(GPU到CPU ram,到JavaScript类型的数组,到字符串,通过Chrome的网络层,到HTTP,到TCP,到IP…) 有没有更有效的方法,例如将二进制canvas内容或WebGL帧缓冲区或纹理数据发送到某些本地机器

我喜欢将Chrome上的HTML、JS、WebGL应用程序中的视频数据流到本地Linux机器上

虽然
XMLHttpRequest
通常可以有效地将数据推送到Internet,但如果要将数据发送到本地机器上的某个接收器,这可能是一个很大的瓶颈。例如,WebGL纹理将经历几个转换(GPU到CPU ram,到JavaScript类型的数组,到字符串,通过Chrome的网络层,到HTTP,到TCP,到IP…)

有没有更有效的方法,例如将二进制
canvas
内容或WebGL帧缓冲区或纹理数据发送到某些本地机器进程?
如果不是,Chrome扩展是否可以访问WebGL数据和本地套接字/共享MMAP/任何东西?

我不知道有什么更快的方法。您可以发送二进制XHR。您可以发送二进制WebSocket。我使用文本WebSocket是因为
cavnas.toDataURL
是压缩的。PNGs与发送原始二进制文件或尝试将字符串转换为二进制文件相比。在任何情况下它都很慢。是的,
toDataURL
相当慢,就像PNG压缩一样。强制它进行JPG压缩要快得多(至少在Chrome中是这样),但视频传输速度仍然很慢
XMLHttpRequest
可以在(某些?)浏览器上传输一个
Blob
,它似乎可以包装JS类型的数组,比如
Uint32Array
。然而,将画布图像传输到这样的数组需要在JS中实现几个复制步骤。(将纹理绘制到GL帧缓冲区,将帧缓冲区读取到数组)。ffmpegserver的性能如何?它能在更大的机器上播放25fps的高清视频吗?速度非常慢。通过网络发送那么多数据速度很慢。这就是压缩的全部要点。要在网络上获得任何速度,您需要在浏览器中进行压缩。