nginx搭建流媒体服务器

时间:2022-09-17 08:35:05

一、需要用到的软件包

nginx-1.8.0.tar.gz      :应用服务器主程序

nginx_mod_h264_streaming-2.2.7.tar.gz      :MP4流媒体支持模块。

pcre-7.9.tar.gz                            :perl兼容的正则表达式库模块          

zlib-1.2.3.tar.gz                      :liunx下的JFFS文件系统制作工具

openssl-1.0.1c.tar.gz                 :openssl库

yamdi-1.9.tar.gz                 :为flv文件添加关键帧,才能实现拖动播放

JW Player:开源的flash播放器 支持拖动视频


二、安装配置

将软件包统一放在一个目录中,方便管理 我放在了 /video/soft/nginx/


1)安装zlib过程

tar xf  zlib-1.2.3.tar.gz  //解压到当前目录

cd zlib-1.2.3//进入解压的目录

./configure --prefix=/usr/local/zlib //配置,指定安装目录

make//编译

make install// 安装


2)安装pcre


tar xzvf pcre-7.9.tar.gz

  cd pcre-7.9

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

make

make install


//步骤都是一样



3)安装openssl-1.0.1c

tar xzvf openssl-1.0.1c.tar.gz

  cd openssl-1.0.1c

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

make && make install


//步骤都是一样



4)安装nginx_mod_h264_streaming-2.2.7.tar.gz 

tar xf nginx_mod_h264_streaming-2.2.7.tar.gz 

//这个MP4支持模块直接解压就行,知道放哪了就行


解压完成以后要修改 ./nginx_mod_h264_streaming-2.2.7/src/ngx_http_streaming_module.c

文件,注释掉这一段 不然在编译nginx的时候会报错

-----------------------------------------

#if (r->zero_in_uri)

#  {

#    return NGX_DECLINED;

#  }

---------------------------------------------


5)安装nginx

先创建nginx用户和组

groupadd www

useradd -g www www  -s /sbin/nologin



tar xf nginx-1.8.0.tar.gz  

cd nginx-1.8.0


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

//这里nginx_mod_h264_streaming-2.2.7 模块最好指绝对路径


make

//make要是报错,就是没有注掉之前ngx_http_streaming_module.c 的行


make install



6)安装yamdi-1.9.tar.gz,为flv文件添加关键帧,才能实现拖动播放


tar xzvf yamdi-1.9.tar.gz

cd yamdi-1.9

make

make install

使用方法:yamdi -i anjianziben.flv -o anjianziben2.flv

//将anjianziben.flv 输出成 anjianziben2.flv


7)修改nginx主配置及文件 让其支持flv和mp4播放


vim /usr/local/nginx/conf/nginx.conf

--------------------------------------

location ~ .flv {


flv;


}

location ~ .mp4$ {

mp4;

}

---------------------------------------

注意括号的嵌套关系,放在server 大括号下

附:括号嵌套关系

nginx搭建流媒体服务器

载JW Player播放器,把解压出来的所有文件放在nginx网站根目录

cd /usr/local/nginx/html/

unzip jwplayer-7.7.1.zip


上传一个视频测试,必须是flv或者mp4

yamdi -i anjianziben.flv -o anjianziben2.flv  //用yamdi添加关键帧

编辑一个html让flash调用视频文件

vim test.html

-------------------------------------------------

<html>

<head>

<script src="jwplayer.js"></script>

<script src="jwplayer.flash.swf"></script>

<!--KEY-->

<script>jwplayer.key="iP+vLYU9H5KyhZeGt5eVuJJIoULUjltoaMeHXg==";</script>

</head>

<body>

<div id='myplayer'></div> <script type='text/javascript'>

jwplayer('myplayer').setup({

file: './shipin/00008.mp4',     #调用的视频文件

width: '1024',

height: '768'});

</script>

</body>

</html>

-------------------------------------------------

访问测试:http://192.168.22.22/test.html

PS:视频的比特率建议设置成1200,如果太大会导致画面黑屏。


以后可以一个视频文件对应一个html,在前端做一个超连接,连接到这个html上就可以了。