2

Sony Remote Api をサポートするカメラに接続するために、TIdHttp (Indy コンポーネントから) を使用しています。カメラは、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;

プログラムはライブ ストリームに正常に接続され、カメラからのライブ ビューの受信を開始します。ただし、カメラからの受信を 5 秒間ランダムに停止します (プログラムはアイドル状態で、フリーズしません)。TIdHttp をICSの THttpCli に置き換えましたが、問題は解決しません。

どんな助けでも大歓迎です!

編集:

curl ツールを使用して問題がプログラム内にあるかどうかを調べましたが、問題は残りました。カメラと PC の間で送信されるパケットを盗聴します。遅延時間のスクリーンショットは次のとおりです。

ここに画像の説明を入力

4

0 に答える 0