Подтвердить что ты не робот

Потоковая передача веб-камеры с использованием gstreamer через UDP

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

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 каких подробных показов на сервере.

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

4b9b3361

Ответ 1

Попробуйте (возможно, вам придется установить 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 ...

Ответ 2

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