web-dev-qa-db-ja.com

UDP経由のgstreamerを使用したウェブカメラストリーミング

これが私が試していることです:

_gst-launch -v udpsrc port=1234 ! fakesink dump=1_

私はテストします:

_gst-launch -v audiotestsrc ! udpsink Host=127.0.0.1 port=1234_

そして、すべてが正常に動作し、audiotestsrcから到着するパッケージを確認できます

次に、ウェブカメラのソースでテストしてみましょう。

gst-launch -v v4l2src device=/dev/video0 ! queue ! videoscale method=1 ! "video/x-raw-yuv,width=320,height=240" ! queue ! videorate ! "video/x-raw-yuv,framerate=(fraction)15/1" ! queue ! udpsink Host=127.0.0.1 port=1234

そして、何も起こりません、パッケージはダンプに現れません。

以下は、サーバーに表示される詳細の logdump です。

誰かがこれについて手がかりを持っていますか?

15
David Benko

これらを試してください(このプラグインにはgstreamer-uglyプラグインをインストールする必要がある場合があります)

WebcamからのUDPストリーミング(ネットワーク経由のストリーミング)

gst-launch v4l2src device=/dev/video0 ! 'video/x-raw-yuv,width=640,height=480' !  x264enc pass=qual quantizer=20 tune=zerolatency ! rtph264pay ! udpsink Host=127.0.0.1 port=1234

Webカメラから受信したUDPストリーミング(ネットワーク経由で受信)

gst-launch udpsrc port=1234 ! "application/x-rtp, payload=127" ! rtph264depay ! ffdec_h264 ! xvimagesink sync=false

更新

ストリーミングエンドでペイロードを確認するには、gst-launch -v ...で詳細オプションを使用します。

19

多分パケットはUDPには大きすぎますか? 64Kに制限されています。これが理由かどうかを確認するには、フレームのサイズを本当に小さいサイズに変更してみてください。もしそうなら、いくつかの圧縮とペイロード/デローダー(gst-inspect | grep pay)。

4
peper0