//http://blog.chedushi.com/archives/6532?utm_source=tuicoolよりNginx を使用して http および rtmp プロトコル用のストリーミング メディア サーバーを構築します 実験の目的: Nginx に flv および mp4 形式のファイルをサポートさせ、同時に rtmp の hls 機能を開きます 情報: HTTP ライブストリーミング(略称:HLS)とは、Apple が提案した HTTP をベースとしたストリーミングメディアネットワーク伝送プロトコルです。 HLS は基本的な HTTP メッセージのみを要求します。リアルタイム トランスポート プロトコル (RTP) とは異なり、HLS は HTTP データの通過を許可するファイアウォールやプロキシ サーバーを通過できます。コンテンツ配信ネットワークを使用してメディアをストリーミングすることも簡単です。ffmpegを使用して、flv、mp4、mp3およびその他の形式の変換を完了します(オンデマンド実験は当面テストされていません)1.準備モジュール:nginx_mod_h264_streaming(h264エンコードビデオをサポート)モジュール:http_flv_moduleはflvをサポートしますモジュール: http_mp4_module は mp4 をサポートします モジュール: nginx-rtmp-module は rtmp をサポートします //2015-3-5 add ダウンロード アドレス:http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.tar .gzhttp:/ /nginx.orghttps://github.com/arut/nginx-rtmp-module1. 依存関係パッケージをインストールします:#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_642. git ツールをインストールします:#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 –versiongit version 1.8.1.GIT#cd ..3. ffmpeg とその依存パッケージをインストールします: ++++++++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 installcd ..#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 ../etc/ld.so.conf を次のように変更します:include ld.so.conf.d/*.conf/lib/lib64/usr/lib/usr /lib64/usr/local /lib/usr/local/lib64/opt/ffmpeg/lib#ldconfig2. Nginx関連モジュールをインストールします#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. nginx のメイン設定ファイルを変更し、仮想ホストを設定します (ここではオンデマンドでの設定とテストのみを行います。ライブ ブロードキャストの参照アドレスを参照してください):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 formatlog_format main ‘$remote_addr – $remote_user [$time_local] “$request” ‘‘$status $body_bytes_sent “$http_referer” ‘‘”$http_user_agent” $http_x_forwarded_for’;#支持flvserver{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的时候需要给视频添加关键帧)test of nginx-http ndex.cgi?P1_Prod_Version=ShockwaveFlash” flashvars=”type=http&file=http://192.168.0.33:8081/2.flv&autostart=true” wmode=”opaque” /> NGINX-RTMP测试页面index.htmlnginx-rtmp ndex.cgi?P1_Prod_Version=ShockwaveFlash” flashvars=”streamer=rtmp://192.168.0.33:1935/vod&file=2.flv&autostart=true” wmode=”opaque” />< ;/object>页面は通常のブロードキャストを開始することができ、構成が正常であることを示します。软件flazr测试:前提需要jdk大切な時間が過ぎたので、この図は省略したものではありません。 以上は、Nginx を利用して http および rtmp サーバーを構築するストリーム メディア サーバーを介したもので、さまざまな内容が含まれており、PHP 教則に関心のある友人の助けになることが望まれます。