本文所講開發環境以Linux爲準:
本文demo架構是android端採用RTMP推流,播放用H5播放器video.js播放RTMP協議或HLS協議。
實驗步驟:
- 先下載安裝 nginx 和 nginx-rtmp 編譯依賴工具
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
- 創建一個工作目錄,並切換到工作目錄
mkdir /usr/jason/nginx
cd /usr/jason/nginx
- 下載 nginx 和 nginx-rtmp源碼(wget是一個從網絡上自動下載文件的自由工具)
wget http://nginx.org/download/nginx-1.7.5.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
- 安裝unzip工具,解壓下載的安裝包
sudo apt-get install unzip
- 解壓 nginx 和 nginx-rtmp安裝包
tar -zxvf nginx-1.7.5.tar.gz
-zxvf分別是四個參數
x : 從 tar 包中把文件提取出來
z : 表示 tar 包是被 gzip 壓縮過的,所以解壓時需要用 gunzip 解壓
v : 顯示詳細信息
f xxx.tar.gz : 指定被處理的文件是 xxx.tar.gz
unzip master.zip
- 切換到 nginx-目錄
cd nginx-1.7.5
- 添加 nginx-rtmp 模板編譯到 nginx
./configure --with-http_ssl_module --add-module=…/nginx-rtmp-module-master
- 編譯安裝
make
sudo make install
- 安裝nginx init 腳本
sudo wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx
sudo update-rc.d nginx defaults
- 啓動和停止nginx 服務,生成配置文件
sudo service nginx start
sudo service nginx stop
- 安裝 FFmpeg
make
make install
- 配置 nginx-rtmp 服務器或HLS服務器
打開 /usr/local/nginx/conf/nginx.conf
在末尾添加如下 配置
複製代碼:
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name;
}
application live360p {
live on;
record off;
}
#RTMP直播流配置
application rtmplive{
live on;
# max_connections:1024;
}
#HLS直播流配置
application hls {
live on;
hls on;
hls_path /usr/local/nginx/html/hls;
hls_fragment 5s;
}
}
}
- 保存上面配置文件,然後重新啓動nginx服務
sudo service nginx restart
- 如果你使用了防火牆
請允許端口 tcp 1935
- 使用 客戶端,使用 rtmp協議進行視頻實時採集
Field 1: rtmp://your.vultr.ip/live/
Field 2: stream-key-your-set
服務器配置測試播放器:
將播放器複製到目錄:/usr/local/nginx/html/,然後修改播放地址
用ffplay播放RTMP直播流:
ffplay “rtmp://49.4.11.26:8088/hls/test.m3u8”
用ffplay播放HLS直播流:
ffplay “http://49.4.11.26:8088/hls/test.m3u8”
實驗結論:
RTMP的延時明顯低於HLS。
android推流的項目地址:
https://github.com/wxp19940506/dn_live.git
https://github.com/wxp19940506/JasonPushStream.git
鏈接:https://www.jianshu.com/p/ee5f4734b5ab