直播系统最简单地包括推流和拉流,在这里先使用nginx-rtmp-module作为流媒体服务器。
流媒体服务器搭建
1. nginx-rtmp-module下载和安装
源码地址:
使用git命令下载:git clone2.nginx源码下载及编译安装
nginx下载: wget http://nginx.org/download/nginx-1.16.0.tar.gz
http://nginx.org/en/download.html
得到。 在编译nginx之前,需要先下载编译安装好zlib、openssl、pure库
wget http://www.zlib.net/zlib-1.2.11.tar.gztar xf zlib-1.2.11.tar.gzcd zlib-1.2.11./configuremake && make installwget https://www.openssl.org/source/openssl-1.0.2l.tar.gztar xf openssl-1.0.2l.tar.gzcd openssl-1.0.2l./configmake && make installwget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gztar xf pcre-8.42.tar.gzcd pcre-8.42./configuremake && make install
安装之前可以先检查下自己的电脑有没有已经安装了。
然后就可以开始编译nginx了:
tar xf nginx-1.16.0.tar.gzcd nginx-1.16.0/./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module --with-http_ssl_module --with-pcre=../pcre-8.42 --with-openssl=../openssl-1.0.2l --with-zlib=../zlib-1.2.11make && make install
注意:执行./configure
命令时的路径要对应。
执行完上述步骤后,如果没有错误,nginx就会已经部署在/user/local/nginx
目录。
cd /user/local/nginxtree# 启动和关闭nginxsudo /user/local/nginx/sbin/nginxsudo /user/local/nginx/sbin/nginx -s stop
3. 配置rtmp转发
修改nginx.conf
文件,以支持RTMP:
rtmp { server { listen 9999; #直播 application live { live on; } #点播 application vod { play /tmp/video; } } }
修改完成之后重启nginx:
/usr/local/nginx/sbin/nginx -s reload
通过netstat -ltn
命令我们可以看到9999端口正在监听.这便是我们配置的rtmp的服务端口。
FFmpeg推流
安装ffmpeg
sudo apt-get install ffmpeg
推流
ffmpeg -re -i input.mp4 -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://127.0.0.1:9999/live/test
ffplay拉流
ffplay rtmp://127.0.0.1:9999/live/test
如此,一个最简单的直播系统就搭建完成了。