Heim >Backend-Entwicklung >PHP-Tutorial >[Nachdruck] Verwenden Sie Nginx, um einen Streaming-Medienserver für die Protokolle http und rtmp zu erstellen
[Nachdruck] Verwenden Sie Nginx, um einen Streaming-Medienserver für die Protokolle http und rtmp zu erstellen
WBOYOriginal
2016-08-08 09:28:561648Durchsuche
Von //http://blog.chedushi.com/archives/6532?utm_source=tuicool
Verwenden Sie Nginx, um einen Streaming-Medienserver mit den Protokollen http und rtmp zu erstellen.
Zweck des Experiments: Lassen Sie Nginx Dateien im FLV- und MP4-Format unterstützen und gleichzeitig das Rtmp-Protokoll öffnen Informationen: HTTP Live Streaming (abgekürzt HLS) ist ein von Apple vorgeschlagenes HTTP-basiertes Streaming-Media-Netzwerkübertragungsprotokoll. HLS fordert nur einfache HTTP-Nachrichten an. Im Gegensatz zum Real-Time Transport Protocol (RTP) kann HLS jede Firewall oder jeden Proxyserver passieren, der HTTP-Daten passieren lässt. Es ist auch einfach, ein Content-Delivery-Netzwerk zum Streamen von Medien zu nutzen. Verwenden Sie ffmpeg, um die Konvertierung von FLV, MP4, MP3 und anderen Formaten abzuschließen (das On-Demand-Experiment wird derzeit nicht getestet) 1. Vorbereitungsarbeiten Modul: nginx_mod_h264_streaming (unterstützt h264-codierte Videos ) Modul: http_flv_module Support flv Modul: http_mp4_module Support mp4 Modul: nginx-rtmp-module Support rtmp //2015-3-5 add Download-Adresse: http:// h264.code-shop.com /download/nginx_mod_h264_streaming-2.2.7.tar.gz http://nginx.org https://github.com/arut/nginx-rtmp-module 1. Abhängigkeitspakete installieren: #yum -y install gcc glibc glibc-devel make nasm pkgconfig lib-devel openssl-devel expat-devel gettext-devel libtool mhash.x86_64 perl-Digest-SHA1.x86_64 2. Git-Tools installieren: #mkdir soft-source #cd soft-source #wget http://www.codemonkey.org.uk/projects/git-snapshots/git/git-latest.tar .gz #tar xzvf git-latest.tar.gz #cd git-2013-02-04 #autoconf #./configure #make && make install # git –version git version 1.8.1.GIT #cd .. 3. Installieren Sie ffmpeg und seine abhängigen Pakete: ++++++++Yasm++++++++++ #wget http://www.tortall .net/projects/yasm/releases/yasm-1.2.0.tar.gz #tar xzvf yasm-1.2.0.tar.gz #cd yasm-1.2.0 #./configure #make #make install #cd .. ++++++++x264+++++++++++ #git clone git://git.videolan .org/x264 #cd x264 #./configure –enable-shared #make #make install #cd .. ++++++++ LAME+++++++++++ #wget http ://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz #tar xzvf lame-3.99.5.tar.gz #cd lame-3.99.5 #./configure –enable-nasm #make #make install #cd .. ++++++++libogg+++++++++ #wget http://downloads.xiph.org/releases/ogg/libogg-1.3.0.tar.gz #tar xzvf libogg-1.3.0.tar.gz #cd libogg-1.3 .0 #. /configure #make #make install #cd .. ++++++++libvorbis++++++++++ #wget http://downloads. xiph.org/releases/vorbis /libvorbis-1.3.3.tar.gz #tar xzvf libvorbis-1.3.3.tar.gz #cd libvorbis-1.3.3 #./configure #make #make install #cd .. ++++++++libvpx++++++++++++ #git clone http://git.chromium.org/webm/libvpx.git #cd libvpx #./configure –enable-shared #make #make install #cd .. ++++++++FAAD2+++++++++++ #wget http://downloads .sourceforge.net/project/faac/faad2-src/faad2-2.7/faad2-2.7.tar.gz #tar zxvf faad2-2.7.tar.gz #cd faad2 -2.7 #. /configure #make #make install #cd .. ++++++++FAAC+++++++++++ #wget http://downloads. sourceforge.net/project/faac /faac-src/faac-1.28/faac-1.28.tar.gz #tar zxvf faac-1.28.tar.gz #cd faac-1.28 #./ configure #make #make install #cd .. ++++++++Xvid++++++++++++ #wget http://downloads.xvid.org/downloads/xvidcore- 1.3.2.tar.gz #tar zxvf xvidcore-1.3.2.tar.gz #cd xvidcore/build/generic #./configure #make #make install cd .. #git clone git://source.ffmpeg.org/ffmpeg #cd ffmpeg #./configure –prefix=/opt/ffmpeg/ –enable-version3 –enable -libvpx –enable-libfaac – enable-libmp3lame –enable-libvorbis –enable-libx264 –enable-libxvid –enable-shared –enable-gpl –enable-postproc –enable-nonfree –enable-avfilter –enable-pthreads # make && make install #cd .. Ändern Sie /etc/ld.so.conf wie folgt: include ld.so.conf.d/*.conf /lib / lib64 /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64 /opt/ffmpeg/lib #ldconfig 2. Installieren Sie Nginx-bezogene Module #tar zxvf nginx_mod_h264_streaming-2.2.7.tar.gz #git clone git://github.com/arut/nginx-rtmp-module.git #tar zxvf pcre-8.12.tar.gz #cd pcre-8.12 #./configure #make && make install #tar zxvf nginx-1.2.6.tar.gz #cd nginx-1.2.6 #./configure –prefix=/usr/local/nginx –add-module=../nginx_mod_h264_streaming-2.2.7 –with-http_flv_module –with-http_gzip_static_module –with-http_stub_status_module –with-http_mp4_module –add-module=../ nginx-rtmp-module –add-module=../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 3. Ändern Sie die Nginx-Hauptkonfigurationsdatei und konfigurieren Sie den virtuellen Host (hier konfigurieren und testen wir vorerst nur bei Bedarf, bitte sehen Sie sich die Referenzadresse für die Live-Übertragung an): Benutzer niemand niemand; worker_processes 4; error_log logs/nginx_error.log info; pid logs/nginx.pid; worker_rlimit_nofile 51200; events { use epoll; worker_connections 51200; } #rtmp_auto_push on; rtmp { server { listen 1935; application vod { play /opt/media/nginxrtmp/flv; } } } http { include mime.types; default_type application/octet-stream; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 50m ; limit_conn_zone $binary_remote_addr zone=perip:256k; limit_conn_log_level notice; sendfile on; tcp_nopush on; keepalive_timeout 6000;#测试并发临时调大 tcp_nodelay on; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; #log format log_format main ‘$remote_addr – $remote_user [$time_local] “$request” ‘ ‘$status $body_bytes_sent “$http_referer” ‘ ‘”$http_user_agent” $http_x_forwarded_for’; #支持flv server { listen 8081; server_name 192.168.0.33; root /opt/pub/media/nginx; #http协议时候,flv视频位置 location ~ .*.(flv|swf|mp4|wma|wmv)$ { valid_referers none blocked *.xxxx.com http://localhost; if ($invalid_referer) { return 403; } } location ~ \.flv$ { flv; limit_conn one 20;#限制客户端并发连接数 limit_rate 200k;#限制每客户端最大带宽 } location ~ \.mp4$ { flv; limit_conn one 20; limit_rate 200k; } access_log logs/nginxflv_access.log main; } server { listen 8082; server_name 192.168.0.33; index index.html; location / { root /opt/pub/media/nginx-rtmp; } access_log logs/nginxrtmpflv_access.log main; } server { listen 8080; location /stat { rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { root /opt/pub/soft/nginx-rtmp-module; } location / { root /opt/pub/soft/nginx-rtmp-module/test/rtmp-publisher; } } http://192.168.0.33:8080/stats 查看rtmp客户请求信息 http://192.168.0.33:8081/index.html 查看nginx http协议时候的flv视频 http://192.168.0.33:8082/index.html 查看nginx rtmp协议时候的flv视频 四、基本功能测试: 播放器采用开源播放器jwplayer,将播放器放到index.html同级目录下 NGINX-Http测试页面index.html(切记http的时候需要给视频添加关键帧)
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn