Mudanças entre as edições de "Nginx-rtmp-module"

De MochilaWiki
Ir para navegaçãoIr para pesquisar
 
(8 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
 +
O nginx foi instalado num debian 7 e o teste com o ffmpeg/ffplay num Fedora 20
 +
 +
== compilando nginx com módulo rtmp ==
 +
 
<source lang="bash">
 
<source lang="bash">
 
apt-get install libgd2-noxpm build-essential devscripts ffmpeg debian-keyring
 
apt-get install libgd2-noxpm build-essential devscripts ffmpeg debian-keyring
Linha 13: Linha 17:
 
  --add-module=$(MODULESDIR)/nginx-dav-ext-module \  
 
  --add-module=$(MODULESDIR)/nginx-dav-ext-module \  
  
coloque  
+
coloque  
 
  --add-module=$(MODULESDIR)/nginx-rtmp-module \
 
  --add-module=$(MODULESDIR)/nginx-rtmp-module \
  
Linha 31: Linha 35:
 
dpkg -i nginx-full_*.deb nginx-common_*.deb  
 
dpkg -i nginx-full_*.deb nginx-common_*.deb  
 
</source>
 
</source>
 +
 +
== configuração do nginx com rtmp e hls ==
 +
 +
altere em /etc/nginx/nginx.conf
 +
 +
<source lang="nginx">
 +
worker_processes  2;
 +
events {
 +
    worker_connections  1024;
 +
}
 +
http {
 +
    access_log /var/log/nginx/access.log;
 +
    error_log /var/log/nginx/error.log;
 +
    include      mime.types;
 +
    default_type  application/octet-stream;
 +
    sendfile        on;
 +
    keepalive_timeout  65;
 +
    server {
 +
        # in case we have another web server on port 80
 +
        listen      8080;
 +
        location /hls {
 +
          types {
 +
            application/vnd.apple.mpegurl m3u8;
 +
            video/mp2t ts;
 +
          }
 +
          #where the m3u8 and ts files are
 +
  #        alias /var/www/hls;
 +
          alias /tmp;
 +
        }
 +
        location / {
 +
            # here we can put our website
 +
            root  /var/www/html;
 +
            index  index.html index.htm;
 +
        }
 +
    }
 +
}
 +
 +
rtmp {
 +
    server {
 +
#        listen 1935;
 +
        listen 80;
 +
 +
        application src {
 +
            live on;
 +
 +
            exec ffmpeg -i rtmp://localhost/src/$name
 +
              -c:a libfdk_aac -b:a 32k  -c:v libx264 -b:v 128K -f flv rtmp://localhost/hls/$name_low
 +
              -c:a libfdk_aac -b:a 64k  -c:v libx264 -b:v 256k -f flv rtmp://localhost/hls/$name_mid
 +
              -c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 512K -f flv rtmp://localhost/hls/$name_hi;
 +
        }
 +
 +
        application hls {
 +
            live on;
 +
 +
            hls on;
 +
            hls_path /tmp/hls;
 +
            hls_nested on;
 +
 +
            hls_variant _low BANDWIDTH=160000;
 +
            hls_variant _mid BANDWIDTH=320000;
 +
            hls_variant _hi  BANDWIDTH=640000;
 +
        }
 +
    }
 +
}
 +
</source>
 +
 +
== teste de envio com ffmpeg ==
 +
 +
<source lang="bash">
 +
ffmpeg -i video-teste.mp4 -c:a copy -c:v copy -f flv rtmp://127.0.0.1/src/sintel
 +
</source>
 +
 +
== assistindo com ffplay ==
 +
<source lang="bash">
 +
ffplay http://localhost/hls/sintel.m3u8
 +
</source>
 +
 +
== forma alternativa de instalação ==
 +
<source lang="bash">
 +
apt-get install build-essential libpcre3 libpcre3-dev libssl-dev unzip
 +
cd /usr/src/
 +
wget http://nginx.org/download/nginx-1.6.2.tar.gz
 +
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
 +
tar -zxvf nginx-1.6.2.tar.gz
 +
unzip master.zip
 +
cd nginx-1.6.2
 +
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
 +
make
 +
make install
 +
ldconfig
 +
wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
 +
chmod +x /etc/init.d/nginx
 +
update-rc.d -f nginx defaults
 +
 +
cat >>/usr/local/nginx/conf/nginx.conf << EOF
 +
rtmp {
 +
        server {
 +
                listen 1935;
 +
                chunk_size 4096;
 +
 +
                application live {
 +
                        live on;
 +
                        record off;
 +
                }
 +
        }
 +
}
 +
EOF
 +
</source>
 +
 +
* http://lowendbox.com/blog/setup-for-streaming-live-events-to-browser-clients-using-nginx-fmle-and-flowplayer/
 +
* http://www.raspberrypi.org/forums/viewtopic.php?f=35&t=89605
 +
 +
== referências ==
 +
* http://nginx-rtmp.blogspot.com.br/2013/07/hls-variant-playlist.html

Edição atual tal como às 18h48min de 29 de março de 2015

O nginx foi instalado num debian 7 e o teste com o ffmpeg/ffplay num Fedora 20

compilando nginx com módulo rtmp

apt-get install libgd2-noxpm build-essential devscripts ffmpeg debian-keyring
apt-get build-dep nginx
apt-get source nginx
dpkg-source -x nginx_1.2.1-2.2+wheezy2.dsc
wget https://github.com/arut/nginx-rtmp-module/archive/v1.1.2.tar.gz
tar xvzf v1.1.2.tar.gz
mkdir nginx-1.2.1/debian/modules/nginx-rtmp-module
cp -r nginx-rtmp-module-1.1.2/*  nginx-1.2.1/debian/modules/nginx-rtmp-module

em nginx-1.2.1/debian/rules abaixo de

--add-module=$(MODULESDIR)/nginx-dav-ext-module \ 

coloque

--add-module=$(MODULESDIR)/nginx-rtmp-module \

em nginx-1.2.1/debian/source/include-binaries acrescente

debian/modules/nginx-rtmp-module/test/rtmp-publisher/RtmpPlayer.swf
debian/modules/nginx-rtmp-module/test/rtmp-publisher/RtmpPublisher.swf
debian/modules/nginx-rtmp-module/test/rtmp-publisher/RtmpPlayerLight.swf
debian/modules/nginx-rtmp-module/test/www/bg.jpg
debian/modules/nginx-rtmp-module/test/www/jwplayer_old/player.swf
debian/modules/nginx-rtmp-module/test/www/jwplayer/jwplayer.flash.swf

e depois

cd nginx-1.2.1/
dpkg-buildpackage -rfakeroot -b
cd /usr/src/
dpkg -i nginx-full_*.deb nginx-common_*.deb

configuração do nginx com rtmp e hls

altere em /etc/nginx/nginx.conf

worker_processes  2;
events {
    worker_connections  1024;
}
http {
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        # in case we have another web server on port 80
        listen       8080;
        location /hls {
          types {
            application/vnd.apple.mpegurl m3u8;
            video/mp2t ts;
          }
          #where the m3u8 and ts files are
  #        alias /var/www/hls;
          alias /tmp;
        }
        location / {
            # here we can put our website
            root   /var/www/html;
            index  index.html index.htm;
        }
    }
}

rtmp {
    server {
#        listen 1935;
         listen 80;

        application src {
            live on;

            exec ffmpeg -i rtmp://localhost/src/$name
              -c:a libfdk_aac -b:a 32k  -c:v libx264 -b:v 128K -f flv rtmp://localhost/hls/$name_low
              -c:a libfdk_aac -b:a 64k  -c:v libx264 -b:v 256k -f flv rtmp://localhost/hls/$name_mid
              -c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 512K -f flv rtmp://localhost/hls/$name_hi;
        }

        application hls {
            live on;

            hls on;
            hls_path /tmp/hls;
            hls_nested on;

            hls_variant _low BANDWIDTH=160000;
            hls_variant _mid BANDWIDTH=320000;
            hls_variant _hi  BANDWIDTH=640000;
        }
    }
}

teste de envio com ffmpeg

ffmpeg -i video-teste.mp4 -c:a copy -c:v copy -f flv rtmp://127.0.0.1/src/sintel

assistindo com ffplay

ffplay http://localhost/hls/sintel.m3u8

forma alternativa de instalação

apt-get install build-essential libpcre3 libpcre3-dev libssl-dev unzip
cd /usr/src/
wget http://nginx.org/download/nginx-1.6.2.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
tar -zxvf nginx-1.6.2.tar.gz
unzip master.zip
cd nginx-1.6.2
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
make
make install
ldconfig
wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
chmod +x /etc/init.d/nginx
update-rc.d -f nginx defaults

cat >>/usr/local/nginx/conf/nginx.conf << EOF
rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {
                        live on;
                        record off;
                }
        }
}
EOF

referências