2

我正在使用 TIdHttp(来自 Indy 组件)连接到支持 Sony Remote Api 的相机。摄像机将实时取景流作为 HTTP GET 命令的响应发送到 http 连接。我编写了一个 TStream 子类并将其用作流类。这是我连接到直播的代码:

  liveStream := TLiveStream.Create;
  IdHttp1.Get('http://192.168.122.1:8080/liveview/liveviewstream', liveStream);

TLiveStream 类的定义如下:

TLiveStream = class(TStream)
public
    constructor Create;
    function Read(var vBuffer; aCount: Longint): Longint; override;
    function Write(const aBuffer; aCount: Longint): Longint; override;
    function Seek(const aOffset: Int64; aOrigin: TSeekOrigin): Int64; override;
end;

程序正在成功连接到实时流并开始接收来自摄像机的实时视图。但它会随机停止从相机接收任何东西五秒钟(程序空闲并且不会冻结)。我用ICS的THttpCli 替换了 TIdHttp,但问题没有解决。

任何帮助将不胜感激!

编辑:

我使用 curl 工具找出问题是否在我的程序中,但问题仍然存在。我嗅探相机和PC之间传输的数据包,这是延迟时间的截图:

在此处输入图像描述

4

0 回答 0