筆記:使用 nginx 搭建一個 HLS(HTTP Live Streaming) & Rtmp 直播服務器

想要給朋友們直播遊戲的操作,但是QQ直播太垃圾,國內直播平台又要上傳身份證,外國的直播平台又太卡了。
那好,我自己搭一個¯\_(ツ)_/¯

需求:一台linux主機,外網 IP,OBS。

首先,先去將 nginx-rtmp-module (https://github.com/arut/nginx-rtmp-module) 下載下來:
% git clone https://github.com/arut/nginx-rtmp-module.git && wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

再去下載nginx:
% wget http://nginx.org/download/nginx-1.10.0.tar.gz

然後解壓nginx:
% tar -xzvf nginx-1.10.0.tar.gz
% unzip master.zip

開始編譯:
% ./configure --with-openssl=/home/yinfb/openssl-OpenSSL_1_0_1t --add-module=/path/to/nginx-rtmp-module
% make
# make install

過程中可能會出現依賴問題,安裝libpcre3 libpcre3-dev,和添加OpenSSL模塊即可

之後:
# vim /usr/local/nginx/conf/nginx.conf

worker_processes 10;

error_log logs/error.log debug;

events {
    worker_connections 1024;
}

rtmp {
    server {
        listen 1935;
        application myapp {
            live on;
            hls on;
            hls_path /tmp/hls;
            hls_fragment 10s;
            hls_nested on;
            allow publish all;
            allow play all;
        }

    }
}

http {
    include mime.types;
    default_type application/octet-stream;

    server {
        listen 80;
        server_name localhost;
        error_page 500 502 503 504 /50x.html;
        location = /50x.html{
            root html;
        }

        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

        location / {
          root html;
          index index.html index.htm;
        }
        location /hls {
         types {
          application/vnd.apple.mpegurl m3u8;
       }
        alias /tmp/hls;
        add_header Cache-Control no-cache;
       }
    }
}

然後添加網頁直播頁面:

# vim /usr/local/nginx/html/hls.html

<video src="/hls/index.m3u8" autoplay="autoplay" controls="controls" width="1280" height="700">
</video>

之後配置OBS如下圖:

QQ图片20160529164916
至於編碼與影像設定,就按找個人帶寬與性能自行設定即可。

最後,效果如圖:

QQ图片20160529165549

9 關於 “筆記:使用 nginx 搭建一個 HLS(HTTP Live Streaming) & Rtmp 直播服務器” 的評論

  1. 引用通告: 云羽的羽毛

      1. denny

        感謝回覆,因為我自己也用了一個直播平台,但是電腦的chrome不能看,只能用手機,所以才想問問版主有沒有解決方法
        現在正在試你所說的video.js

        回覆

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *