【发布时间】:2014-11-22 11:10:25
【问题描述】:
我正在开发一种网络应用程序,它可以将实时视频源从一个应用程序异步发送到另一个应用程序,有点像 Skype。我遇到的主要问题是我希望能够发送帧,但不必每次在接收之前都知道它们的大小。
AForge.NET 在处理图像时的工作方式是当前帧的大小很可能与前一帧不同。大小不是静态的,所以我只是想知道是否有办法实现这一点。而且,我已经尝试过先发送长度,然后发送帧,但这不是我想要的。
【问题讨论】:
-
TCP 是一种流 协议。所以没有像 packet size 这样的东西。 (当你阅读时,你不能保证它是作为单个数据包发送的)所以要么在数据包长度前加上前缀,要么在数据包之间使用分隔符/字符串。
-
AForge 将帧转换为 RGB24 位图,因此您几乎可以保证任何图像的长度都与前一个相同,除非您更改相机配置。但是将图像长度作为前缀发送到有效负载仍然是要走的路。
标签: c# sockets tcp video-streaming aforge