虛擬機(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é)束。