Comment diffuser raspivid sur Linux et OSX en utilisant GStreamer, VLC ou Netcat?

Réponses:

32
  • Netcat (nc) semble être celui avec le plus petit retard.
  • D'après mon expérience, VLC a le plus grand retard. D'un autre côté, il existe un client VLC pour Android, ce qui est pratique.

  • <IP-OF-THE-CLIENT> est l'IP de l'ordinateur qui doit recevoir le flux vidéo.

  • <IP-OF-THE-RPI> est l'IP du Raspberry Pi.

Utilisation de Netcat:

Sur le client

(Exécutez d'abord la commande sur le client, puis sur le serveur (RPi)).

Linux

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

OS X

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

Sur le RPi

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

Utilisation de GStreamer:

Sur le client

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

Sur le 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

Utilisation de VLC

Sur le client

Le client pourrait même être sur un téléphone mobile (j'ai essayé sur Android).

Ouvrez simplement à partir du réseau dans le client VLC:

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

Sur le 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
JonasVautherin
la source
La version Pi ne fonctionne pas. Je veux dire que ça ne marche pas comme ça devrait. IP client?
Flash Thunder
1
Je suis d'accord, netcat a la latence la plus faible. Mais pourquoi utilisez-vous 200fps? Mon flux est de 30 images par seconde, mais définir mplayer à 60 semble le mieux, je ne sais pas pourquoi. Si je règle mplayer sur 30, cela ajoute une latence de 1 à 2 secondes
Elliott B
28

mieux:

sur le rpi:

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

sur ton ordinateur:

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

prend en charge la reconnexion

soyer
la source
3
Sur le raspberry pi, j'ai dû utiliser le -pparamètre pour régler le port:raspivid -t 0 -w 1280 -h 720 -hf -ih -fps 20 -o - | nc -k -l -p 2222
johnboiles
3
Merci pour la mplayercommande. Il fonctionne également avec le plus récent raspividqui peut diffuser en TCP sans utiliser netcat, comme ça: raspivid -fps 20 -w 1280 -h 720 -t 0 -l -o tcp://0.0.0.0:2222- et la commande play est la même. Je recherche toujours l'URL correcte pour le streaming VLC. C'était quelque chose commeh264+tcp://example.org:2222
Tomasz Gandor
1
La commande est tcp / h264: //example.org: 2222. Je me demande comment jouer à ce type de flux sur Android. Les téléphones portables ont de si mauvaises applications.
Valentin Radu
Sur macOS: brew install mplayer.
creimers