现在的位置: 首页 > 综合 > 正文

nginx搭建mp4、flv流媒体服务器

2017年12月27日 ⁄ 综合 ⁄ 共 4105字 ⁄ 字号 评论关闭

from: http://hi.baidu.com/injava/blog/item/40636f3169762f0eebc4afb8.html

 

nginx搭建mp4、flv流媒体服务器
2011-05-17 13:43

一、

FLV
视频发布方式简介

FLV
视频有两总发布方式

1、  


HTTP
方式

这种方式要下载
FLV
视频文件到本地播放,一旦
FLV
视频文件下载完成,就不会消耗服务器的资源和带宽,但是拖动功能没有
RTMP/RTMP
流媒体方式强大,很多视频网站都是用
HTTP
方式实现的,如:
YouTube
,土豆,酷
6

2、  


RTMP/RTMP
流媒体方式

这种方式不用下载
FLV
视频文件到本地,可以实时的播放
flv
文件,可以任意拖拽播放进度条,但是比较消耗服务器的资源,

 

 

二、

使用
nginx
来搭建
flv
流媒体服务器

1
、使用
nginx
来搭建
flv
流媒体服务器简介

nginx
中的
Flv Stream
模块能实现
flv
流媒体的功能
,
而且支持
flv
视频进度条拖拽,另外
nignx
还可以作为方向代理服务器代理后端基于
Flash Media Server
或者
Red5

RTMP/RTMP
流媒体服务器

 

2、  


下面我们就来搭建一个完整的
nginx
流媒体服务器

1
)、
Nginx
服务器的安装

                     
#

安装
zlib

tar xzvf zlib-1.2.3.tar.gz

                     
cd zlib-1.2.3

                     
./configure

                     
make && make install

                    
#

安装
pcre

                     
tar zxvf pcre-7.9.tar.gz

                     
cd pcre-7.9

                     
./configure --prefix=/usr/local/pcre

                     
make && make install

                     #添加mp4支持模块

                     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

                     
#

安装
nginx

groupadd www

                     
useradd -g www www

              
    
tar xzvf nginx-0.8.34.tar.gz

              
    
cd nginx-0.8.34

                     
    
./configure
--add-module=../nginx_mod_h264_streaming-2.2.7 --with-http_ssl_module
--with-pcre=/root/zhang/nginx/pcre-7.9
--with-zlib=/root/zhang/nginx/zlib-1.2.3 --user=www --group=www
--prefix=/usr/local/nginx --with-http_flv_module 

--with-http_stub_status_module

              
       
make && make install

2
)、安装
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

      给
input.flv
文件
 添加关键帧,输出为
out.flv
文件

       
  
3

)、配置
nginx

              
 
vi /usr/local/nginx/conf/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       
80;

        
server_name  
192.168.1.105;

        
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;
        }

        
error_page   
500 502 503 504  
/50x.html;

        
location = /50x.html {

            
root   
html;

        
}

 

}

}

 

4
)、基本上已经设置完毕,但是此时我们测试的时候还需要一个支持拖拽播放的
flash
播放器,开源的
JW Player
就可以实现这样的功能,我将编译的播放器上传上来,供大家下载:

       

下载链接:
http://blogimg.chinaunix.net/blog/upfile2/100607142612.rar

       

下载播放器后,上传到上面设置的
/usr/local/nginx/html/flv_file/
目录下,闭关把
flv
视频文件也放到该目录下!

 

5
)、启动
nginx
后测试:

       
http://192.168.1.105/player.swf?type=http&file=test1.flv

       
      说明: 
#

我的
ip

192.168.1.105

       
                
#player.swf

是我的
JW Player
播放器

       
                
#http

是表示居于
http
分发方式

       
                
#test1.flv

是我的
flv
视频文件

抱歉!评论已关闭.