Wie streame ich mit GStreamer, VLC oder Netcat raspivid auf Linux und OSX?

Antworten:

32
  • Netcat (nc) scheint das mit der geringsten Verzögerung zu sein.
  • Nach meiner Erfahrung hat VLC die größte Verzögerung. Auf der anderen Seite gibt es einen VLC-Client für Android, was praktisch ist.

  • <IP-OF-THE-CLIENT> ist die IP des Computers, der den Videostream empfangen soll.

  • <IP-OF-THE-RPI> ist die IP des Raspberry Pi.

Verwendung von Netcat:

Auf dem Client

(Führen Sie den Befehl zuerst auf dem Client und dann auf dem Server (RPi) aus.)

Linux

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

OS X

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

Auf dem RPi

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

Verwendung von GStreamer:

Auf dem 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

Auf dem 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

Verwenden von VLC

Auf dem Client

Der Client ist möglicherweise sogar auf einem Mobiltelefon (ich habe es auf Android versucht).

Einfach über das Netzwerk im VLC-Client öffnen:

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

Auf dem 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
quelle
Pi-Version funktioniert nicht. Ich meine, es funktioniert nicht so, wie es sollte. Client-IP?
Flash Thunder
1
Ich stimme zu, Netcat hat die niedrigste Latenz. Aber warum benutzt du 200fps? Mein Stream ist 30fps, aber mplayer auf 60 zu stellen sieht am besten aus, ich weiß nicht warum. Wenn ich mplayer auf 30 stelle, erhöht sich die Latenz um 1-2 Sekunden
Elliott B
28

besser:

auf dem rpi:

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

auf deinem Computer:

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

unterstützt das Wiederverbinden

Soja
quelle
3
Auf dem Himbeer-Pi musste ich den -pParameter verwenden, um den Port raspivid -t 0 -w 1280 -h 720 -hf -ih -fps 20 -o - | nc -k -l -p 2222
einzustellen
3
Danke für den mplayerBefehl. Es funktioniert auch mit den neueren, raspividdie ohne Verwendung von zu TCP streamen können netcat: raspivid -fps 20 -w 1280 -h 720 -t 0 -l -o tcp://0.0.0.0:2222- und der Wiedergabebefehl ist der gleiche. Ich suche immer noch nach der richtigen URL für das VLC-Streaming. Es war so etwas wieh264+tcp://example.org:2222
Tomasz Gandor
1
Der Befehl lautet tcp / h264: //example.org: 2222. Ich frage mich, wie man diese Art von Stream auf Android spielt. Handys haben so schlechte Apps.
Valentin Radu
Auf macOS: brew install mplayer.
Creimers