Come trasmettere in streaming raspivid su Linux e OSX usando GStreamer, VLC o Netcat?


Risposte:


32
  • Netcat (nc) sembra essere quello con il minor ritardo.
  • Nella mia esperienza, VLC ha il ritardo maggiore. D'altra parte, c'è un client VLC per Android, che è conveniente.

  • <IP-OF-THE-CLIENT> è l'IP del computer che dovrebbe ricevere il flusso video.

  • <IP-OF-THE-RPI> è l'IP del Raspberry Pi.

Utilizzando Netcat:

Sul cliente

(Eseguire prima il comando sul client, quindi sul server (RPi)).

Linux

nc -l 2222 | mplayer -fps 200 -demuxer h264es -

OS X

nc -l 2222 | mplayer -fps 200 -demuxer h264es -

Sul RPi

/opt/vc/bin/raspivid -t 0 -w 300 -h 300 -hf -fps 20 -o - | nc <IP-OF-THE-CLIENT> 2222

Utilizzando GStreamer:

Sul cliente

Linux

gst-launch-1.0 -v tcpclientsrc host=<IP-OF-THE-RPI> port=5000  ! gdpdepay !  rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false

OS X

gst-launch-1.0 -v tcpclientsrc host=<IP-OF-THE-RPI> port=5000  ! gdpdepay !  rtph264depay ! avdec_h264 ! videoconvert ! osxvideosink sync=false

Sul RPi

/opt/vc/bin/raspivid -t 0 -hf -fps 20 -w 300 -h 300 -o - | gst-launch-1.0 fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=<IP-OF-THE-RPI> port=5000

Utilizzando VLC

Sul cliente

Il client potrebbe anche essere su un telefono cellulare (ho provato su Android).

Basta aprire dalla rete nel client VLC:

http://<IP-OF-THE-RPI>:8090

Sul RPi

/opt/vc/bin/raspivid -o - -t 0 -hf -w 640 -h 360 -fps 25|cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8090}' :demux=h264

La versione Pi non funziona. Voglio dire, non funziona come dovrebbe. IP client?
Flash Thunder,

1
Sono d'accordo, netcat ha la latenza più bassa. Ma perché usi 200fps? Il mio stream è di 30 fps, ma l'impostazione di mplayer su 60 sembra migliore, non so perché. Se imposto mplayer su 30, aggiunge una latenza di 1-2 secondi
Elliott B

28

meglio:

su rpi:

raspivid -t 0 -w 1280 -h 720 -hf -ih -fps 20 -o - | nc -k -l 2222

sul tuo computer:

mplayer -fps 200 -demuxer h264es ffmpeg: // tcp: //10.0.1.3: 2222

supporta la riconnessione


3
Sul raspberry pi, ho dovuto utilizzare il -pparametro per impostare la porta:raspivid -t 0 -w 1280 -h 720 -hf -ih -fps 20 -o - | nc -k -l -p 2222
johnboiles

3
Grazie per il mplayercomando Funziona anche con il più recente raspividche può eseguire lo streaming su TCP senza usare netcat, in questo modo: raspivid -fps 20 -w 1280 -h 720 -t 0 -l -o tcp://0.0.0.0:2222- e il comando play è lo stesso. Sto ancora cercando l'URL corretto per lo streaming VLC. Era qualcosa del genereh264+tcp://example.org:2222
Tomasz Gandor l'

1
Il comando è tcp / h264: //esempio.org: 2222. Mi chiedo come riprodurre questo tipo di stream su Android. I telefoni cellulari hanno app così povere.
Valentin Radu,

Su MacOS: brew install mplayer.
creimers
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.