如何使用Indy TCPServer / Client将转换为位图的视频发送到客户端?

时间:2013-04-29 09:27:17

标签: delphi video-streaming delphi-7 indy

顺便说一下,我很抱歉我的英语不好。 我想在这个场景中使用Indy在客户端和服务器之间创建一个流视频系统,带有步进电机的网络摄像头通过USB端口直接连接到服务器。然后服务器进行记录,并使用套接字将已捕获的图像发送到客户端,在这种情况下我使用Indy TCPSocket。该系统类似于CCTV系统。换句话说,该系统是单向通信。我在编码方面做的是使用以下代码将视频转换为位图:

procedure TFormHome.Timer1Timer(Sender: TObject);
begin
  VideoGrabber.GetBitmap(FormStream.Image1.Picture.Bitmap);
end;

但我仍然感到困惑的是如何将图像连续传输到客户端,以便客户端接收到的图像成为动态图片。因为我知道图像无法直接发送,必须转换为字节数组。

也许您可以向我展示示例脚本,使用Indy TCPServer / Client将位图图像发送到客户端。

谢谢。

1 个答案:

答案 0 :(得分:3)

您在TBitmap对象中有位图。最简单的解决方案是使用TStream将其保存到TBitmap.SaveToStream(),然后使用Indy的TIdIOHandler.Write(TStream)TIdIOHandler.ReadStream()方法进行传输。