web-dev-qa-db-fra.com

Streaming webcam utilisant gstreamer sur UDP

Voici ce que j'essaye:

gst-launch -v udpsrc port=1234 ! fakesink dump=1

Je teste avec:

gst-launch -v audiotestsrc ! udpsink Host=127.0.0.1 port=1234

Et tout fonctionne bien, je peux voir les paquets arrivant du audiotestsrc

Permet maintenant de tester avec la source webcam:

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

Et rien ne se passe, aucun paquet n'apparaît dans le vidage.

Voici un logdump de ce que montre verbeux sur le serveur.

Quelqu'un at-il une idée à ce sujet?

15
David Benko

Essayez-les (vous devrez peut-être installer des plugins gstreamer-laid pour celui-ci)

streaming UDP depuis la webcam (streaming sur le réseau)

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

Streaming UDP reçu de la webcam (réception via le réseau)

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

Mise à jour

Pour déterminer la charge utile à la fin du streaming, utilisez simplement l'option verbose avec gst-launch -v ...

19
enthusiasticgeek

Peut-être que les paquets sont trop gros pour udp? Ils sont limités à 64K. Essayez de redimensionner les cadres à une taille très petite pour vérifier si c'est la raison. Si tel est le cas, vous pourriez être intéressé par certains compresseurs et chargeurs/dépayloaders (gst-inspect | grep pay).

4
peper0