RTMP 是一種設計用來進行實時數據通信的網絡協議開放協議,由Adobe Systems公司開發,被用來作爲Flash播放器和服務器之間音頻、視頻和數據進行傳輸的協議。
如果你需要直播,如果你不是購買了例如阿里雲,騰訊雲的直播服務,你可以嘗試搭建自己的RTMP服務器。如何搭建,看下面我們一步一步進行講解。
這裏以安裝了 Debian10 系統的 VPS 服務器系統爲例。
安裝服務軟件
服務端使用nginx配合nginx-rtmp-module模塊提供RTMP服務。
1、nginx
2、nginx-rtmp-module
首先下載上面列出的軟件及模塊,Debian10 中可通過 wget 命令進行下載:
cd /tmp
wget http://nginx.org/download/nginx-1.19.10.tar.gz
下載完成後,通過以下命令解壓nginx-1.19.10.tar.gz:
tar xvf nginx-1.19.10.tar.gz
通過git從gitee克隆下載nginx-rtmp-module模塊到/opt/nginx目錄:
cd /opt/nginx
git clone https://gitee.com/mirrors/nginx-rtmp-module.git
如果沒有/opt/nginx目錄可以通過mkdir命令創建,並將創建的目錄權限修改爲當前賬號linux265:
sudo mkdir /opt/nginx
sudo chown -hR linux265: /opt/nginx
如果沒有安裝git命令,通過以下命令進行安裝:
sudo apt install git
/opt/nginx目錄和git命令創建和安裝完成後,通過以下命令從gitee克隆下載nginx-rtmp-module模塊:
git clone https://gitee.com/mirrors/nginx-rtmp-module.git
下載完成後,再次進入/tmp/nginx-1.19.10目錄,執行如下的命令配置安裝nginx:
sudo apt install gcc make openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev
./configure --add-module=/opt/nginx/nginx-rtmp-module
sudo make && sudo make install
如果一切順利,nginx會默認安裝在/usr/local/nginx目錄中。
配置RTMP服務
進入/usr/local/nginx/conf目錄,使用vim或nano命令編輯nginx.conf文件。
cd /usr/local/nginx/conf
sudo vim nginx.conf
配置內容如下:
#user nobody;
worker_processes 1;
error_log logs/error.log debug;
rtmp {
server {
listen 1935;
application myapp {
live on;
drop_idle_publisher 10s;
}
}
}
# HTTP can be used for accessing RTMP stats
http {
server {
listen 8080;
# This URL provides RTMP statistics in XML
location /stat {
rtmp_stat all;
# Use this stylesheet to view XML as web page
# in browser
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
# XML stylesheet to view RTMP stats.
# Copy stat.xsl wherever you want
# and put the full directory path here
root /path/to/stat.xsl/;
}
location /hls {
# Serve HLS fragments
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /tmp;
add_header Cache-Control no-cache;
}
location /dash {
# Serve DASH fragments
root /tmp;
add_header Cache-Control no-cache;
}
}
}
配置文件保存後,通過如下命令測試配置文件的正確性:
/usr/local/nginx/sbin/nginx -t
如果正確,執行如下命令,啓動nginx服務:
cd /usr/local/nginx/sbin/
sudo ./nginx
正常啓動後,在瀏覽器地址欄輸入你的服務器地址,你會看到類似如下界面:
直播推流
我們可以通過OBS來進行直播推流,首先你得下載安裝OBS(OBS Studio),然後設置推流,設置類似如下:
之後在OBS主界面,設置“來源”之後,點擊"開始推流"
之後,再次刷新網頁,你會看到如下圖所示:
觀看直播
拉流也就是所謂通過客戶端來訪問直播流,這時候我們可以通過VLC這個支持RTMP網絡視頻,配置播放源:
這樣就可以直接查看直播了。
以上講解了如何在Debian10上搭建RTMP直播服務器方法,如果你感興趣不妨嘗試一下。