0

我正在使用 XSockets 将实时图像数据发送到任何连接的客户端。每个图像都相当大(最高 1080p 质量),视频最高可达 30fps。因此,有相当数量的数据被转移。每当我获得新图像时,我都会触发一个事件,并且当前将原始字节数组传递给客户端

void NewImage(byte[] imgData)
{
    this.InvokeToAll(imgData, "newimage");
}

我的 java 脚本处理程序当前是空的,甚至没有对接收到的数据做任何事情(我通过在接收到新图像时打印消息等来确保它可以工作)。

如果没有 InvokeToAll 代码,我的程序运行没有任何问题,并且我之前使用相同的代码渲染到 Winforms 没有任何问题。运行此代码几秒钟后,由于内存不足异常,它崩溃了。有什么我在这里遗漏的吗,imgData 从它发送的地方被清空(在将它发送到客户端之后)并且代码在 XSockets 之外工作没有任何问题。

4

1 回答 1

0

正如我们在问题的评论线程中得出的结论,似乎使用 WebSockets 进行视频流传输是可能的,但这意味着实现自定义视频流编解码器,恕我直言,这应该超出您的项目范围 -重新发明轮子-。

如果您在 .NET 领域,您应该使用 Windows Server 系统作为托管环境,这意味着您可以利用Windows Server Media Pack按照此链接了解有关该主题的更多信息

应该有其他选项可以将视频流式传输到 Web,这只是其中之一。

于 2014-09-12T07:34:56.490 回答