03月06, 2018

安装配置TUNA直播系统

首先,这是一个带弹幕的直播系统,弹幕使用的是上一篇文章中配置的系统。

说是TUNA直播系统,实际上用的只是TUNA的弹幕系统和直播的前端页面,核心的还是Nginx的rtmp功能。

但是Nginx本身是没有rtmp功能的,我们需要扩展来实现。而加入扩展就需要我们手动编译安装Nginx。下面就来详细介绍一下整个过程。

首先编译安装带nginx-rtmp-module扩展的Nginx。其中需要安装pcre库(源代码而不是二进制),CentOS可以yum install pcre-devel,Ubuntu可以apt-get install libpcre3-dev,当然也可以手动下载pcre源码,然后用--with-pcre=<path>指定pcre路径。我们这里是以CentOS为例。

mkdir -p /opt/tuna/nginx_files
cd /opt/tuna/nginx_files
# 处理nginx-rtmp-module
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
mv master.zip nginx-rtmp-module.zip
unzip nginx-rtmp-module.zip
mv nginx-rtmp-module-master nginx-rtmp-module
# 安装pcre
yum install pcre-devel
# 处理Nginx
wget http://nginx.org/download/nginx-1.13.9.tar.gz
tar zxvf nginx-1.13.9.tar.gz
cd nginx-1.13.9
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module --prefix=/opt/tuna/nginx_files/nginx
make
make install
ln -s /opt/tuna/nginx_files/nginx/sbin/nginx /usr/sbin/nginx

接下来我们配置Nginx。我们假设配置文件在/opt/tuna/nginx_files/fz.conf,html目录在/opt/tuna/nginx_files/html

mkdir -p /opt/tuna/nginx_files/html
cd /opt/tuna/nginx_files
mv nginx/conf/nginx.conf nginx/conf/nginx.conf.bak
ln -s /opt/tuna/nginx_files/fz.conf /opt/tuna/nginx_files/nginx/conf/nginx.conf

然后我们写一下Nginx的配置文件,我们将如下内容写入至/opt/tuna/nginx_files/fz.conf,注意要替换端口和域名。

worker_processes  1;
events {
    worker_connections  1024;
}

rtmp {
        server {
                listen 1935;
                #chunk_size 4096;
                chunk_size 512;

                hls_fragment 1s;
                #hls_playlist_length 3s;
                application hls {
                        live on;
                        hls on;
                        hls_path /tmp/hls;
                }
        }
}

# HTTP can be used for accessing RTMP stats
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen 你的http端口;
        server_name  你的域名;

        location / {
            root   /opt/tuna/nginx_files/html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /opt/tuna/nginx_files/html;
        }
        location /hls {
            # Serve HLS fragments
            types {
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }
            root /tmp;
            add_header Cache-Control no-cache;
        }
        location /showstat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }
        location /stat.xsl {
            root /opt/tuna/nginx_files/nginx-rtmp-module/;
        }
    }
}

然后执行nginx -s reload

注意:配置中只设置了hls,并没有提供其他的协议。

然后将写好的html文件放到html文件夹中。我这里有一份写好的文件。但要注意:

  • 需要修改index.htmlstatic/danmaku/danmaku.js两个文件。
  • 需要修改的内容有三个:你的域名、你的http端口、你的弹幕服务的http端口。

接下来只需要下载安装obs即可。然后在设置界面中设置好流的URL和流名称。

在设置里选择自定义流媒体服务器,URL填rtmp://你的域名/hls/,流名称随便填一个,以fz为例。

alt

然后开始推流即可。

直播页面即为http://你的域名:你的http端口/?p=hls&vid=fz,其中vid=fz中的fz即为你填写的流名称。

如果需要弹幕客户端的话,频道选择demo即可。

参考文档:

http://blog.waterlin.org/articles/using-nginx-rtmp-module-to-build-broadcast-system.html

本文链接:https://debug.fanzheng.org/post/install-and-configure-tuna-live.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。