Linux自建直播服务器一:使用Nginx+rtmp模块搭建流媒体服务器

技术服务于生活。当在日常遇到问题的时候,需要经常去思考如何解决这个问题。

最近网易的逆水寒开测了,非常荣幸拿到一个资格号,可以来体验一下这款国产巅峰级网游,一个会呼吸的江湖。作为一个极度业余的主播(一般只直播给朋友看),自然打开了斗鱼直播助手,准备直播一下。

可是比较无奈的是这款游戏的配置要求太高了,不开直播不卡,但是一开直播马上卡的起飞。一看斗鱼直播助手的cpu占用率飙到了30%。关闭这个软件,马上就好了。

后来想了一个解决方法,用OBS软件直接推流。OBS比较给力,一直占用10%左右的CPU。几乎没有任何卡感。OBS真是一个很强大的推流软件(关于OBS在后续文章会介绍)。后面的流媒体直播服务器,就是因为OBS而起。

闲话少说,下面进入正题吧。

既然有了推流软件,那么我们可以自己搭建一个私人的RTMP流媒体服务器,把屏幕录像转化成视频流推送到流媒体服务器,然后其他用户访问流媒体服务器就能看到直播了。用户不仅可以通过网页访问流媒体服务器,还可以通过播放器(potplayer、VLC)、APP等访问。流程如下图:

直播效果图(纯洁脸):

image.png

1529893794307255.jpg 

  

既然是直播服务器,那么大带宽、大流量是肯定的。如果只是偶尔私人直播,给几个朋友看看,那一般国外的云服务器也可满足要求(后续会更新本地搭建直播服务器,利用宽带直播)。但是要注意的是,你本地电脑到国外服务器如果延迟大的话,意味着丢包率也高。丢包率高了别人看你直播就会比较卡。如果使用国内云服务器,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

image.png

按任意键开始安装。等待安装完成后进入下一步。如果安装完成提示失败那么重新安装一次就行了

二、安装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目录下可以看到这个文件夹了:

image.png

2. 使用如下命令查看编译安装参数:

nginx -V

可以看到:

image.png

在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之间加入如图内容:

image.png

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

后面的以后再说

评论

目前评论:0   

点击加载更多评