CentOS6.4下基于Nginx搭建mp4/flv流媒体服务器

我的步骤如下:
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视频文件

时间: 2024-10-01 03:36:55

CentOS6.4下基于Nginx搭建mp4/flv流媒体服务器的相关文章

CentOS6下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具)

1.先添加几个RPM下载源 1.1)安装RPMforge的CentOS6源      [[email protected] ~]# wget -c http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm      [[email protected] ~]# rpm –import http://apt.sw.be/RPM-GPG-KEY.dag.txt      [[email 

nginx搭建rtmp协议流媒体服务器总结

最近在 ubuntu12.04+wdlinux(centos)上搭建了一个rtmp服务器,感觉还挺麻烦的,所以记录下. 大部分都是参考网络上的资料. 前提: 在linux下某个目录中新建一个nginx目录. 然后进入该目录去下载搭建环境所需要的一些资源包. 此处在 /root/  目录下新建一个nginx目录即: /root/softsource/ 注意:依赖包和工具包需要下载,请在良好的网络环境下安装,否则在网速不好的情况下容易下漏掉,造成后面安装失败 ====================

图文:CentOS 下对 Nginx + Tomcat 配置 SSL 实现服务器 / 客户端双向认证

1. 安装 nginx 1.1 nginx 包及其依赖包下载 出于模块的依赖性,Nginx 依赖以下三个包: gzip 模块需要 zlib 库(http://www.zlib.net/): rewrite 模块需要 pcre 库(http://www.pcre.org/): ssl 功能需要 openssl 库(http://www.openssl.org/): 分别下载它们的最新稳定版(截至本文最新稳定版分别是 zlib-1.2.8.tar.gz.pcre-8.36.tar.gz.openss

用VLC Media Player搭建简单的流媒体服务器

VLC可以作为播放器使用,也可以搭建服务器. 在经历了Helix Server和Darwin Streaming Server+Perl的失败之后,终于找到了一个搭建流媒体简单好用的方法. 这个网址中的内容已经很详细了: http://m.blog.csdn.net/article/details?id=38424957 我使用的是UDP的方法. 粗略步骤如下:1.在PC和手机上分别下载好VLC Media Player这个软件.将PC作为服务器,手机作为客户端. 在电脑上下载软件的地址是:ht

转:Linux下使用Nginx搭建简单图片服务器

最近经常有人问图片上传怎么做,有哪些方案做比较好,也看到过有关于上传图片的做法,但是都不是最好的,今天再这里简单讲一下Nginx实现上传图片以及图片服务器的大致理念. 如果是个人项目或者企业小项目,仅仅只有十来号人使用的小项目,可以使用如下方案: 用户访问系统,使用上传图片功能,那么图片就上传到你的当前项目所在的tomcat服务器上,在/image下,上传成功后用户可以直接访问 http://ip:port/project/images/xxx.jpg 这样做在用户少的时候是没有问题的 当你的企

nginx搭建mp4流服务器

流媒体服务器 流媒体指以流方式在网络中传送音频.视频和多媒体文件的媒体形式.相对于下载后观看的网络播放形式而言,流媒体的典型特征是把连续的音频和视频信息压缩后放到网络服务器上,用户边下载边观看,而不必等待整个文件下载完毕.由于流媒体技术的优越性,该技术广泛应用于视频点播.视频会议.远程教育.远程医疗和在线直播系统中.作为新一代互联网应用的标志,流媒体技术在近几年得到了飞速的发展. 流媒体播放方式 HTTP方式 这种方式要下载FLV视频文件到本地播放,一旦FLV视频文件下载完成,就不会消耗服务器的

Nginx整合mp4,flv模块

注: nginx 1.1.3之后已经默认支持mp4,flv模块,无须第三方模块支持. 操作步骤: 1:解压,编译nginx,编译添加mp4,flv模块: # tar -zxvf nginx-1.3.14.tar.gz # cd nginx-1.3.14 # ./configure  # ./configure --prefix=/usr/local/nginx --user=nobody --group=nobody --with-select_module --with-poll_module

基于Nginx搭建Web服务器及虚拟主机相关配置详解

随着计算机与Internet技术的高速发展,各种各样的Web站点也就成为面向用户的中坚力量.在各种网站服务器软件中.除了Apache外,还有一款轻量级的HTTP服务器软件--Nginx. 基于Apache搭建Web服务器可以参考博文:基于Apache搭建Web服务器详解 一.Nginx服务简介 Nginx由俄罗斯的lgor Sysoev开发,专为性能优化而开发,其最知名的优点就是它的稳定性和低系统资源消耗.以及对HTTP并发连接的高处立能力(单台物理服务器可支持30000~50000个并发请求)

centos6.8+nginx搭建简单的https服务器

这里nginx搭建https服务器,必须几个要求,第一有安装openssl-devel,当然这个没有貌似编译添加ssl模块会出错.那如果编译有不会的可以参考我前面的博客,当然baidu和google上资料也很多. 1.确认nginx服务器能正常运行 lsof -i:80 #查看80端口是否正常启用,nginx默认80端口而不是443端口 netstat -ntpl | grep nginx | wc -l ss -ntpl | grep nginx |wc -l #这也是一种方法,wc -l是统