如何使用GStreamer,VLC或Netcat将raspivid流式传输到Linux和OSX?


Answers:


32
  • Netcat(nc)似乎是延迟最小的产品。
  • 以我的经验,VLC的延迟最大。另一方面,有一个用于Android的VLC客户端,这很方便。

  • <IP-OF-THE-CLIENT> 是应该接收视频流的计算机的IP。

  • <IP-OF-THE-RPI> 是Raspberry Pi的IP。

使用Netcat:

在客户端上

(首先在客户端上,然后在服务器(RPi)上运行命令)。

的Linux

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

OS X

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

在RPi上

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

使用GStreamer:

在客户端上

的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

在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

使用VLC

在客户端上

客户端甚至可能在手机上(我在Android上尝试过)。

只需在VLC客户端中从网络打开:

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

在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

Pi版本无效。我的意思是应该怎么做都不行。客户端IP?
Flash Thunder

1
我同意,netcat的延迟最低。但是为什么要使用200fps?我的流为30fps,但是将mplayer设置为60看起来最好,我不知道为什么。如果我将mplayer设置为30,那么它会增加1-2秒的延迟
Elliott B

28

更好:

在rpi上:

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

在你的电脑:

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

支持重新连接


3
在树莓-praspivid -t 0 -w 1280 -h 720 -hf -ih -fps 20 -o - | nc -k -l -p 2222
派上

3
感谢您的mplayer命令。它也可以与较新的版本raspivid一起使用netcat,后者无需使用即可流式传输TCP ,例如:raspivid -fps 20 -w 1280 -h 720 -t 0 -l -o tcp://0.0.0.0:2222-和play命令相同。我仍在寻找VLC流的正确URL。这就像h264+tcp://example.org:2222
Tomasz Gandor

1
命令是tcp / h264://example.org:2222。我想知道如何在Android上播放此类流。手机具有如此差的应用程序。
Valentin Radu

在macOS上:brew install mplayer
火化炉
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.