Существует специальный источник с именем 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 драйверах.) Так что теперь это должно решить довольно много проблем с потоковой передачей.