Bagaimana cara streaming raspivid ke Linux dan OSX menggunakan GStreamer, VLC atau Netcat?

Jawaban:

32
  • Netcat (nc) tampaknya menjadi orang dengan penundaan terkecil.
  • Dalam pengalaman saya, VLC memiliki penundaan terbesar. Di sisi lain, ada klien VLC untuk Android, yang nyaman.

  • <IP-OF-THE-CLIENT> adalah IP komputer yang harus menerima aliran video.

  • <IP-OF-THE-RPI> adalah IP dari Raspberry Pi.

Menggunakan Netcat:

Di klien

(Jalankan perintah pada klien terlebih dahulu, lalu pada server (RPi)).

Linux

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

OS X

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

Di RPi

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

Menggunakan GStreamer:

Di klien

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

Di 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

Menggunakan VLC

Di klien

Klien bahkan mungkin menggunakan ponsel (saya sudah mencoba Android).

Cukup buka dari jaringan di klien VLC:

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

Di 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
Jonas Vautherin
sumber
Versi pi tidak bekerja. Maksud saya itu tidak bekerja sebagaimana mestinya. Ip klien?
Flash Thunder
1
Saya setuju, netcat memiliki latensi terendah. Tapi mengapa Anda menggunakan 200fps? Aliran saya adalah 30fps, tetapi pengaturan mplayer ke 60 terlihat terbaik, saya tidak tahu mengapa. Jika saya mengatur mplayer ke 30 maka itu menambah latensi 1-2 detik
Elliott B
28

lebih baik:

di rpi:

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

di komputer Anda:

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

mendukung menghubungkan kembali

soyer
sumber
3
Pada pi raspberry, saya harus menggunakan -pparameter untuk mengatur port:raspivid -t 0 -w 1280 -h 720 -hf -ih -fps 20 -o - | nc -k -l -p 2222
johnboiles
3
Terima kasih untuk mplayerperintahnya. Ini juga berfungsi dengan yang lebih baru raspividyang dapat melakukan streaming ke TCP tanpa menggunakan netcat, seperti itu: raspivid -fps 20 -w 1280 -h 720 -t 0 -l -o tcp://0.0.0.0:2222- dan perintah mainnya sama. Saya masih mencari URL yang benar untuk streaming VLC. Itu sepertih264+tcp://example.org:2222
Tomasz Gandor
1
Perintahnya adalah tcp / h264: //example.org: 2222. Saya bertanya-tanya bagaimana cara memainkan jenis aliran ini di Android. Ponsel memiliki aplikasi yang buruk.
Valentin Radu
Di MacOS: brew install mplayer.
creimers