Giải pháp phát trực tuyến nào cho Picam có độ trễ nhỏ nhất?


9

Bài đăng này cho thấy cách truyền phát bằng VLC. Nó hoạt động tốt và đơn giản, nhưng nó mang lại cho tôi về độ trễ thứ hai. Bài đăng này sử dụng GStreamer và nó có độ trễ 0,3 giây; Tôi muốn ít hơn.

Có thể sử dụng chip đồ họa Raspberry Pi để tăng tốc độ mã hóa?


Vẫn chưa thể. Độ trễ 0,3ms là rất tốt và bạn sẽ không khá hơn (như bây giờ) vì thiếu V2L. Có lẽ điều này sẽ giúp
Piotr Kula

@ppumkin Tôi nghĩ OP cho biết độ trễ là 3 giây chứ không phải mili giây. Ngoài ra, bạn có nghĩa là V4L?
syb0rg

Phải 3ms tôi đã suy nghĩ. Trình điều khiển Video4Linux? Hoặc nó được gọi là cái gì khác. Bạn biết. Người lái xe bản địa.
Piotr Kula


Câu trả lời:


9

Với Ubuntu 14.10 và Guxer, tôi đạt độ trễ 100 đến 116 ms với 1280 x 720 @ 60Hz.

Xe tăng đến @Antonvh, người đưa tôi đi đúng hướng. Tôi sao chép ở đây các giải pháp để tham khảo sau.

Để truyền phát từ Pi:

raspivid -t 0 -b 2000000  -fps 60 -w 1280 -h 720 -o - \
  | gst-launch-1.0 -e -vvv fdsrc ! h264parse ! rtph264pay pt=96 config-interval=5 \ 
  ! udpsink host=10.42.0.1 port=5001

Để nhận nó trên máy tính của bạn với gst-0.10 và gửi nó đến một thiết bị ảo v4l2 (thực sự bạn cần v4l2loopback ):

gst-launch -v udpsrc port=5001 ! application/x-rtp, payload=96 ! rtph264depay \ 
! ffdec_h264 ! ffmpegcolorspace ! v4l2sink device=/dev/video1

Sau đó, bạn có thể mở thiết bị /dev/video1trong bất kỳ phần mềm nào hỗ trợ chụp v4l2.

Đối với giải pháp gst-1.0 (v4l2loopback không hoạt động với gst-1.0), tôi cho bạn xem bài đăng trên blog của Antonvh .


4

Tôi đã đạt được độ trễ 200ms! Mẹo: gửi ít khung hình từ Pi hơn bạn đọc ở phía xa, điều này đảm bảo bộ đệm vẫn trống.

Đây là hình ảnh tôi chụp RPi khi quay đồng hồ bấm giờ. Nó cho thấy sự khác biệt thời gian.

Đây là công thức tôi sử dụng. Đầu tiên trên máy tính xách tay (Mac) làm điều này:

nc -l 5001 | mplayer -fps 24 -cache 1024 -

sau đó trên RPI bắt đầu truyền phát:

raspivid -t 999999 -w 1280 -h 720 -fps 20 -o - | nc 192.168.178.22 5001

Đảm bảo:

  • Cài đặt mplayer trước. Chỉ có phương pháp Homebrew làm việc cho tôi. Việc tải xuống thường xuyên đã bị hỏng.
  • Thay đổi số ip ở trên thành số máy tính xách tay của bạn.

Đây là một mẹo thông minh! Tôi tự hỏi nếu nó cũng hoạt động cho trình điều khiển UV4L mới
Piotr Kula

Vấn đề với giải pháp này là nó giới thiệu rất nhiều vấn đề từ phía phát lại. Tôi đã tự hỏi nếu bạn tìm thấy một giải pháp cho điều đó.
9a3eedi

1

Tôi sử dụng công thức video này: http://archpi.dabase.com/#seinating-and-receiving-pi-camera-video-over-the-network

Bạn đã thử https://github.com/thaytan/gst-rpicamsrc chưa? Điều đó nên được sắp xếp hợp lý hơn một chút. Tbh, tôi không thể bận tâm để thử nó.

Độ trễ 0,3 là khá tốt.


1
Cảm ơn các liên kết! Tôi nghĩ rằng bây giờ tôi có độ trễ dưới 0,3 giây, tôi vẫn phải ghi lại giải pháp và đo lường chính xác. Sẽ đăng sớm. Nếu số đo của tôi chứng minh là hơn 0,3 tôi sẽ thử công thức khác.
Antonvh

@Antonvh Việc nghiên cứu / đo lường diễn ra như thế nào? Là câu trả lời này giúp bạn có kết quả tốt hơn?
RPiAwesomeness
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.