CentOS6.4下基於Nginx搭建mp4/flv流媒體伺服器

來源:互聯網
上載者:User

標籤:

我的步驟如下:
1、安裝依賴包: yum install glibc.i686
#yum –y update
#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   gcc-c++ 

2、安裝git工具://新安裝的軟體都放在建立的softsource檔案夾下
#mkdir softsource
#cd softsource
#wget http://www.codemonkey.org.uk/projects/git-snapshots/git/git-latest.tar.gz
#tar xzvf git-latest.tar.gz 
#cd git-2013-08-28
#autoconf
#./configure
#make && make install
# git --version
git 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)
#wget http://kakola.googlecode.com/files/lame-3.98.4.tar.gz
(安裝lame-3.98.4.tar.gz, 以免在第三步的時候出現ERROR:libmp3lame >= 3.98.3 not found錯誤, 需要提前安裝lame.
)
#tar xzvf lame-3.98.4.tar.gz
#cd lame-3.98.4
#./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+++++++++++
#wget http://webm.googlecode.com/files/libvpx-v1.1.0.tar.bz2 
#tar -vxjf libvpx-v1.1.0.tar.bz2
#cd libvpx-v1.1.0
#./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://sourceforge.net/projects/faac/files/faac-src/faac-1.28/faac-1.28.tar.gz/download (http://172.16.1.100/faac-1.28.tar.gz)
#tar zxvf faac-1.28.tar.gz
#cd faac-1.28
#cd common/mp4v2/
#vi mpeg4ip.h
126G—定位到126行後刪除這一行,保持退出
回到faac-1.28目錄下:cd ..
Cd ..
#./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 ..
++++++++ffmpeg+++++++++++
#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 ..
++++++++ zlib+++++++++++
Wget http://www.zlib.net/ zlib-1.2.8.tar.gz
#tar xzvf zlib-1.2.8.tar.gz
#cd zlib-1.2.8
#./configure –prefix-/usr/local/zlib
#make && make install

修改/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
#ldconfig


二、安裝Nginx相關模組
#wget http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.tar.gz
#tar zxvf nginx_mod_h264_streaming-2.2.7.tar.gz
#git clone git://github.com/arut/nginx-rtmp-module.git
#wget http://sourceforge.net/projects/pcre/files/pcre/8.12/pcre-8.12.tar.gz
#tar zxvf pcre-8.12.tar.gz
#cd pcre-8.12
#./configure –prefix=/usr/local/pcre
#make && make install
#cd ..
下載nginx-1.5.3安裝包
#wget http://nginx.org  wget http://nginx.org/download/nginx-1.5.3.tar.gz
#tar zxvf nginx-1.5.3.tar.gz
#cd nginx-1.5.3
#groupadd www
#useradd -g www www
#cd ..
#cd nginx_mod_h264_streaming-2.2.7/src
#vi ngx_http_streaming_module.c
Delete if(r->zero_in_uri){}
 
#cd ..
#cd nginx-1.5.3
#./configure --prefix=/usr/local/nginx --add-module=../nginx_mod_h264_streaming-2.2.7 --with-http_ssl_module --with-pcre=/root/ softsource /pcre-8.12 --with-zlib=/root/softsource /zlib-1.2.8 --user=www --group=www  --with-http_flv_module --with-http_stub_status_module --add-module=../nginx-rtmp-module
#make
#make install
#cd ..

三、安裝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
#cd ..
使用方法:yamdi -i input.flv -o out.flv
給input.flv檔案 添加主要畫面格,輸出為out.flv檔案


四、修改nginx主設定檔,配置虛擬機器主機(注意空格)
#cd /usr/local/nginx/conf
#vi nginx.conf 修改為以下內容(根據自身情況修改):
user  www www;
worker_processes 30;

error_log  /usr/local/nginx/logs/error.log  crit;
pid        /usr/local/nginx/logs/nginx.pid;

events {
use epoll;
worker_connections      65535;
}

http {
include       mime.types;
default_type  application/octet-stream;
log_format main  ‘$remote_addr – $remote_user [$time_local] ‘
‘”$request” $status $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 on;
gzip_min_length  1100;
gzip_buffers     4 8k;
gzip_types       text/plain;
output_buffers   1 32k;
postpone_output  1460;
client_header_timeout  3m;
client_body_timeout    3m;
send_timeout           3m;
sendfile                on;
tcp_nopush              on;
tcp_nodelay             on;

######################################################################

server {
listen       8081;
server_name  172.16.10.200;###設定主機ip
root    /usr/local/nginx/html/flv_file/;
limit_rate_after 5m;    ####在flv視頻檔案下載了5M以後開始限速
limit_rate 512k;         ####速度限制為512K
index   index.html;
charset utf-8;

location ~ \.flv {
flv;
}
Location ~ \.mp4 {
mp4:
}
Location ~ {
root html;
index index.html index.htm index.php;
}    
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   html;
}
}
}
儲存退出;
#cd ..

五、基本上已經設定完畢,但是此時我們測試的時候還需要一個支援拖拽播放的flash播放器,開源的JW Player就可以實現這樣的功能

下載連結:http://blogimg.chinaunix.net/blog/upfile2/100607142612.rar

下載播放器後,上傳到上面設定的/usr/local/nginx/html/目錄下,並把flv視頻檔案也放到該目錄下!
播放器放到與index.html同級。
這個時候需要安裝rar:
#wget http://www.rarlab.com/rar/rarlinux-3.8.0.tar.gz
#tar zxvf rarlinux-3.8.0.tar.gz -C /usr/local
#yum install glibc.i686
#yum install libstdc++.so.6
此時,/usr/local/rar下就會有rar命令和unrar命令。 
進入到nginx下的html檔案夾下載視頻播放工具player.swf
#cd 
#cd /usr/local/nginx/html
#wget http://blogimg.chinaunix.net/blog/upfile2/100607142612.rar
#unrar –e 100607142612.rar
#ls –l 
可以看到解壓到的檔案;


六、根據nginx的設定檔的中的配置設定連接埠號碼
#vi /etc/sysconfig/iptables
開放8081連接埠
#/sbin/service iptables restart 
重啟防火牆,設定生效
修改防火牆設定檔,所在目錄/etc/sysconfig/iptables,在裡面增加需要開通的連接埠號碼,如下:
1
2-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8088 -j ACCEPT
#增加的代碼必須放在以下代碼之上,否則不會起作用.
1
2-A INPUT -j REJECT --reject-with icmp-host-prohibited 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited


七、啟動nginx後測試:
啟動命令:
#/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
啟動nginx的協助文檔:
#/usr/local/nginx/sbin/nginx -h
#/usr/local/nginx/sbin/nginx –s reload
查看nginx的配置是否正確:
#/usr/local/nginx/sbin/nginx –t
如果配置是正確的會顯示如下內容:
Nginx.conf syntax is ok.
Nginx.conf test is successful.

http://127.0.0.1/player.swf?type=http&file=mp42.mp4

說明: #這裡的127.0.0.1是自己的ip
#player.swf是我的JW Player播放器
#http是表示居於http分發方式
#mp42.mp4是我的flv視頻檔案

CentOS6.4下基於Nginx搭建mp4/flv流媒體伺服器

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.