私は最近、ウェブカメラオプションを検討しており、GStreamerを使用して解決しました。別のネイティブライブラリが必要ですが、これらをあなたのプログラムとバンドルすることができます(ライセンスを確認してください)。
良いニュースは、ビデオとオーディオのストリーミングを内蔵していることです。悪いニュースは、信じられないほど柔軟性があるので、あなたの頭を抱くのに少し時間がかかることです。次に、Windowsのコマンドラインからストリームを設定する例を示します。 alsasinkするv4l2srcとdirectsoundsinkするLinuxの変更ksvideosrcについては
moving audio over a local network using GStreamer
:
Send video:
gst-launch ksvideosrc ! queue ! video/x-raw-yuv,width=320,height=240,framerate=4/1 ! videorate ! videoscale ! ffmpegcolorspace ! queue ! smokeenc ! queue ! udpsink host=[TARGET_IP_ADDRESS] port=5000
Receive video:
gst-launch udpsrc port=5000 ! smokedec ! autovideosink
Send audio:
gst-launch audiotestsrc ! audioconvert ! audio/x-raw-int,channels=1,depth=16,width=16,rate=44100 ! rtpL16pay ! udpsink host=[TARGET_IP_ADDRESS] port=5001
Receive audio:
gst-launch udpsrc port=5001 ! "application/x-rtp,media=(string)audio, clock-rate=(int)44100, width=16, height=16, encoding-name=(string)L16, encoding-params=(string)1, channels=(int)1, channel-positions=(int)1, payload=(int)96" ! rtpL16depay ! audioconvert ! audioresample ! directsoundsink
サウンドストリームは、ここでの回答から適応されています。
http://code.google.com/p/gstreamer-java/
そして、ここにあるいくつかのより多くの有用なリンク:
GStreamer Manual
Cheat Sheet
Webcam Examples、コマンドライン上で可能なものはすべてのgstreamer-Javaライブラリを使用してJava内から可能です
Streaming Info
素晴らしいです! GStreamerとそのJavaインターフェイスの基本的な使い方を学んだら、私は自由にWebカメラにアクセスできます。 :) PS:すべてのクライアントはGStreamをインストールしなければならないので、GStreamをインストールしない別のマシンでプログラムを実行するより良い方法はありますか? –
私はそれは可能だと思うけど、それは少し醜いですし、私は免許や賢明であるかどうかは分かりません。 Windowsでは、GStreamerはPATHおよびGST_PLUGIN_PATH環境変数を使用してDLLをロードします。アプリケーションのフォルダ内のディレクトリを指すようにアプリケーションを起動する前に、それらの変数を(あなたのプロセスのためだけに)変更すると、GStreamerをインストールする必要はありません。私が以前に言ったように - 私はそれを推奨しないか、それが合法であるかどうかを知りません! –
Ahha、私はちょうど学習のためにそれを使用します:) –