​В последнее время занимаюсь онлайн вещанием через интернет перепробовал много медиа серверов (FMS, Wowza, Early, etc), но остановился на модуле к веб серверу nginx, под названием nginx-rtmp. Этот пост посвящен быстрой установке и настройке медиа сервера для живого вещания на чистую Ubuntu 12.04.
Большую часть того что я здесь опишу вы можете найти в стандартной документации на GitHub. Ну начнем.. 

Первое что нужно это поставить все необходимые пакеты:
 

sudo apt-get install git-core gcc pkg-config make libpcre3 libpcre3-dev libssl-dev


Далее создадим папку build:
 
mkdir build

cd ~/build


Теперь нам нужно скачать и установить ffmpeg:
 
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

cd ffmpeg

sudo ./configure --prefix=/opt/ffmpeg --disable-yasm --enable-shared

sudo make

sudo make install


Скачиваем nginx-rtmp-module:
 
cd ~/build

git clone git://github.com/arut/nginx-rtmp-module.git


Скаиваем и собираем nginx:
 
wget http://nginx.org/download/nginx-1.2.7.tar.gz

tar xzf nginx-1.2.7.tar.gz

cd nginx-1.2.7

./configure --add-module=~/build/nginx-rtmp-module --add-module=~/build/nginx-rtmp-module/hls --with-cc-opt=-I/opt/ffmpeg/include --with-ld-opt='-L/opt/ffmpeg/lib -Wl,-rpath=/opt/ffmpeg/lib'

make

make install


Теперь давайте создадим первое приложение для онлайн вещания.
Нам нужно отредактировать файл конфигурации nginx:
sudo nano /usr/local/nginx/conf/nginx.conf


И заменим содержимое на следующий код:
 
#user  nobody;

worker_processes  1;



error_log  logs/error.log debug;



events {

   worker_connections  1024;

}



http {

   include       mime.types;

   default_type  application/octet-stream;



   sendfile        on;

   keepalive_timeout  65;



   server {

       listen       8080;

       server_name  localhost;



       # sample handlers

       #location /on_play {

       #    if ($arg_pageUrl ~* localhost) {

       #        return 201;

       #    }

       #    return 202;

       #}

       #location /on_publish {

       #    return 201;

       #}



       #location /vod {

       #    alias /var/myvideos;

       #}



       # rtmp stat

       location /stat {

           rtmp_stat all;

           rtmp_stat_stylesheet stat.xsl;

       }

       location /stat.xsl {

           # you can move stat.xsl to a different location

           root /usr/build/nginx-rtmp-module;

       }



       # rtmp control

       location /control {

           rtmp_control all;

       }



       error_page   500 502 503 504  /50x.html;

       location = /50x.html {

           root   html;

       }

   }

}



rtmp {

   server {

       listen 1935;

       ping 30s;

       notify_method get;



       application myapp {

           live on;



           # sample play/publish handlers

           #on_play http://localhost:8080/on_play;

           #on_publish http://localhost:8080/on_publish;



           # sample recorder

           #recorder rec1 {

           #    record all;

           #    record_interval 30s;

           #    record_path /tmp;

           #    record_unique on;

           #}



           # sample HLS

           #hls on;

           #hls_path /tmp/hls;

           #hls_sync 100ms;

       }



       # Video on demand

       #application vod {

       #    play /var/Videos;

       #}



       # Video on demand over HTTP

       #application vod_http {

       #    play http://localhost:8080/vod/;

       #}

   }

}


Теперь мы можем транслировать онлайн поток с помощью Adobe Flash Media Live Encoder

Нам нужно направить поток на адрес rtmp://YOU-IP/myapp/mystream
Забирать поток вы можете с этого же адреса

 


11 февраля 2013 г. 12:15:33    Alex Vakhitov Разное 1

Комментарии (0)

    Вам нужно авторизироваться, чтобы оставить свой комментарий

    /*Вход*/

    Login with github
    /*Twitter*/
    /*Реклама*/