Có thể truyền phát H.264 với RTSP trên Raspberry Pi không?


9

Tôi đang cố gắng thiết lập một hệ thống hội nghị video bằng cách sử dụng hai bảng Raspberry Pi.

Làm cách nào tôi có thể truyền phát giao thức H.264 qua giao thức truyền phát thời gian thực qua kết nối Ethernet?

Tôi nên sử dụng hệ điều hành nào để phát triển trên bảng Raspberry Pi?


nginx với mô-đun rtmp là thực sự tốt nhưng CRTMPServer là rất tốt và ổn định. Tôi quản lý để có được độ trễ phụ 1 giây với cả hai giải pháp. Chứng minh trong cuốn sách của tôi hoặc một phần trên blog của tôi
Piotr Kula

Kiểm tra UV4L tại linux-projects.org . Nó cũng hỗ trợ video được mã hóa phần cứng H264, thời gian thực, khung hình / giây đầy đủ, sử dụng CPU tối thiểu.
prinxis

Câu trả lời:


4

EDIT: Đây không phải là với RTSP nhưng có thể giúp bạn

Bạn có thể thử với Cách truyền phát video và âm thanh từ Raspberry Pi mà không có độ trễ .

Cài đặt gstreamer1.0 trên máy chủ video Raspberry Pi:

  1. Trong /etc/apt/source.list, thêm "deb http://vontaene.de/raspbian-updates/ . Main"
  2. sudo apt-get update
  3. sudo apt-get install gstreamer1.0

Bắt đầu truyền phát video

  1. Trong Raspberry Pi với lệnh:

    raspivid -t 0 -w 1080 -h 720 -fps 25 -hf -b 2000000 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=VIDSERVERIP port=5000
    

Bắt đầu nhận video

  1. Trên PC của bạn, gõ lệnh:

    gst-launch-1.0 -v tcpclientsrc host=VIDSERVERIP port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false
    

Bạn cũng sẽ cần cài đặt phần mềm trên máy khách của mình để làm việc này. Trên OS X:brew install gstreamer gst-libav gst-plugins-ugly gst-plugins-base gst-plugins-bad gst-plugins-good
ThomasW

1
Điều này không sử dụng RTSP.
Alistair Buxton

Những gì kỹ thuật này sử dụng?
Łukasz Zaroda


1

Có một nguồn tùy chỉnh được gọi là nginx-rtmp - Điều này hoạt động thực sự tốt nhưng bạn cần phải phân bổ khá nhiều thứ trước khi nó hoạt động. Thật tuyệt vời vì nó có sự phân bổ các tính năng tích hợp và hỗ trợ các giao thức truyền phát khác, như HLS hoặc nhúng MPEG-DASH vào các trang web, không chỉ RTMP. Nó cực kỳ hiệu quả trong việc đóng gói lại luồng video thành flv hoặc mp4.

Đây là một bài viết trên blog về cách làm cho nó hoạt động .

Điều kiện tiên quyết nghiêm trọng duy nhất là ffmpeg cần được biên dịch trên Rasbpian (Không sử dụng repo vì nó chậm) từ ngã ba mới nhất. Tôi nghĩ trên Arch nó có ffmpeg chính xác. Điều này mất 5 giờ trên Pi. Hãy thử và tìm một phiên bản được biên dịch hoặc sử dụng qemo để biên dịch chéo.

Nhưng tóm lại, sử dụng nginx 1.4.1 (bạn có thể thử mới hơn nếu cần)

 cd /usr/scr  
 #clone the latest version of rtmp module for nginx  
 git clone git://github.com/arut/nginx-rtmp-module.git  
 #download nginx source tested with- 1.4.1  but 1.5.0 is also supported
 wget http://nginx.org/download/nginx-1.4.1.tar.gz  
 tar xzf nginx-1.4.1.tar.gz  
 cd nginx-1.4.1  

Bạn cần có được sự phụ thuộc (kiểm tra liên kết đến blog) để xây dựng và nginx. Sau đó, bạn định cấu hình bản dựng bên trong nguồn nginx liên kết với mô đun rtmp. Việc xây dựng mất 10 phút trên Pi.

 ./configure --prefix=/var/www \  
             --sbin-path=/usr/sbin/nginx \  
             --conf-path=/etc/nginx/nginx.conf \  
             --pid-path=/var/run/nginx.pid \  
             --error-log-path=/var/log/nginx/error.log \  
             --http-log-path=/var/log/nginx/access.log \  
             --with-http_ssl_module \  
             --without-http_proxy_module \  
             --add-module=/usr/src/nginx-rtmp-module \  

Phiên bản mới nhất của Raspbian bao gồm trình điều khiển UV4L sửa lỗi PSIPS (khung thời gian nhúng cho h264 đã bị hỏng trong trình điều khiển raspivid ban đầu.) Vì vậy, giờ đây sẽ khắc phục khá nhiều vấn đề phát trực tuyến.


-1

Đây là một công thức để giúp bạn bắt đầu: Gửi và nhận video Camera PI qua mạng


1
Hai dòng đầu tiên trong bài viết đó là cách truyền phát video trong các dòng lệnh, điều này ổn, nhưng không thực sự mạnh mẽ và không giải thích nhiều về những gì đang xảy ra với tất cả các đường ống! Nhưng phần còn lại của bài viết không thực sự liên quan đến câu hỏi của OP. Câu trả lời ngắn, dựa trên liên kết cũng được tán thành. Xem xét tăng cường câu trả lời của bạn một chút. Downvote có thể được chuyển đổi thành upvote sau khi bạn chỉnh sửa câu trả lời của bạn.
Piotr Kula
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.