引言
RTSP和RTMP視頻流的區(qū)別
- RTSP (Real-Time Streaming Protocol)實時流媒體協(xié)議。 RTSP定義流格式,流數(shù)據(jù)經(jīng)由RTP傳輸;RTSP實時效果非常好,適合視頻聊天,視頻監(jiān)控等方向。
- RTMP(Real Time Message Protocol)實時消息協(xié)議。 用來解決多媒體數(shù)據(jù)傳輸流的多路復(fù)用(Multiplexing)和分包(packetizing)的問題,優(yōu)勢在于低延遲,穩(wěn)定性高,支持所有攝像頭格式,瀏覽器加載 flash插件就可以直接播放。
- RTSP是服務(wù)器端推送到客戶端,而RTMP是點對點傳輸。
- RTSP是基于UDP或TCP,傳輸數(shù)據(jù)時具有較小的延遲,可用于實時流媒體的傳輸。
- RTMP是基于TCP,具有高可靠性,能夠自動重連,即使在網(wǎng)絡(luò)環(huán)境不穩(wěn)定時也能夠保證流媒體傳輸?shù)馁|(zhì)量。
- RTSP也支持多種編碼格式,但通常只用于傳輸單個音視頻軌道。RTMP支持多種編碼格式,包括H.264和AAC等,支持多個音視頻軌道。
- RTSP旨在建立和維護原始數(shù)據(jù)源(客戶端)和流服務(wù)器之間的連接,允許控制流媒體服務(wù)器內(nèi)的娛樂和通信系統(tǒng),允許暫停和播放功能。RTMP支持整合文本、視頻和音頻,支持MP3和AAC音頻流,也支持MP4、FLV和F4V視頻。
推流和拉流的區(qū)別
- 推流:指的是將攝像頭、屏幕等設(shè)備上的數(shù)據(jù)通過網(wǎng)絡(luò)傳輸?shù)椒?wù)器,并由服務(wù)器進行處理、存儲或直播。比如,在進行網(wǎng)絡(luò)直播時,主播需要將自己的攝像頭數(shù)據(jù)通過網(wǎng)絡(luò)上傳到服務(wù)器,這個過程就是推流。
- 拉流:指的是從服務(wù)器上獲取視頻流并在本地播放的過程,也叫做播放。 比如,在觀看網(wǎng)絡(luò)上的直播時,用戶需要從服務(wù)器上獲取視頻流才能進行觀看,這個過程就是拉流。
FFmpeg概念
FFmpeg是將音頻和視頻轉(zhuǎn)為流的開源計算機程序。
EasyDarwin實現(xiàn)RTSP視頻流服務(wù)步驟
- 安裝FFmpeg
- 安裝EasyDarWin
- 啟動本地攝像頭
- 使用VLC或PotPlayer可視化播放器播放視頻
1、安裝FFmpeg
下載FFmpeg
并配置環(huán)境 ,執(zhí)行 ffmpeg -version
測試安裝是否成功。
- FFmpeg官網(wǎng)
- 下載好的FFmpeg版本
成功配置ffmpeg版本:
2、安裝Nginx服務(wù)器
- Nginx 是一個高性能的HTTP和反向代理輕量級web服務(wù)器,同時也提供了IMAP/POP3/SMTP服務(wù)。
-
在Nginx官網(wǎng)上下載的Nginx是不帶RTMP模塊的。所以本文需要下載Gryphton版本的Nginx服務(wù)器,即
RTMP服務(wù)器
就是基于Nginx
開發(fā)的module
。 -
nginx 1.7.11.3 Gryphon
該版本Nginx包含RTMP組件,通過RTMP組件,提供流媒體服務(wù),讓Nginx成為RTMP流媒體服務(wù)器。 - Nginx——其他window版本下載
實現(xiàn)
1、下載Nginx
- 下載[nginx 1.7.11.3 Gryphon](http://nginx-win.ecsds.eu/download/nginx 1.7.11.3 Gryphon.zip),解壓
nginx 1.7.11.3 Gryphon.zip
2、下載trmp壓縮包
- 下載nginx-rtmp-module,將
nginx-rtmp-module-master.zip
解壓到nginx 1.7.11.3 Gryphon
目錄中,并重命名文件夾為nginx-rtmp-module
在這里插入圖片描述](https://img-blog.csdnimg.cn/direct/f1e7c424a9244617882f38448d7042ee.png)
3、進入nginx 1.7.11.3 Gryphon文件夾的conf目錄下, 創(chuàng)建并編輯 nginx.conf 文件
worker_processes 2;
events {
worker_connections 8192;
}
rtmp {
server {
listen 1935;#監(jiān)聽端口,若被占用,可以更改
chunk_size 4000;#上傳flv文件塊兒的大小
application live { #創(chuàng)建一個叫l(wèi)ive的應(yīng)用
live on;#開啟live的應(yīng)用
allow publish 127.0.0.1;#
allow play all;
}
}
}
http {
include mime.types;
default_type application/octet-stream;
sendfile off;
#tcp_nopush on;
server_names_hash_bucket_size 128;
## Start: Timeouts ##
client_body_timeout 10;
client_header_timeout 10;
keepalive_timeout 30;
send_timeout 10;
keepalive_requests 10;
## End: Timeouts ##
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
}
}
4、啟動RTMP服務(wù)器
打開CMD
,進入nginx 1.7.11.3 Gryphon
目錄下,執(zhí)行如下指令,檢查nginx的配置文件是否正確。
nginx.exe -t
啟動nginx服務(wù)器
start nginx 命令的作用是載入缺省./conf/nginx.conf配置文件,啟動nginx。
start nginx
采用別的配置去開啟nginx命令如下
nginx.exe -c conf\nginx-win.conf
如何停止nginx服務(wù)器?
打開cmd,輸入如下命令
taskkill /f /im nginx.exe
3、實現(xiàn)本地視頻推流服務(wù)
步驟
- 準備一個視頻放到FFmpeg文件夾下
- FFmpeg實現(xiàn)推流
實現(xiàn)
1、準備一個視頻放到FFmpeg\bin文件夾下
2、FFmpeg實現(xiàn)推流
語法
ffmpeg -re -stream_loop -1 -i 視頻文件.mp4 -c copy -f flv 播放地址
播放地址根據(jù)nginx.conf文件一一對應(yīng),如本文實現(xiàn)
推流地址為 rtmp://127.0.0.1:1935/live/test
配置好FFmpeg環(huán)境,直接打開 cmd
輸入如下命令,如果沒配置FFmpeg環(huán)境,需要來到FFmpeg\bin目錄下。
ffmpeg -re -stream_loop -1 -i 測試視頻.mp4 -c copy -f flv rtmp://127.0.0.1:1935/live/test
要想在推流指令中使用其它推流目錄,比如改為使用“ mydir ”,就在 nginx.conf1
修改 live ==》 mydir
可以看到這里的數(shù)值在動,就說明推流成功了
4、使用VLC或PotPlayer可視化播放器播放視頻
- 方式一:下載PotPlayer播放器,任意一個瀏覽器,輸入播放地址
rtmp://127.0.0.1:1935/live/test
,回車,打開PotPlayer播放。 - 方式二:打開PotPlayer,右下角選擇【添加】—【添加鏈接】—【填寫播放地址】
3.方式三:下載 VLC播放器,選擇【媒體】—【打開網(wǎng)絡(luò)串流】—【網(wǎng)絡(luò)】,粘貼地址,【播放】即可。
文章來源:http://www.zghlxwxcb.cn/news/detail-773910.html
5、RTSP / RTMP系列文章
1.Windows搭建RTSP視頻流服務(wù)(EasyDarWin服務(wù)器版)文章來源地址http://www.zghlxwxcb.cn/news/detail-773910.html
到了這里,關(guān)于Windows搭建RTMP視頻流服務(wù)(Nginx服務(wù)器版)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!