3

ソケットを使用してJavaでC/Sチャットプログラムを作成したいのですが、オンラインビデオチャット機能を追加したいと思います。グーグルの後、私はjmfを見つけていくつかのチュートリアルに従いましたが、すべてのクライアントがjmfをインストールし、ウェブカメラ(または他のオーディオデバイス)を登録する必要があるため、私はそれが本当に好きではありません。

だから私はjmfのない別のlibを楽しみにしていて、(juv、xuggle)のようなlibを見つけて、うまく機能します。残念ながら、彼らはウェブカメラを運転することしかできず、オーディオデバイスにアクセスすることはできません。

誰かアドバイスをいただけますか?

4

2 に答える 2

4

私は最近ウェブカメラのオプションを検討しており、GStreamer を使用することに決めました。個別のネイティブ ライブラリが必要ですが、これらをプログラムにバンドルできる場合があります (ライセンスを確認してください)。

良いニュースは、ビデオとオーディオのストリーミングが組み込まれていることです。悪いニュースは、信じられないほど柔軟であるため、理解するのに少し時間がかかることです. 以下は、Windows のコマンド ラインからストリームを設定する例です。

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

サウンド ストリームは、こちらの回答から適応されます。

GStreamer を使用してローカル ネットワーク上でオーディオを移動する

Linux の場合、ksvideosrc を v4l2src に、directsoundsink を alsasink に変更します。コマンド ラインで可能なことはすべて、gstreamer-java ライブラリを使用して Java 内から実行できます。

http://code.google.com/p/gstreamer-java/

さらに便利なリンクを次に示します。

GStreamer マニュアル

カンニングペーパー

ウェブカメラの例

ストリーミング情報

于 2012-04-21T10:16:52.620 に答える