2011-10-06 16 views
13

Aquí es lo que estoy tratando:cámara web de streaming a través de UDP usando GStreamer

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

que probar con:

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

Y todo funciona bien, puedo ver los paquetes que llegan desde el audiotestsrc

Ahora probemos con la fuente de la cámara web:

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

Y no ocurre nada, no aparece ningún paquete en el volcado.

Aquí hay un logdump de lo que muestra detallada en el servidor.

¿Alguien tiene una pista sobre esto?

+1

olvidó de mencionar: la sustitución de udpsink con autovideosink por ejemplo, puedo ver la cámara web bien –

Respuesta

17

Pruebe estos (Es posible que tenga que instalar plugins de gstreamer-fea para éste)

de streaming UDP de la webcam (corriente por la red)

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 Transmisión recibió de cámara web (recibir través de la red)

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

Actualización

Para determinar la carga útil al final de streaming sólo tiene que utilizar la opción verbosa con gst-launch -v ...

+2

Es una buena idea incluir una cola entre la codificación y la transmisión. Permite un mejor tiempo y menos reproducción nerviosa. –

+0

@AtillaFiliz Tiendo a usar 'cola' cuando trabajo con 'tee' aunque su punto puede ser válido en este caso. – enthusiasticgeek

+0

Hice algunos experimentos propios. Usé hardware especializado en el lado del codificador, y agregar una cola no hizo ninguna diferencia. Sin embargo, la calidad de reproducción mejoró mucho cuando agregué una cola entre rtpdepay y ffdec. –

4

¿Quizás los paquetes son demasiado grandes para udp? Están limitados a 64K. Intente cambiar el tamaño de los cuadros a un tamaño realmente pequeño para comprobar si este es el motivo. Si es así, le pueden interesar algunos sistemas de compresión y cargadores de pago/depayloaders (gst-inspect | grep pay).

Cuestiones relacionadas