Làm cách nào để truyền phát raspivid sang Linux và OSX bằng GStreamer, VLC hoặc Netcat?


Câu trả lời:


32
  • Netcat (nc) dường như là người có độ trễ nhỏ nhất.
  • Theo kinh nghiệm của tôi, VLC có độ trễ lớn nhất. Mặt khác, có một máy khách VLC cho Android, rất tiện lợi.

  • <IP-OF-THE-CLIENT> là IP của máy tính sẽ nhận luồng video.

  • <IP-OF-THE-RPI> là IP của Raspberry Pi.

Sử dụng Netcat:

Trên máy khách

(Chạy lệnh trên máy khách trước, sau đó trên máy chủ (RPi)).

Linux

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

Hệ điều hành X

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

Trên RPi

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

Sử dụng GStreamer:

Trên máy khách

Linux

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

Hệ điều hành X

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

Trên 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

Sử dụng VLC

Trên máy khách

Máy khách thậm chí có thể ở trên điện thoại di động (tôi đã thử trên Android).

Chỉ cần mở từ mạng trong máy khách VLC:

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

Trên 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

Phiên bản Pi không hoạt động. Tôi có nghĩa là nó không hoạt động như thế nào nó nên. IP khách hàng?
Flash Thunder

1
Tôi đồng ý, netcat có độ trễ thấp nhất. Nhưng tại sao bạn sử dụng 200fps? Luồng của tôi là 30 khung hình / giây, nhưng đặt mplayer thành 60 trông tốt nhất, tôi không biết tại sao. Nếu tôi đặt mplayer thành 30 thì nó sẽ thêm độ trễ 1-2 giây
Elliott B

28

tốt hơn:

trên rpi:

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

trên máy tính của bạn:

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

hỗ trợ kết nối lại


3
Trên pi mâm xôi, tôi phải sử dụng -ptham số để đặt cổng:raspivid -t 0 -w 1280 -h 720 -hf -ih -fps 20 -o - | nc -k -l -p 2222
johnboiles

3
Cảm ơn mplayerlệnh. Nó cũng hoạt động với phiên bản mới hơn raspividcó thể truyền phát tới TCP mà không cần sử dụng netcat, như thế: raspivid -fps 20 -w 1280 -h 720 -t 0 -l -o tcp://0.0.0.0:2222- và lệnh play là như nhau. Tôi vẫn đang tìm kiếm URL chính xác cho truyền phát VLC. Nó giống như làh264+tcp://example.org:2222
Tomasz Gandor

1
Lệnh là tcp / h264: //example.org: 2222. Tôi đang tự hỏi làm thế nào để chơi loại luồng này trên Android. Điện thoại di động có những ứng dụng nghèo nàn như vậy.
Valentin Radu

Trên macOS : brew install mplayer.
creimers
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.