最近在学习视频直播方面的知识,所以自己试着搭建服务器和客户端进行推流.逛了很多博客,最后决定使用nginx和rtmp进行部署.
前期准备工作,百度云买了个服务器49元半年的.1核1G内存,学习用的也就够了.
gcc 安装
yum -y install gcc gcc-c++
PCRE pcre-devel 安装
yum install -y pcre pcre-devel
zlib 安装
yum install -y zlib zlib-devel
OpenSSL 安装
yum install -y openssl openssl-devel
以上的工具安装完成后,下载nginx和rtmp
在var目录下创建一个temp的目录
cd temp 进入目录
下载nginx和rtmp和解压
wget http://nginx.org/download/nginx-1.12.0.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/v1.2.0.tar.gz
tar -xzvf nginx-1.12.0.tar.gz
tar -xzvf v.1.2.0.tar.gz
进入nginx-1.12.0目录
里面有configure的可执行文件.
./configure --prefix=/usr/local/nginx --add-module=/var/temp/nginx-rtmp-module-1.2.0 --with-http_ssl_module
执行完以上命令后会在目录里成成一个Makefile的文件.接着编译安装
make && make install
执行完以上命令就可以安装完成nginx和rtmp了,接着需要配置相关参数
将/var/temp/nginx-rtmp-module-1.2.0/test里面的ngxin.conf 文件复制到/usr/local/nginx/conf,覆盖里面的配置文件.
并进入/usr/local/nginx/conf文件夹
vim nginx.conf
编辑配置文件
location /stat.xsl {
root /var/temp/nginx-rtmp-module-1.2.0;
}
location /rtmp-publisher {
root /var/temp/nginx-rtmp-module-1.2.0/test;
}
location / {
root /var/temp/nginx-rtmp-module-1.2.0/test/www;
}
对应的location位置配置成自己的路径.就配置成功了
进入/usr/local/nginx/sbin目录,启动nginx服务
./nginx
执行以上命令将nginx服务启动
可以通过ps -ef|grep nginx 命令查看是否一起动.
[root@instance-d3g0taov conf]# ps -ef|grep nginx
root 93601 1 0 14:37 ? 00:00:00 nginx: master process ./nginx
nobody 94044 93601 0 14:44 ? 00:00:00 nginx: worker process
root 95542 70299 0 15:14 pts/0 00:00:00 grep --color=auto nginx
出现以上的信息时,说明已经把nginx配置成功了
这个时候我们可以在浏览器输入我们百度云的公网ip:xx.xx.xx.xx:8080/stat 进入rtmp的后台,或者xx.xx.xx.xx:8080/index.html
如果页面可以正常显示就说明我们已经配置成功了.如果不能显示则是防火墙的问题.吧防火墙关闭就OK了
systemctl stop firewalld
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
以上的是配置nginx,我们实验下推流和拉流
可以下载ffmpeg 进行推流 http://www.ffmpeg.org/download.html下载ffmpeg.我这里下载的是window版本,下载到本地后解压.会有个bin目录.
里面有ffmpeg.exe 和ffmplay.exe两个文件.我们把一个flv文件拷贝这里.
使用系统的cmd命令窗口.进入到这个bin目录.执行推流命令
ffmpeg.exe -re -i E:\javaee\ffmpeg_play\ffmpeg-play\bin\China.flv -f flv rtmp://xx.xx.xx.xx/myapp/mystream
-i 后是flv文件的路径名 rtmp是我们要推倒那里去.xx.xx.xx.xx是我们百度云的公网地址.myapp是在nginx.conf中定义的项目.mystream可以自己命名 执行玩命令后就可以进行推流了.
可以通过VLC rtmp://xx.xx.xx.xx/myapp/mystream通过这个地址进行拉流播放.亲测可以正常推流和拉流
初次接触,写的不好,请多指教