1. Antecedentes
En comparación con una cámara web, una cámara USB tiene una amplia gama de opciones, muchos tipos y bajo costo. Sin embargo, en el uso real, debe accederse a través de la transmisión rtsp para lograr el efecto de la transmisión en vivo. Los datos de la cámara se convierten a rtsp, a la que pueden acceder varios clientes. Al realizar una investigación relacionada, existen tres métodos de implementación, a saber, ffmpeg (ffserver), vlc y live555. A continuación, presentaremos los métodos de implementación de estos tres métodos en detalle. Finalmente, compare las ventajas y desventajas de los tres métodos. Los lectores pueden elegir el servidor apropiado de acuerdo con sus características. El siguiente proceso de construcción del servidor se implementa en ubuntu 16.04.
2 ffserver
2.1 Principios básicos
Hay algunos conceptos clave para entender
ffserver es responsable de responder a la solicitud de transmisión de medios del cliente y enviar datos de transmisión de medios al cliente.
ffserver.conf, el archivo de configuración cuando se inicia ffserver, en este archivo es principalmente para el protocolo de red, el archivo de caché feed1.ffm y los parámetros de formato del archivo de medios de transmisión que se enviarán para realizar ajustes específicos.
feed1.ffm puede considerarse como un archivo de caché de transmisión de datos multimedia, que se generará automáticamente después de iniciar ffserver. ffmpeg envía los datos transcodificados a ffserver. Si no hay una solicitud de conexión del cliente, ffserver almacena en caché los datos en el archivo.
ffmpeg es responsable de transcodificar archivos multimedia, convirtiendo los archivos multimedia de origen en su servidor en archivos multimedia de transmisión para enviarlos.
Para la introducción de ffserver, puede consultar wiki Introducción, como se muestra en la figura para el principio de ffserver
El proceso general es: enviar los datos de la cámara USB al servidor ffserver a través de ffmpeg, y se accede al dispositivo terminal a través de la dirección rtsp para lograr el efecto del acceso remoto
2.2 Método de instalación
Es muy simple, solo un comando
sudo apt install ffmpeg libx264-dev
2.3 Modificar el archivo de configuración
Abra el archivo de configuración en la terminal
sudo gedit /etc/ffserver.conf
Luego modifique a lo siguiente
Para obtener una introducción específica a ffserver.conf, consulte al funcionarioDescripción del archivo de configuración, Si hay varias cámaras USB, consulte el método de escritura de feed1 y escriba otro archivo de caché
2.4 Iniciar el servicio ffserver
Ejecutar directamente en la terminal
ffserver
2.5 Transmisión de rtsp hacia adelante
ffmpeg -f v4l2 -i /dev/video1 -s 640x480 -r 24 -vcodec libx264 -an http://127.0.0.1:8090/feed1.ffm
Nota: donde / dev / video1 representa el nombre correspondiente de la cámara USB, debe cambiarse de acuerdo con la situación de su dispositivo
2.6 Lectura del cliente
En otro dispositivo terminal, como una computadora con Windows, use el software VLC para abrir la transmisión de red e ingrese la siguiente dirección rtsp para abrir la cámara
rtsp://192.168.xx.xx:8554/live1.h264
Entre ellos, es necesario cambiar la dirección IP anterior a la dirección del servidor
3 vlc
3.1 Principios básicos
El servidor de compilación vlc que se usa aquí no se introduce en muchas publicaciones de blog. Se configura directamente en el software vlc, pero se usa en la línea de comandos, por lo que no es necesario mostrarlo en el lado del servidor, solo es necesario mostrarlo en el lado del cliente .
3.2 Método de instalación
sudo apt-get install vlc
3.3 Método de desvío
cvlc -vvv v4l2:///dev/video1 --sout '#transcode{vcodec=h264,vb=800,acodec=mp4a}:rtp{sdp=rtsp://:8554/live.ts}' -I dummy
entre ellos:
v4l2:// – Video4Linux is the interface to webcams on Linux
/dev/video1 – device number assigned to webcam by Linux
vcodec=h264 video codec
vb=800 – 800 kb/s video bit rate
acodec=mp4a
sdp=rtsp://:8554/ – URL/port advertised by RTSP
3.4 Lectura del cliente
Del mismo modo, en el software VLC en la computadora con Windows, ingrese la siguiente dirección rtsp para abrir la cámara, preste atención para cambiar la dirección IP a la dirección del servidor
rtsp://192.168.xx.xx:8554/live.ts
4 live555
4.1 Descargar live555
enSitio web oficialDescargue el código fuente de código fuente, guárdelo en la carpeta especificada, descomprima
-
tar xvzf live.20xx.tar.gz
-
sudo chmod -R 777 live
-
cd live
-
sudo ./genMakefiles linux-gdb
-
sudo make