Можно ли транслировать H.264 с RTSP на Raspberry Pi?

9

Я пытаюсь настроить систему видеоконференцсвязи с помощью двух плат Raspberry Pi.

Как я могу транслировать протокол H.264 по протоколу потоковой передачи в реальном времени через соединение Ethernet?

Какую ОС я должен использовать для разработки на плате Raspberry Pi?

sujal
источник
nginx с rtmp-модулем действительно приличный, но также CRTMPServer очень приличный и стабильный. Мне удалось получить задержки до 1 секунды с обоими решениями. Демонстрируется в моей книге или частично в моем блоге
Петр Кула,
Проверьте UV4L на linux-projects.org . Он также поддерживает аппаратное кодирование видео H264, в режиме реального времени, полный кадр / с, минимальное использование процессора.
prinxis

Ответы:

4

РЕДАКТИРОВАТЬ: Это не с RTSP, но может помочь вам

Вы можете попробовать с Как Как потоковое видео и аудио с Raspberry Pi без задержки .

Установите gstreamer1.0 на видеосервере Raspberry Pi:

  1. В /etc/apt/sources.list добавьте "deb http://vontaene.de/raspbian-updates/ . Main "
  2. sudo apt-get update
  3. sudo apt-get install gstreamer1.0

Начать потоковое видео

  1. В Raspberry Pi с командой:

    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
    

Начните получать видео

  1. На вашем компьютере введите команду:

    gst-launch-1.0 -v tcpclientsrc host=VIDSERVERIP port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false
    
inye
источник
Вам также нужно установить программное обеспечение на вашем клиенте, чтобы это работало. На OS X:brew install gstreamer gst-libav gst-plugins-ugly gst-plugins-base gst-plugins-bad gst-plugins-good
ThomasW
1
Это не использует RTSP.
Алистер Бакстон
Что технически это использовать?
Лукаш Зарода
1

Существует специальный источник с именем nginx-rtmp - он работает очень хорошо, но вам нужно сделать довольно много вещей, прежде чем он заработает . Это удивительно, потому что он имеет множество встроенных функций и поддерживает другие потоковые протоколы, такие как HLS или встраивание MPEG-DASH в веб-сайты, а не только RTMP. Это чрезвычайно эффективно при переупаковке видеопотока в flv или mp4.

Вот сообщение в блоге о том, как заставить это работать .

Единственным серьезным условием является то, что ffmpeg должен быть скомпилирован на Rasbpian (не используйте репо, если он медленный) из новейшего форка. Я думаю, что на Arch у него есть правильный ffmpeg. Это займет 5 часов на пи. Попробуйте найти скомпилированную версию или используйте qemo для кросс-компиляции.

Но в двух словах, используя nginx 1.4.1 (вы можете попробовать более новый, если вам нужно)

 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  

Вам нужно получить зависимости (проверьте ссылку на блог) для сборки и nginx. Затем вы настраиваете сборку внутри исходного кода nginx, связанного с модулем rtmp. Сборка занимает 10 минут на Пи.

 ./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 \  

Последняя версия Raspbian включает в себя драйвер UV4L, который исправляет PSIPS (временные рамки для h264, которые были нарушены в исходных raspivid драйверах.) Так что теперь это должно решить довольно много проблем с потоковой передачей.

Петр Кула
источник
-1

Вот рецепт, с которого можно начать: отправка и получение видео PI Camera по сети

Хендри
источник
1
Первые две строки в этой статье - как транслировать видео в командной строке, что нормально, но не очень надежно и мало объясняет, что происходит со всеми каналами! Но остальная часть статьи не имеет отношения к вопросу ОП. Короткие ответы на основе ссылок также не одобряются. Попробуйте немного улучшить свой ответ. Пониженные голоса могут быть преобразованы в повышенные после того, как вы отредактировали свой ответ.
Петр Кула