Alternativa a Motion para la transmisión de video en Linux

Estoy buscando un programa simple de transmisión de video para Linux (Raspberry Pi). Solo necesita tomar video de una cámara web y transmitirlo en un formato que se pueda incrustar en una página web (servido con NodeJS en el mismo RPi).

La única razón por la que no uso Motion es que tengo dificultades para configurarlo y quiero ver si hay algo más que sea más fácil.

Toneladas de instrucciones incl. recomendaciones de software en una búsqueda rápida de "cámara web Raspi" , que van desde cámaras web simples hasta sistemas de alarma domésticos de bricolaje. ¿Probaste alguno de esos? Uno de ellos incluye un tutorial sobre cómo configurar Motion, por cierto, que suena bastante fácil y sencillo.
Izzy- gracias Sí, he probado toneladas de ellos. Pero acabo de lograr que mjpg-streamer funcione. Fue doloroso, pero al final lo conseguí con la ayuda de esto: raspberrypi.org/forums/viewtopic.php?p=164539#p164539
¿Consideraría esto (con algunos detalles más) como una respuesta a su pregunta? Si es así, no dudes en presentarlo completo :)

Respuestas (2)

Entonces , según este enlace , pero con algunas condensaciones y ajustes, primero ejecute estos comandos:

apt-get update
apt-get install git libv4l-dev libjpeg8-dev imagemagick cmake -y
git clone git@github.com:jacksonliam/mjpg-streamer.git ~/mjpg-streamer
cd ~/mjpg-streamer/mjpg-streamer-experimental
make USE_LIBV4L2=true clean all
make DESTDIR=/usr install

Aunque no estoy seguro de que la última línea me haya funcionado, supongo que todo funcionó sin ella. Creo que debería haber colocado los archivos en los lugares correctos (por ejemplo, para que los ejecutables no necesiten rutas completas especificadas; en cambio, en el siguiente comando, especifiqué las rutas completas para todos los archivos).

Inicie el servidor:

~/mjpg-streamer/mjpg-streamer-experimental/mjpg_streamer -i "~/mjpg-streamer/mjpg-streamer-experimental/input_uvc.so -f 15 -r 320x240" -o "~/mjpg-streamer/mjpg-streamer-experimental/output_http.so -p 8090 -w ./www"

Y si tiene problemas con algo que ya usa la cámara web (por ejemplo, si motionno salió limpiamente, haga lo siguiente y repita el comando anterior:

fuser /dev/video0

que dará una salida como esta:

/dev/video0: 12324m

Luego ejecute esto para matar lo que sea que esté usando la cámara web:

kill -9 12324

Finalmente, para ver el video, navegue a esta dirección, sustituyendo la dirección IP o URL de su servidor:

http://192.168.0.12:8090/?action=stream

Y para incrustar el video en una página web, simplemente agregue esto al HTML:

<img src="http://192.168.0.12:8090/?action=stream"/>

Como nota al margen, al ejecutar el servidor de transmisión de video, es posible que desee cambiar los cuadros por segundo cambiando el argumento después de -f. Parece que tiene que ser una figura que esté soportada por la webcam; en teoría, una figura no admitida será coaccionada por mjpeg-streameruna admitida, pero no se transmitió cuando la configuré en 10, por ejemplo. Lo mismo ocurre con la resolución; solo 320x240y 640x480funcionó para mí.

Respuesta muy clara y concisa - ¡muy bien!

Yo uso VLC para la transmisión.

Esto funciona con el Raspicam :

raspivid -o - -t 0 -n | cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8090}' :demux=h264

Pero prefiero la transmisión a través de rtsp (luego puede usar VLC nuevamente para mirar)

raspivid -o - -t 0 -n | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264

Un buen tutorial para Raspberry PI se puede encontrar aquí .

Si usa otra cámara web en lugar de Raspicam, debe cambiar el comando a este (suponiendo que v4l2 reconozca la cámara):

cvlc -vvv v4l2:///dev/video0 --sout '#standard{access=http,mux=ts,dst=:8090}' :demux=h264

Otros enlaces útiles que puede desear leer:

Edité tu respuesta, solo agregué algo de formato.
¡No tenía idea de que VLC pudiera usarse para esto! +1