4

現在、Java のライブ ストリームからウィンドウでビデオ ファイルを再生しようとするプロジェクトで忙しくしています。InputStreamReader を使用して、Socket オブジェクトを介してストリームをキャプチャすることができました。

次のステップでは、既存のライブラリ (Xuggler) またはコードを使用してこのストリームをデコードし、コンテンツ (ビデオ) を単純なウィンドウに表示します。

ストリームは、IP アドレス 192.168.1.1:5555 経由で Parrot AR Drone 2.0 から発信されます。それが私たちが立ち往生したところです。使用しようとしているコードは、次の DecodeandPlayVideo の例です。

https://github.com/xuggle/xuggle-xuggler/blob/master/src/com/xuggle/xuggler/demos/DecodeAndPlayVideo.java

これを入力ストリームで使用できるようになりましたが、もちろん正しい形式である必要があります。これを行うのを手伝ってくれる方法はありますか?

4

2 に答える 2

3

私たちは問題を解決しました:

まず、ドローンへの TCP 接続を作成します。

try
    {
        socket_video_tcp = new Socket();
        socket_video_tcp.connect(new InetSocketAddress(commandSender.droneInetAddress, commandSender.VIDEO_PORT));
    }

私たちのクラスは Runnable です。つまり、メソッド run() もあります。このメソッドでは、video_enable コマンドを送信し、次のコマンドを送信して動的ビデオ ビットレートも無効にします。

public void run()
{
    commandSender.sendConfigCommand("VIDEO_ENABLE");
    commandSender.sendConfigCommand("VIDEOBITRATE");

    decode();
}

私たちの decode() メソッドはここにあります: https://github.com/xuggle/xuggle-xuggler/blob/master/src/com/xuggle/xuggler/demos/DecodeAndPlayVideo.java

このデコード メソッドでは、次のように変更しました。

 if (container.open(filename, IContainer.Type.READ, null) < 0)

これに:

if (container.open(socket_video_tcp.getInputStream(), null) < 0)

それで全部です!!

于 2012-12-07T09:03:39.380 に答える
0

問題の編集からコピー:

今日、私たちはこの問題を解決しました。以前、 socketconnection.getInputStream を使用してソケット接続を Icontainer.open にロードしようとしました。結果は 0 ストリームでした。いくつかの小さな調整の後、結果は 1 つのストリームになり、ドローンからのライブ ビデオが画面に表示されます。

于 2012-12-06T20:11:13.807 に答える