¿Es posible transmitir H.264 con RTSP en Raspberry Pi?

9

Estoy tratando de configurar un sistema de videoconferencia usando dos placas Raspberry Pi.

¿Cómo puedo transmitir el protocolo H.264 a través de un protocolo de transmisión en tiempo real a través de una conexión Ethernet?

¿Qué sistema operativo debo usar para desarrollar en la placa Raspberry Pi?

sujal
fuente
nginx con rtmp-module es realmente decente, pero también CRTMPServer es muy decente y estable. Logré retrasar menos de 1 segundo con ambas soluciones. Demostrado en mi libro o parcialmente en mi blog
Piotr Kula
Verifique UV4L en linux-projects.org . También es compatible con video codificado por hardware H264, en tiempo real, fps completos, uso mínimo de CPU.
prinxis

Respuestas:

4

EDITAR: Esto no es con RTSP pero puede ayudarte

Puede probar con Cómo transmitir video y audio desde una Raspberry Pi sin latencia .

Instale gstreamer1.0 en el servidor de video Raspberry Pi:

  1. En /etc/apt/sources.list, agregue "deb http://vontaene.de/raspbian-updates/ . Main"
  2. sudo apt-get update
  3. sudo apt-get install gstreamer1.0

Comienza a transmitir el video

  1. En la Raspberry Pi con comando:

    raspivid -t 0 -w 1080 -h 720 -fps 25 -hf -b 2000000 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=VIDSERVERIP port=5000
    

Comienza a recibir video

  1. En su PC, escriba el comando:

    gst-launch-1.0 -v tcpclientsrc host=VIDSERVERIP port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false
    
inye
fuente
También necesitará instalar software en su cliente para que esto funcione. En OS X:brew install gstreamer gst-libav gst-plugins-ugly gst-plugins-base gst-plugins-bad gst-plugins-good
ThomasW
1
Esto no usa RTSP.
Alistair Buxton
¿Qué técnicamente este uso?
Łukasz Zaroda
1

Hay una fuente personalizada llamada nginx-rtmp : esto funciona muy bien, pero debe hacer muchas cosas antes de que funcione. Es increíble porque tiene muchas características integradas y admite otros protocolos de transmisión, como HLS o incrustar MPEG-DASH en sitios web, no solo RTMP. Es extremadamente eficiente en el reempaquetado de la transmisión de video en flv o mp4.

Aquí hay una publicación de blog sobre cómo hacer que funcione .

El único requisito previo serio es que ffmpeg debe compilarse en Rasbpian (no use el repositorio, es lento) desde la bifurcación más nueva. Creo que en Arch tiene el ffmpeg correcto. Esto lleva 5 horas en el Pi. Intente encontrar una versión compilada o use qemo para realizar una compilación cruzada.

Pero en pocas palabras usando nginx 1.4.1 (puede probar más nuevo si lo necesita)

 cd /usr/scr  
 #clone the latest version of rtmp module for nginx  
 git clone git://github.com/arut/nginx-rtmp-module.git  
 #download nginx source tested with- 1.4.1  but 1.5.0 is also supported
 wget http://nginx.org/download/nginx-1.4.1.tar.gz  
 tar xzf nginx-1.4.1.tar.gz  
 cd nginx-1.4.1  

Debe obtener dependencias (consulte el enlace al blog) para compilar y nginx. Luego configura la compilación dentro de la fuente nginx que se vincula al módulo rtmp. La construcción lleva 10 minutos en Pi.

 ./configure --prefix=/var/www \  
             --sbin-path=/usr/sbin/nginx \  
             --conf-path=/etc/nginx/nginx.conf \  
             --pid-path=/var/run/nginx.pid \  
             --error-log-path=/var/log/nginx/error.log \  
             --http-log-path=/var/log/nginx/access.log \  
             --with-http_ssl_module \  
             --without-http_proxy_module \  
             --add-module=/usr/src/nginx-rtmp-module \  

La última versión de Raspbian incluye el controlador UV4L que corrige el PSIPS (la incrustación de marco de tiempo para h264 que se rompió en los controladores raspivid originales). Así que eso debería solucionar una gran cantidad de problemas de transmisión ahora.

Piotr Kula
fuente
-1

Aquí hay una receta para comenzar: Enviar y recibir video de PI Camera a través de la red

Hendry
fuente
1
¡Las primeras dos líneas en ese artículo son cómo transmitir video en líneas de comando, lo cual está bien, pero no es realmente robusto y no explica mucho lo que está sucediendo con todas las tuberías! Pero el resto del artículo no se relaciona realmente con la pregunta del OP. Las respuestas cortas basadas en enlaces también están mal vistas. Considere mejorar su respuesta ligeramente. Los votos negativos se pueden convertir en votos positivos después de editar su respuesta.
Piotr Kula