一、攝像頭rtsp流畫面測試
首先根據相關攝像頭內附的說明書對攝像頭進行安裝以及wifi配置或者通過網線直連,配置完成后確保攝像頭畫面能夠在手機APP或者相關應用程序上正常播放。
然后進入海康威視官網下載並安裝SADP攝像頭IP搜索工具。
打開SADP(設備網絡搜索),即能查看當前局域網下的所有海康攝像頭IP地址。
下面進行攝像頭rtsp流播放測試:
1.下載VLC media player,並安裝打開。
2.打開媒體 --> 網絡串流 --> 網絡。
3.輸入海康攝像頭的rtsp地址並進行播放。海康的rtsp地址一般組成如下:rtsp://admin:{攝像頭背后驗證碼或密碼}@{攝像頭IP地址}:554/h264/ch1/main/av_stream
能夠正常播放后,進行下一步操作。
二、流媒體服務器搭建
要將監控畫面在web端顯示需要流媒體服務器的支持,當前主流的流媒體服務主要通過SRS、nginx、nodejs等搭建,下面主要介紹由node搭建的流媒體服務器。
要求電腦上有node環境,若沒有請去node官網進行下載以及安裝。安裝完成后打開cmd輸入node -v查看node版本以及檢查node是否安裝成功。
該流媒體服務器采用node-media-server插件,具體搭建流程如下:
1.新建相關文件夾。
2.使用cmd並進入新建的文件夾內,輸入npm install node-media-server安裝相關插件。
3.安裝完成后在新建的文件夾內新建一個js文件,在js文件內輸入相關調用以及配置代碼。
const NodeMediaServer = require('node-media-server')
const config = {
rtmp: {
port: 1935,
chunk_size: 60000,
gop_cache: true,
ping: 60,
ping_timeout:30
},
http: {
port: 8000,
allow_origin:'*'
}
}
let nms = new NodeMediaServer(config)
nms.run()
4.運行node服務。 顯示如上界面則表示啟動完成,可以在瀏覽器上登錄 localhost:8000/admin 查看node服務頁面。
三、視頻流轉碼以及推流 因為rtsp流無法直接在web端播放,因此通常將rtsp流轉化為rtmp、httpFlv、hls等編碼格式,因為rtmp依賴flash,hls流的延遲太大,因此選用httpFlv作為傳輸的碼流格式,轉碼方式如下:
1.下載並安裝ffmpeg。
2.配置環境變量並在cmd使用ffmpeg -h測試。
3.使用ffmpeg指令對rtsp流進行轉碼以及推流(下方的node端地址中的STREAM_NAME_agv_1可以隨意更改表示直播的“房間”)。
4.再次打開VLC並打開網絡串流,輸入httpFlv碼流地址進行播放,能夠正常播放即轉碼完成。
ffmpeg -re -i "rtsp://admin:a123456789@192.168.2.25:554/h264/ch33/sub/av_stream" -tune zerolatency -c:v libx264 -preset ultrafast -s 800x600 -b:v 1800k -bufsize 1800k -maxrate 2000k -an -f flv rtmp://localhost/live/STREAM_NAME_agv_2
(將上方圖片的node端地址中的rtmp改為http並加入后綴.flv即http://{node服務的IP地址以及端口}/live/STREAM_NAME_agv_1.flv)。
四、網頁顯示 web端顯示需要支持httpFlv格式的播放器,這邊選用的是LivePlayer.js。根據其相關配置配置完后,即可在web端顯示監控畫面。