Потоковая веб-камера с использованием gstreamer через UDP - PullRequest
15 голосов
/ 06 октября 2011

Вот что я пытаюсь:

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 того, что подробно показывает на сервере.

Кто-нибудь знает об этом?

Ответы [ 2 ]

19 голосов
/ 15 июля 2012

Попробуйте это (возможно, вам придется установить gstreamer-уродливые плагины для этого)

Потоковая передача 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

Поток UDP, полученный с веб-камеры (прием по сети)

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

Обновление

Чтобы определить полезную нагрузку на конце потоковой передачи, просто используйте подробныйопция с gst-launch -v ...

4 голосов
/ 06 марта 2012

Может быть, пакеты слишком велики для udp?Они ограничены 64К.Попробуйте изменить размер фрейма до действительно небольшого размера, чтобы проверить, является ли это причиной.Если это так, то вас могут заинтересовать некоторые типы сжатия и payloaders / depayloaders (gst-inspect | grep pay).

...