Nginx-rtmp-module: mudanças entre as edições
De MochilaWiki
Ir para navegaçãoIr para pesquisar
Criou página com '<source lang="bash"> 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+...' |
|||
| (9 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 12: | Linha 16: | ||
em nginx-1.2.1/debian/rules abaixo de | em nginx-1.2.1/debian/rules abaixo de | ||
--add-module=$(MODULESDIR)/nginx-dav-ext-module \ | --add-module=$(MODULESDIR)/nginx-dav-ext-module \ | ||
--add-module=$(MODULESDIR)/nginx-rtmp-module \ | coloque | ||
--add-module=$(MODULESDIR)/nginx-rtmp-module \ | |||
em nginx-1.2.1/debian/source/include-binaries acrescente | em nginx-1.2.1/debian/source/include-binaries acrescente | ||
| Linha 30: | 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 15h48min 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
- 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