ホームページ >バックエンド開発 >PHPチュートリアル >nginx を使用して、rtmp または http に基づいて flv および mp4 ストリーミング メディア サーバーを構築する

nginx を使用して、rtmp または http に基づいて flv および mp4 ストリーミング メディア サーバーを構築する

WBOY
WBOYオリジナル
2016-08-08 09:21:001700ブラウズ

http://itindex.net/detail/48702-nginx-rtmp-http

1. ストリーミングメディアの再生方法

1. HTTP メソッド
このメソッドは、FLV ビデオ ファイルをダウンロードしてローカルで再生します。FLV ビデオ ファイルがダウンロードされると、サーバーのリソースと帯域幅は消費されませんが、ドラッグ機能は RTMP/ ほど強力ではありません。 RTMP ストリーミング方式。YouTube、Tudou、Ku6 など、多くのビデオ Web サイトは HTTP を使用して実装されています。
2. RTMP/RTMP ストリーミング方式
この方法では、FLV ビデオ ファイルをローカルにダウンロードする必要はありません。 flv をリアルタイムで再生できます。 ファイルをドラッグ アンド ドロップしてプログレス バーを再生できますが、より多くのサーバー リソースを消費します。
2. nginx を使用して flv ストリーミング メディア サーバーを構築します
1. git をインストールします
yum install git
2. 依存関係パッケージをインストールします
-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
3. ffmpeg とその依存関係パッケージをインストールします (依存関係パッケージは /usr/local/src にインストールされていますが、インストールは場所は個人の習慣に応じて決定できます)
以下のインストールパッケージは yum でインストールできます。そうでない場合は、wget を使用してインストールしてください。
#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
#。 #cd x264
#./configure --enable-shared
#make
#make install
#cd ..
#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 ..
#yum install libogg
注: libogg は、さまざまなオンライン チュートリアルに従って .tar.gz パッケージを使用してインストールされます。インストール後に libvorbis、libvpx などをインストールすると、libogg のインストール場所が見つからず、インストールが失敗します。 
#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 ..
#git clone http://git.chromium.org/webm/libvpx.git
#cd libvpx
#./configure --enable-shared
#make
#make install
#cd ..
#wget http://downloads.sourceforge.net/ project/faac/faad2-src/faad2-2.7/faad2-2.7.ta​​r.gz
#tar zxvf faad2-2.7.ta​​r.gz
#cd faad2-2.7
#./configure
#make
#make install
#cd ..
#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 ..
#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 ..
修改/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
三、インストールnginx模块
#wget http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.ta​​r。 gz
#tar zxvf nginx_mod_h264_streaming-2.2.7.ta​​r.gz
#git clone git://github.com/arut/nginx-rtmp-module.git
#yum install pcre
ngin ×グラウンドに到達せず、手動でダウンロードしてから上に転送することのみが可能です。
#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
yamdiをインストール
yadmiはflvファイルの追加に使用されます キーフレームを使用してドラッグ アンド プレイを実現できます
#yadmi をダウンロード
wget http://sourceforge.net/projects/yamdi/files/yamdi/1.4/yamdi-1.4.tar.gz/download
# yadmi をインストールします
tar xzvf yamdi-1.4.tar.gz
cd yamdi-1.4
make && make install
使用法: yamdi -i input.flv -o out.flv
入力を行ってください。 flv ファイルにキー フレームを追加すると、out.flv ファイルが出力されます
IV. nginx のメイン設定ファイルを変更します
vi /usr/local/nginx/conf/nginx.conf
user www www ;
worker_processes 30 ;
error_log /usr/local/nginx/logs/nginx.pid;
イベント epoll を使用します
ワーカー_コネクション 65535; 
http {
include mime.types; 
default_type application/octet-stream; 
log_format main '$remote_addr - $remote_user [$time_local] '
$bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$gzip_ratio" '; 
keepalive_timeout 60; 
server_names_hash_bucket_size 128; 
client_header_buffer_size 32k; 
large_client_header_buffers 4 32k; 
access_log off; 
gzip をオンにします。 
gzip_min_length 1100; 
gzip_buffers 4 8k; 
gzip_types text/plain; 
Output_buffers 1 32k; 
延期_出力 1460; 
client_header_timeout 3 分; 
client_body_timeout 3 分; 
send_timeout 3分; 
sendfile オン; 
tcp_nopush オン; 
tcp_nolay オン; 
サーバー {
聞いてください 80; 
サーバー名 192.168.1.105; 
root /usr/local/nginx/html/; 
limit_rate_after 5m;    ####在 flv ビデオ文件ダウンロード完了 5M 以降開始制限速度
limit_rate 512k;        ####速度制限は 512K
index index.html; 
文字セット utf-8; 
location ~ .flv {
flv; 
}
場所 ~ .mp4$ {
mp4; 
}
500 502 503 504 /50x.html;
location = /50x.html {
}
} 5. nginx
nginx を確認してください。起動前のconfファイル設定
/usr/local/nginx/sbin/nginx -t -c /usr/nginx/conf/nginx.conf
または
/usr/nginx/sbin/ nginx -t
エラーがある場合は、エラー行数に応じて修正してください。
エラーが報告された場合: [エラー]: "/var/run/nginx.pid" の PID 番号 "" が無効です
usr/local/nginx/sbin/nginx -c /usr/local/nginx/ conf/nginx .conf
nginx 起動
/usr/local/nginx/sbin/nginx -s リロード
テスト
http://192.168.1.105/player.swf?type=http&file=test1 .flv
(player.swf はプレーヤー、test1.flv はビデオ ファイルです)
プレーヤーはビデオ ファイルと一緒に配置する必要があります。
ビデオ ファイルの場所は、nginx.conf の設定場所に対応します。
この記事の添付ファイルをダウンロード: play.rar (89 KB)
nginx-0.8.55.tar.gz (632.6 KB)
上記では、nginx を使用して rtmp または http に基づいて flv および mp4 ストリーミング メディア サーバーを構築する方法を、関連コンテンツも含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。
    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。