1 nginx安装
我这里使用nginx-1.20.2
版本,此版本已经将 mp4和hls做成内置模块,只需要增加
--with-http_flv_module enable ngx_http_flv_module
--with-http_mp4_module enable ngx_http_mp4_module
配置选项即可。需要注意的是,nginx的配置文件读取,需要用到正则表达式,而正则表达式依赖于 pcre库,这里使用pcre-8.45
,注意nginx依赖的是pcre
而不是pcre2
。
另外若是需要支持rtmp的话,则需要下载独立的nginx-rtmp-module-master
源码,使用--add-module
进行联合编译。
具体安装命令如下:
./configure --prefix=$(pwd)/install --with-threads --with-http_flv_module --with-http_mp4_module --with-pcre=/data1/pengchao6/work/nginx/pcre-8.45 --add-module=../nginx-rtmp-module-master`
make
make install
2 ffmpeg安装
2.1 安装 yasm
搭建视频点播系统,需要涉及到视频处理。为了方便,需要安装ffmpeg
,安装ffmpeg需要依赖于yasm软件,方才能支持ffmpeg部分汇编命令。这里使用yasm-1.3.0
,其安装也无特殊之处,使用命令:
./configure --prefix=$HOME/usr/local/yasm
make
make install
安装完成之后,需要将路径$HOME/usr/local/yasm/bin
添加到PATH
环境变量中,让系统能够找到yasm命令。
2.2 安装ffmpeg
下载ffmpeg源码后,解压,执行命令
./configure --prefix=$HOME/usr/local/ffmpeg
make
make install
安装完成后将l路径$HOME/usr/local/ffmpeg/bin
添加到PATH
环境变量中。
3 支持rtmp直播
3.1 增加rtmp配置
首先在nginx.conf中添加rtmp配置:
rtmp {
server {
listen 1935;
chunk_size 4000;
application live {
live on;
record off;
allow play all;
}
}
}
其中 application 为关键字,live表示rtmp直播名称,其中的内容表示rtmp直播的属性。此配置会为nginx添加一个1935监听端口。
注意:修改此配置后,需要执行 nginx -s stop先停止nginx,然后在启动。不能直接使用 nginx -s reload
3.2 rtmp推流
使用ffmpeg 进行想rtmp服务进行推流:
ffmpeg -re -i test.mp4 -c copy -f flv rtmp://localhost:1935/live
3.3 rtmp拉流
在vlc中使用如下命令拉流:
rtmp://localhost:1935/live