Nginx配置rtmp服務

Windows

這里轉發一個可以一鍵運行的nginx server,通過node編寫,demo里使用grindplayer。
http://bashell.nodemedia.cn/archives/nodemedia-dev-server.html

Linux(離線環境)

下載

  • 服務器受內網限制,ngnix需要的庫無法通過wget下載,提供一個所有依賴庫的離線下載鏈接。
    https://github.com/arut/nginx-rtmp-module.git
  • 從github下載nginx-rtmp-module項目
    Linux安裝nginx所需包
  • 在配置過程中,多次編譯失敗,最后總結出是ngnix與依賴庫以及rtmp包之間的版本不對應,具體什么ngnix版本對應的openssl和rtmp版本,需要多次嘗試。

環境與版本

  • 環境是SUSE Linux
  • zlib-1.2.8pcre-8.38,來自上面csdn的鏈接
  • openssl-1.0.2j,一開始使用openssl-fips-2.0.11,因編譯遇到提示rtmp中某c文件函數有錯,issue里有網友建議換成openssl-1.0.x版本。openssl官網
  • nginx-1.10.2,因nginx-rtmp-module使用的是github上最新版本,作者說支持nginx-1.10.x的規則,于是去官網下了最新stable版nginx-1.10.2。 nginx官網

配置

  1. 將所有文件導入同一級目錄,依次解壓
  2. tar zxvf nginx-1.10.2.tar.gz
    tar zxvf pcre-8.38.tar.gz
    tar zxvf openssl-1.0.2j.tar.gz
    tar zxvf zlib-1.2.8.tar.gz
  3. 進入nginx目錄,cd nginx-1.10.2
  4. ./configure --prefix=user-defined/nginx --with-pcre=path/to/pcre-8.38 --with-openssl=path/to/openssl-1.0.2j --with-zlib=path/to/zlib-1.2.8 --add-module=path/to/nginx-rtmp-module-master
    -prefix指定安裝目錄,--add-module添加rtmp模塊,后面跟模塊的路徑
  5. make
    make install
  6. 編譯安裝中沒有error即nginx成功安裝,cd前往安裝目錄,進入conf目錄,通過vi打開nginx.conf文件,配置nginx。這里主要添加rtmp server,如下:
rtmp {
    server {
        listen 1935;

        application live {
            live on;
        }
        
        application hls {
            live on;
            hls on;  
            hls_path temp/hls;  
            hls_fragment 8s;  
        }
    }
}

修改server_name, 即訪問的ip
啟動時會提示temp/hls目錄不存在,因我項目中目前只要求rtmp,于是將hls的配置刪除

  1. cd進入sbin目錄,執行nginx,通過netstat -nlp查看對應端口是否被占用(非root用戶最好不適用8080類的端口,我改為了7070)

相關命令

  • 啟動:/sbin/nginx
  • 判斷配置是否正確: /sbin/nginx -t
  • 重啟: /sbin/nginx -s reload
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容