一、摄像头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端显示监控画面。