我正在使用XSockets将实时图像数据发送到任何连接的客户端。每张图像都相当大(高达1080p质量),视频最高可达30fps。因此,有相当数量的数据被转移。每当我得到一个新图像时,我都会触发一个事件,并且当前将原始字节数组传递给客户端
void NewImage(byte[] imgData)
{
this.InvokeToAll(imgData, "newimage");
}
我的java脚本处理程序当前是空的,甚至不对接收到的数据做任何事情(我已经确保它在收到新图像时打印消息等)。
没有InvokeToAll代码我的程序运行没有任何问题,我使用相同的代码呈现给Winforms之前没有任何问题。运行此代码几秒后,由于内存不足异常而导致其崩溃。有没有我在这里遗漏的东西,imgData从它发送的地方(在发送给客户端之后)被取消,并且代码在XSockets之外工作而没有任何问题。
答案 0 :(得分:0)
正如我们在问题的评论主题中得出的结论,似乎可能使用WebSockets进行视频流传输,但这意味着实现自定义视频流编解码器,而恕我直言,这应该超出您的项目范围 - 重新发明方向盘 - 。
如果您在.NET领域,那么您应该使用Windows Server系统作为托管环境,这意味着您可以利用Windows Server Media Pack。 Follow this link for more info about the topic。
应该有其他选项将视频流式传输到网络,这只是其中之一。