2012-01-05 13 views
3

私は内部アドレスとウェブサーバを持つmjpgストリームを持つシンプルなipカメラを持っているプロジェクトに取り組んでいます。サーブレットを介してカメラのフィードを提供して、各インストールでポート転送を必要としないようにしたいと考えています。私の理想的な状況は、ユーザが(ネットワーク上の)mjpgの場所のURLを入力するだけで、サーブレットは残りの部分を処理するということです。内部IPカメラmjpegストリームをサーブレット経由で配信するには?

これを実装する方法がわかりません。実際には自分自身でmjpgストリームを作成していないので、すでに存在するものを使用しています。私のWebサーバーに猥褻な要求を出すことなくこれを行う方法はありますか?

私の面では、私はJ2MEで動作するライブラリに制限されています。

答えて

1

サーブレットでは、HttpRequestObjectをURL、メソッド、おそらくは受け入れ可能なヘッダで調べ、適切なカメラのIPアドレスでHttpURLConnectionを作成して接続するだけです。カメラからの応答が返ってくると、レスポンスから適切なエントリをコピーしてServletResponseオブジェクトに設定し、クライアントレスポンス入力ストリームとクライアント要求の出力ストリームを取得し、あるストリームから別のストリームにバイトをコピーします完了したらすべてを閉じます。

JAX-RSリファレンス実装のJerseyのようなものを配置することができれば、これはさらに簡単になります。

0

だから、基本的には、単一のサーブレットを介して接続する複数のカメラをプロキシしたいのですか?

あまりにも難しくありません。サーブレット内の要求されたURLへのソケット接続を開くだけです。

「http:// myservlet/servlet?url = http:// camera_url_here」のリクエストがあった場合、HTTPを使用していると仮定すると、カメラのURLへの接続を開くことができます。受け取ったバイトをHttpServletResponseのOutputstreamに書き込みます。マップにソケット接続を張り付けて、同じカメラに無駄に2回接続する必要はありません。 HttpServletResponseオブジェクトで正しいMIMEタイプをコピー/設定することを忘れないでください。

あなたはhttp://www.videolan.org/vlc/streaming.htmlを見ましたか?私はそれがすでにこれを行うことができるとかなり確信しています。

関連する問題