Проксирование RTMP-потока через Nginx

Date July 2nd, 2014 Author Vitaly Agapov

— Ничего себе! Вашу маму и там, и тут передают. До чего техника дошла!
— Это не техника дошла, а я сама сюда дошла, на лыжах.

«Зима в Простоквашино»

rtmp-proxyЕщё одна коротенькая заметка про Nginx. На этот раз про то, как спроксировать RTMP-стриминг. Обсуждение того, зачем это может понадобиться, оставим на… никогда. Ну, например, для того, чтобы спрятать реальный источник потока.

Никаких велосипедов изобретать не надо, тем более, что существует модуль для Nginx https://github.com/arut/nginx-rtmp-module, написанный Романом Арутюняном, который поможет нам сделать то, что мы хотим, и даже намного-намного больше.

Сам автор хорошо осветил принципы работы со своим модулем в статье на Хабре, так что на этом в общем-то заметку можно было бы и заканчивать, но я всё-таки продолжу.

Во-первых, нужно собрать Nginx с поддержкой модуля.

./configure --add-module=/path/to/nginx-rtmp-module

Конечно, вместо make && make install лучше собирать пакет, но это на усмотрение.

Дальше в корень конфига nginx.conf останется добавить примерно такие строки:

rtmp {
        server {
                listen 1935;
                application live {
                        live on;
                        pull rtmp://www.planeta-online.tv:1936;
                }
        }
}

В результате поток с rtmp://www.planeta-online.tv:1936/live/channel_2 (взят совершенно для примера), можно будет смотреть на rtmp://localhost:1935/live/channel_2. При появлении первого клиента Nginx установит соединение с www.planeta-online.tv для ретрансляции потока и после пропадания последнего клиента завершит соединение.

Tags:
Category: Nginx | No comments »

Comments

Leave a comment

 Comment Form