一.准备工作
2.1 添加repository
2.2 install RPMforge
2.3 install epel
2.4 开始使用yum安装git
wget http://ftp.exim.llorien.org/pcre/pcre-8.32.tar.gz
wget wget
http://nginx.org/download/nginx-1.4.3.tar.gz
wget
http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.tar.gz
git clone
git://github.com/arut/nginx-rtmp-module.git
if
(r->zero_in_uri)
{
return NGX_DECLINED;
}
{
use
epoll;
worker_connections 51200;
}
#rtmp_auto_push
on;
rtmp {
server {
listen 1935;
application vod {
play
/opt/media/nginxrtmp/flv;
}
}
}
1、安装依赖包:
#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
2、安装git工具:
RHEL/CentOS
6
i686
cd
/etc/yum.repos.d/
wget
http://geekery.altervista.org/geekery-el6-i686.repo
x86_64
cd
/etc/yum.repos.d/
wget
http://geekery.altervista.org/geekery-el6-x86_64.repo
RHEL/CentOS 6
i686:
wget
http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
rpm -ivh rpmforge-release-0.5.2-2.el6.rf.i686.rpm
x86_64:
wget
http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
i686: rpm -ivh
http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
x86_64: rpm -ivh
http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
#yum -y install
git
#git --version
#git version
1.7.10
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
#tar xzvf lame-3.99.5.tar.gz
#cd lame-3.99.5
#./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+++++++++++
#git clone http://git.chromium.org/webm/libvpx.git
#cd libvpx
#./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
++++++++FAAC+++++++++++
#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
编译FAAC-1.28时遇到错误:
mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const
char*, const char*)’
解决方法:
修改此文件mpeg4ip.h
修改前:
#ifdef __cplusplus
extern "C" {
#endif
char *strcasestr(const char *haystack, const char
*needle);
#ifdef __cplusplus
}
#endif
修改后:
#ifdef __cplusplus
extern "C++" {
#endif
const char *strcasestr(const char *haystack, const char
*needle);
#ifdef __cplusplus
}
#endif
++++++++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
..
#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
#ldconfig
安装yamdi
yadmi的作用是为flv文件添加关键帧,才能实现拖动播放
下载yadmi
#wget http://sourceforge.net/projects/yamdi/files/yamdi/1.4/yamdi-1.4.tar.gz/download
#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文件
yadmi的作用是为flv文件添加关键帧,才能实现拖动播放
下载yadmi
#wget
#tar
#cd
#make
.
使用方法:yamdi
给input.flv文件
三、下载nginx
1.下载
2.安装
#tar zxvf
pcre-8.32.tar.gz
#cd pcre-8.32
#./configure
#make&&make
install
#tar zxvf
nginx-1.4.3.tar.gz
#cd nginx-1.4.3
#./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
#make&&make
install
报错ngx_http_streaming_module.c:158:
错误:‘ngx_http_request_t’ 没有名为 ‘zero_in_uri’
的成员。这需要修改nginx_mod_h264_streaming-2.2.7的源代码:
修改ngx_http_streaming_module.c,注释掉
make
clean,重新configure,重新make
3 配置
events
4.启动
/usr/local/nginx/sbin/nginx
nginx -s stop
快速退出
nginx -s quit
优雅退出
nginx -s reload
更换配置,启动新的工作进程,优雅的关闭以往的工作进程
nginx -s reopen
重新打开日志文件
启动nginx报错 nginx: error while
loading shared libraries: libpcre.so.1
#ln -s libpcre.so.0.0.1
libpcre.so.1