(九) nginx rtmp流媒体服务器搭建

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huanghuangjin/article/details/82813313
nginx 反向代理服务器搭建(Ubuntu中):(除了nginx搭建流媒体服务器(模块化配置),常用的还有red5(java配置))  nginx官网:http://nginx.org/
	nginx中有很多模块,rtmp-module
	
	1.先下载安装  nginx 和 nginx-rtmp 编译依赖工具,下载的nginx是c源码,需要编译,所以需要先下载编译nginx的工具
		sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
	2. 创建一个工作目录,并切换到工作目录
		mkdir /home/hankin/Desktop/mpeg/nginx
		cd /home/hankin/Desktop/mpeg/nginx
	3. 下载 nginx 和 nginx-rtmp源码(wget是一个从网络上自动下载文件的自由工具)
		wget http://nginx.org/download/nginx-1.14.0.tar.gz
		wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
	4. 安装unzip工具,解压下载的安装包
		sudo apt-get install unzip
	5.解压 nginx 和 nginx-rtmp安装包
		tar -zxvf nginx-1.14.0.tar.gz
			-zxvf分别是四个参数
			x : 从 tar 包中把文件提取出来
			z : 表示 tar 包是被 gzip 压缩过的,所以解压时需要用 gunzip 解压
			v : 显示详细信息
			f xxx.tar.gz :  指定被处理的文件是 xxx.tar.gz
		unzip master.zip
	6. 切换到 nginx-目录
		cd nginx-1.14.0
	7.添加 nginx-rtmp 模板编译到 nginx , 如果出现 the HTTP gzip module requires the zlib library 错误,那么 sudo apt-get install zlib1g zlib1g.dev 即可
		./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
	8.编译安装 
		make   // 编译
		sudo make install   // nginx服务默认是安装在 /usr/local/nginx 目录下,端口默认 listen 80 ,参看 /usr/local/nginx/conf/nginx.conf 配置,可以直接修改该文件,修改nginx服务的端口(我改成了8082)
	9. 安装 nginx init 脚本 (https://github.com/JasonGiedymin/nginx-init-ubuntu/blob/master/nginx)
		sudo wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx   // 开机启动运行开启nginx服务的脚本,-O 表示下载的脚本保存到 /etc/init.d/nginx 文件中
			也可以手动创建 /etc/init.d/nginx 脚本文件(nginx_init.sh),但是注意windows与linux编码问题,不注意的话,启动nginx服务的时候可能会报 Exec format error
		sudo chmod +x /etc/init.d/nginx   // 添加执行权限
		sudo update-rc.d nginx defaults   // 开机启动,执行 /etc/init.d/nginx 脚本文件(此指令可以在其他工作目录下执行)
	10. 启动和停止nginx 服务,生成配置文件
		sudo service nginx start   // systemctl start nginx.service  高版本的Linux系统,换成systemctl命令 , 在浏览器 192.168.1.103:8082/ 即可看到nginx服务器首页 /usr/local/nginx/html/index.html
		sudo service nginx stop    // status 查看状态

	11. 安装 FFmpeg   // 推流到nginx服务器后,需要在服务器解码,这里用ffmpeg
		tar -xvf ffmpeg-4.0.2.tar.bz2   // 重新解压一份ffmpeg,然后复制到 /home/hankin/Desktop/mpeg/nginx 目录下
		cd ffmpeg-4.0.2
		./configure --disable-x86asm   // 检测下配置是否正确,也可以用 --disable-yasm
		make   // 编译 ffmpeg
		sudo make install   // 安装
		ffmpeg -v   // 查看版本信息
	12. 配置 nginx-rtmp 服务器
		打开 /usr/local/nginx/conf/nginx.conf 在末尾添加如下 配置 rtmp 推流:
			rtmp {
				server {
					listen 1935;
					chunk_size 4096;

					application live {
							live on;
							record off;
							# 推流为 live ,$name 表示房间名任意,视频使用 libx264 编码,码率 350K ,视频尺寸 640x360 ,视频格式 flv ,音频采用 aac 编码,码率为 56K
							exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name;
					}
					application live360p {
							live on;
							record off;
					}
				}
			}
	13. 保存上面配置文件,然后重新启动nginx服务
		sudo service nginx restart
	14. 如果你使用了防火墙,请允许端口 tcp 1935 
		telnet 192.168.1.103 1935 测试 tcp 的 1935 端口是否打开(Linux、windows下都可以) 出现 Connected to 192.168.1.103 表示已连接,按 ctrl+] 进入telnet命令行模式,quit退出
	15.服务器配置测试播放器:
		将 flash_player_nginx 内容复制到目录:/usr/local/nginx/html/,然后修改 index.html 的播放地址 src:"rtmp://192.168.1.103:1935/live/hj"
	16.用ffplay播放RTMP直播流:
		ffplay "rtmp://xx.xx.xx.xx:1935/live/hj live=1"

.

Ubuntu中的运行级别: 例如:init 0 命令关机; init 6 命令重新启动
	0(关闭系统)
	1(单用户模式,只允许root用户对系统进行维护。)
	2 到 5(多用户模式,其中3为字符界面,5为图形界面。)
	6(重启系统)
Ubuntu 系统 update-rc.d 命令 是用来更新系统启动项的脚本。这些脚本的链接位于/etc/rcN.d/目录,对应脚本位于/etc/init.d/目录
	update-rc.d -f <basename> remove   // 从所有的运行级别中删除指定启动项
	update-rc.d <basename> start|stop <order> <runlevels>   // 按指定顺序、在指定运行级别中启动或关闭
		实例:update-rc.d apachectl start 20 2 3 4 5 . stop 20 0 1 6 .   // apachectl 为假设的命令
			// 解析:表示在2、3、4、5这五个运行级别中,由小到大,第20个开始运行apachectl;在 0 1 6这3个运行级别中,第20个关闭apachectl。这是合并起来的写法,注意它有2个点号,效果等于下面方法:
				update-rc.d apachectl defaults
	update-rc.d A defaults 80 20
	update-rc.d B defaults 90 10   // A启动后B才能启动,B关闭后A才关闭
	update-rc.d <basename> defaults 90   // 启动和关闭顺序为90,级别默认

猜你喜欢

转载自blog.csdn.net/huanghuangjin/article/details/82813313