技术服务于生活。当在日常遇到问题的时候,需要经常去思考如何解决这个问题。
最近网易的逆水寒开测了,非常荣幸拿到一个资格号,可以来体验一下这款国产巅峰级网游,一个会呼吸的江湖。作为一个极度业余的主播(一般只直播给朋友看),自然打开了斗鱼直播助手,准备直播一下。
可是比较无奈的是这款游戏的配置要求太高了,不开直播不卡,但是一开直播马上卡的起飞。一看斗鱼直播助手的cpu占用率飙到了30%。关闭这个软件,马上就好了。
后来想了一个解决方法,用OBS软件直接推流。OBS比较给力,一直占用10%左右的CPU。几乎没有任何卡感。OBS真是一个很强大的推流软件(关于OBS在后续文章会介绍)。后面的流媒体直播服务器,就是因为OBS而起。
闲话少说,下面进入正题吧。
既然有了推流软件,那么我们可以自己搭建一个私人的RTMP流媒体服务器,把屏幕录像转化成视频流推送到流媒体服务器,然后其他用户访问流媒体服务器就能看到直播了。用户不仅可以通过网页访问流媒体服务器,还可以通过播放器(potplayer、VLC)、APP等访问。流程如下图:
直播效果图(纯洁脸):
既然是直播服务器,那么大带宽、大流量是肯定的。如果只是偶尔私人直播,给几个朋友看看,那一般国外的云服务器也可满足要求(后续会更新本地搭建直播服务器,利用宽带直播)。但是要注意的是,你本地电脑到国外服务器如果延迟大的话,意味着丢包率也高。丢包率高了别人看你直播就会比较卡。如果使用国内云服务器,1M带宽….不用想了。所以这里我还是推荐香港的云服务器,到内地还是很稳定的。这篇博客就是以阿里云香港服务器30M带宽,1000G月流量为例。
环境:centos7系统,阿里云香港服务器
一、安装Nginx
流媒体服务器只需要Nginx+Nginx的rtmp模块就行了。首先ssh连接到服务器,通过LNMP一键安装包单独安装Nginx:
yum -y install wget cd /root wget -c http://soft.vpser.net/lnmp/lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz cd lnmp1.5 ./install.sh nginx
按任意键开始安装。等待安装完成后进入下一步。如果安装完成提示失败那么重新安装一次就行了
二、安装rtmp模块
1. 下载nginx-rtmp-module:
yum -y install git cd /root/lnmp1.5 git clone https://github.com/arut/nginx-rtmp-module.git
完成后在lnmp1.5目录下可以看到这个文件夹了:
2. 使用如下命令查看编译安装参数:
nginx -V
可以看到:
在configure arguments后面就是安装参数了。把这个参数复制下来
3. 重新编译安装nginx,在参数后面添加模块:
cd /root/lnmp1.5/src tar zxvf nginx-1.14.0.tar.gz cd nginx-1.14.0 ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-stream --with-stream_ssl_module --with-openssl=/root/lnmp1.5/src/openssl-1.0.2o --add-module=../nginx-rtmp-module make && make install
装完之后nginx就支持rtmp流媒体了。
三、配置推流地址以及播放页面
1. 配置推流地址:
vim /usr/local/nginx/nginx.conf
如图,在events和http之间加入如图内容:
rtmp { server{ listen 6666; #推流端口 可自定义 application rtmplive{ live on; max_connections 5; #最大观看人数 } application hls{ live on; hls on; #wait_key on; hls_path /www/rtmp/hls; #录像文件存储位置 #hls_playlist_length 60s; hls_fragment 1s; #视频切片大小 } } }
2. 配置播放页面
vim /usr/local/nginx/conf/vhost/你的域名.conf
加入如下内容:
server { listen 80; server_name 你的域名; #charset koi8-r; #access_log logs/host.access.log main; location / { root /www/rtmp; #网站目录 index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
到这一步流媒体服务器就搭建完成了。下面再送一个web直播页面,很好用,强烈推荐:http://www.cuplayer.com/player/PlayerCodeCourse/2014/12171698.html
后面的以后再说