CentOS7安装直播模块nginx-rtmp-module

首先我们下载需要的源码包,如下:

nginx-rtmp-module-1.2.1.zip

nginx-1.18.0.tar.gz

哪里下载的?肯定是官方啊!

我们先用YUM安装编译环境:

yum -y install gcc gcc-c++ zlib zlib-devel pcre pcre-devel openssl openssl-devel unzip

我一般习惯把源码包集成放置到 /data/ide 目录下,首先要解压缩 nginx-rtmp-module

		cd /data/ide
		
		unzip nginx-rtmp-module-1.2.1.zip

然后编译安装Nginx

		mkdir /data/nginx

		groupadd nginx

		useradd -g nginx nginx -s /sbin/nologin
		
		cd /data/ide

		tar zxvf nginx-1.18.0.tar.gz

		cd nginx-1.18.0

		export CFLAGS=""

		./configure --prefix=/data/nginx \
		--user=nginx \
		--group=nginx \
		--with-http_ssl_module \
		--add-module=/data/ide/nginx-rtmp-module-1.2.1 
		
		make && make install

这个过程非常简单了,我们将nginx安装到了/data/nginx目录下,并且创建了一个同名用户来运行Nginx 

通常情况,我们都会把nginx设置开机启动,centos 7以上是用Systemd进行系统初始化的

		cd /lib/systemd/system

		vi nginx.service


		[Unit]
		Description=nginx
		After=network.target
   
		[Service]
		Type=forking
		ExecStart=/data/nginx/sbin/nginx
		ExecReload=/data/nginx/sbin/nginx reload
		ExecStop=/data/nginx/sbin/nginx quit
		PrivateTmp=true
   
		[Install]
		WantedBy=multi-user.target

		:wq

		# 设置开机启动
		systemctl enable nginx.service

其实很简单,就是在 /lib/systemd/system 目录下创建一个 nginx.service 文件。

文件内容已经给出,然后通过 systemctl 命令设置开机自启动。

请注意nginx的安装目录,如果跟我的不一样,文件内容的路径也要对应调整。

如果我们需要重启或者关闭Nginx的话,可以使用如下命令


		# 启动nginx命令
		systemctl start nginx.service
		# 结束nginx命令
		systemctl stop nginx.service
		# 重启nginx命令
		systemctl restart nginx.service

这个东西确实别CentOS6简单多了。

Nginx安装成功后,我们需要设置防火墙,开启80端口。

		yum -y install iptables-services

		vi /etc/sysconfig/iptables

		-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

		-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

		:wq

		# 关闭firewall,CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙
		systemctl disable firewalld.service

		# 设置开机启动:
		systemctl enable iptables.service

上面的脚本很简单了,安装iptables,然后增加80端口,关闭CentOS默认的防火墙,设置iptables开机启动。

我们重启CentOS之后,浏览器访问:http://192.168.0.200

为什么是这个IP地址,请翻我前面的文章。

还没有结束,我们的目的是安装nginx-rtmp-module,一个直播模块。

我们需要配置,开启直播功能:


		vi /data/nginx/conf/nginx.conf

		rtmp {
			server {
				listen 1935;
				application mylive {
					live on;
				}
			}
		}

        :wq        

		# 重启Nginx
		systemctl restart nginx.service

上面的脚本很简单啊,就是修改Nginx的配置文件,增加rtmp标签内容。

把内容放到events和http中间即可,rtmp默认使用1935端口。

因此,我们需要开启1935端口:


		# 添加端口

		vi /etc/sysconfig/iptables

		-A INPUT -p tcp --dport 1935 -j ACCEPT

        :wq

		# 重启防火墙
		systemctl restart iptables

配置已经完成,Nginx和防火墙都已经重新启动了。

下一步该如何使用检查一个直播功能了。

推流我们使用ffmpeg命令即可,拉流的话安装一个VLC media player即可。

请注意,推流是CentOS虚拟机上运行的,VLC media player播放器拉流是在宿主机Win7上完成的。

关于如何安装ffmpeg请参考上一篇文章:CentOS7编译安装ffmpeg

我们随便下载一个mp4视频文件,放置到/data目录下即可,然后执行如下命令进行推流:

ffmpeg -re -i /data/test.mp4 -vcodec copy -acodec aac -b:a 192k -f flv rtmp://192.168.0.200:1935/mylive/3

        #-vcodec copy 指定视频编码为复制。
        #-acodec aac 音频使用aac编码。
        #-b:a 192k则是指定码率。
        #-f flv 指定输出格式,这个必须是flv才能推到直播服务器。

直播流地址是:rtmp://192.168.0.200:1935/mylive/3

后面的数字3是流ID,一个视频流对应一个ID,也可以理解为一个直播房间,这个ID肯定是根据业务情况自定义的。

推流开始后截图如下:

执行推流命令之后,我们就可以打开 VLC media player ,一个路障标志的播放器。

使用菜单”媒体“-》”打开网络串流(N)“, 见如下:

在地址栏输入 直播流地址,点击播放就能看到我们刚才的mp4文件了。

视频播放开始的时候,还显示了播流地址。说明成功了!

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咆哮的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值