nginx rtmp/hls for CentOS


虛擬機(jī)設(shè)置為橋接模式,與本機(jī)地址同網(wǎng)段

安裝git

yum -y install git

下載nginx-rtmp-module

git clone https://github.com/arut/nginx-rtmp-module.git

安裝openssl

yum -y install openssl openssl-devel

下載nginx-1.10.3.tar.gz

wget http://nginx.org/download/nginx-1.10.3.tar.gz

解壓nginx-1.10.3.tar.gz

tar -zxvf nginx-1.10.3.tar.gz

添加rtmp和openssl支持

cd nginx-1.10.3
./configure --add-module=/root/nginx-rtmp-module --with-http_ssl_module

編譯安裝

make && make install

啟動(dòng)nginx

/usr/local/nginx/sbin/nginx

如出現(xiàn)錯(cuò)誤

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

表示80端口被占用,需要查看端口PID,然后根據(jù)PID將相關(guān)進(jìn)程關(guān)閉后重啟

lsof -i tcp:80
kill PID
/usr/local/nginx/sbin/nginx

修改nginx配置文件nginx.conf,rtmp配置

vi /usr/local/nginx/conf/nginx.conf

按i進(jìn)入編輯模式,在最后的空白處,添加以下:

rtmp {  
    server {  
        listen 1935;  
        chunk_size 4000;  
        application hls { 
            live on;
            hls on;
            hls_path /home/hls/test;
            hls_fragment 3s;
        }  
    }  
}

rtmp是協(xié)議名稱
server 說(shuō)明內(nèi)部中是服務(wù)器相關(guān)配置
listen 監(jiān)聽(tīng)的端口號(hào), rtmp協(xié)議的默認(rèn)端口號(hào)是1935
application 訪問(wèn)的應(yīng)用路徑是 hls
live on; 開(kāi)啟實(shí)時(shí)
record off; 不記錄數(shù)據(jù)

hls配置,http的server下添加以下:

server {
    listen      80;
    location /hls {    
           #server hls fragments    
           types{    
             application/vnd.apple.mpegurl m3u8;    
             video/mp2t ts;    
           }    
        alias /home/hls/test;    
        expires -1;    
        } 

按esc 輸入:wq 回車(chē)保存,重啟nginx

[root~]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

進(jìn)入/home目錄并創(chuàng)建 hls及其子目錄test

cd /home
mkdir hls
cd hls
mkdir test

服務(wù)器開(kāi)放1935端口或關(guān)閉防火墻


//CentOS7 默認(rèn)使用firewalld防火墻
//關(guān)閉firewall
systemctl stop firewalld.service
//禁止firewall開(kāi)機(jī)啟動(dòng)
systemctl disable firewalld.service
//查看防火墻狀態(tài)(關(guān)閉后顯示not running,開(kāi)啟后顯示 running)
firewall-cmd --state
 
 
//iptables開(kāi)放端口
/sbin/iptables -I INPUT -p tcp --dport 1935 -j ACCEPT
//保存配置
/etc/rc.d/init.d/iptables save
//重啟服務(wù)
/etc/rc.d/init.d/iptables restart
//查看端口開(kāi)放狀態(tài)
/etc/init.d/iptables status

打開(kāi)瀏覽器,輸入ip地址,顯示如下表明搭建成功:


使用OBS推流rtmp

使用vlc拉流


ipc推流


使用OBS推流hls


使用safari拉流hls(http://172.18.30.231/hls/test.m3u8)


此時(shí)服務(wù)器上的/home/hls/test/目錄下會(huì)生成一個(gè)m3u8文件以及多個(gè)ts文件

至此,模擬結(jié)束。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容