centos7 Nginx+rtmp 搭建流媒體服務器

原文鏈接:https://blog.csdn.net/sz76211822/article/details/79225716

按照博主原文在騰訊雲服務器順利搭建推流服務器,爲防後期再次使用,特轉到此處記錄,對原作者表示感謝。


一. gcc 安裝
安裝 nginx 需要先將官網下載的源碼進行編譯,編譯依賴 gcc 環境,如果沒有 gcc 環境,則需要安裝:

 

yum -y install gcc gcc-c++
二. PCRE pcre-devel 安裝

PCRE(Perl Compatible Regular Expressions) 是一個Perl庫,包括 perl 兼容的正則表達式庫。nginx 的 http 模塊使用 pcre 來解析正則表達式,所以需要在 linux 上安裝 pcre 庫,pcre-devel 是使用 pcre 開發的一個二次開發庫。nginx也需要此庫。命令:

 

yum install -y pcre pcre-devel
三. zlib 安裝

zlib 庫提供了很多種壓縮和解壓縮的方式, nginx 使用 zlib 對 http 包的內容進行 gzip ,所以需要在 Centos 上安裝 zlib 庫。

 

yum install -y zlib zlib-devel
四. OpenSSL 安裝

OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及 SSL 協議,並提供豐富的應用程序供測試或其它目的使用。nginx 不僅支持 http 協議,還支持 https(即在ssl協議上傳輸http),所以需要在 Centos 安裝 OpenSSL 庫。

 

yum install -y openssl openssl-devel

五、安裝nginx 跟rtmp模塊

1.官網下載直接下載.tar.gz安裝包,地址:https://nginx.org/en/download.html

2.解壓

 

tar -zxvf nginx-1.13.8.tar.gz
3. 下載rtmp 模塊, nginx-rtmp-module的官方github地址:https://github.com/arut/nginx-rtmp-module

4. 安裝nginx跟rtmp模塊

 

./configure --prefix=/usr/local/nginx  --add-module=../nginx-rtmp-module  --with-http_ssl_module
     

make & make install


6.修改配置文件。進入 /usr/local/nginx/conf 文件夾。增添rtmp部分

rtmp {      
    server {    
        listen 1935;  #監聽的端口 
        chunk_size 4000;     
        application hls {  #rtmp推流請求路徑 
            live on;     
        }   
    }   

 

7.重啓電腦。進入 /usr/local/nginx/sbin文件夾,執行./nginx啓動nginx

第6步  添加rtmp配置部分,要選擇正確的位置。原配置文件中{ 和 }都是成對配置。如果位置不正確,破壞了原有的語法結構啓動nginx時會報    nginx: [emerg] "rtmp" directive is not allowed here in /usr/local/nginx/conf/nginx.conf:81  錯誤。

nginx默認http監聽80端口。因爲雲服務器是公用的。已被同事安裝了NPS軟件佔用了80端口,所以啓動nginx時會報端口占用告警,在配置文件中把http監聽部分的配置端口改成未佔用的端口即可解決問題。

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()

 

六、OBS推流
 

1.設置推流地址

rtmp://192.168.1.39:1935/hls      192.168.1.39爲服務器IP地址。此處爲舉例,應用時改成實際地址。

流名稱:test

這裏說明下,rtmp的URL基礎格式 rtmp://nginx_host[:nginx_port]/application_name/stream_name

 

 

2.推流

媒體源添加攝像機地址。然後點擊推流。

 

3.vlc串流地址輸入rtmp://192.168.1.39:1935/hls/test

我自己是用POTPLAYER打開推流地址觀看視頻。原文中的地址提示無法打開,改成rtmp://192.168.1.39:1935/hls可以正常觀看。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章