rtsp视频流实现推流显示(海康威视摄像)

1.安装node.js和FFmpeg,并配置好环境变量

rtsp视频流实现推流显示(海康威视摄像)_第1张图片
2.node.js安装http-server,开启命令行HTTP服务器

在node命令行下,输入 npm install http-server -g,安装成功后,将以下形式的路径添加进系统环境变量path中:
rtsp视频流实现推流显示(海康威视摄像)_第2张图片

等需要启动node.js的http服务器时,输入http-server指令即可:
rtsp视频流实现推流显示(海康威视摄像)_第3张图片
3.下载jsmpeg库
这里我们通过git克隆下载:git clone https://github.com/phoboslab/jsmpeg.git
(也可以进入其他仓库或网站下载jsmpeg库)

4.Node.js安装webSocket模块
在cmd控制台输入: npm install ws -g(或者npm install ws)
在这里插入图片描述
5.运行jsmpeg文件夹里面的websocket-relay.js
用新的cmd控制台进入jsmpeg文件夹,运行websocket模块:
指令格式:node websocket-relay.js 密码 ffmpeg推送端口 前端webSocket端口
示例:node websocket-relay.js password123456 8081 8082
rtsp视频流实现推流显示(海康威视摄像)_第4张图片
6.运行ffmpeg进行视频转码并转发
用新的cmd控制台执行指令:
指令示例:ffmpeg -i “rtsp地址” -q 0 -f mpegts -codec:v mpeg1video -s 1366x768 http://127.0.0.1:8081/password123456
(如需视音频播放,参考格式如下:
ffmpeg -i in.mp4 -f mpegts -codec:v mpeg1video -s 960x540 -b:v 1500k -r 30 -bf 0 -codec:a mp2 -ar 44100 -ac 1 -b:a 128k out.ts)
rtsp视频流实现推流显示(海康威视摄像)_第5张图片
1366x768为输出分辨率,http://127.0.0.1:8081/为视频输出地址,password123456为密码

7.查看浏览器显示效果
打开jsmpeg文件夹里面的view-stream.html页面,正常情况下,将显示如下页面:

rtsp视频流实现推流显示(海康威视摄像)_第6张图片

8.重要参数调试
ffmpeg格式:

ffmpeg  -rtsp_transport tcp -re -i rtsp://admin:[email protected]:9204 -f mpegts  -r 20 -q 9 -an -s 800/600  -codec:v mpeg1video  http://127.0.0.1:1936/1234
(1)发现-q 参数,使用固定的质量品质(VBR),其中值q取值在0.01-255,越小质量越好,
(2)拿来设置-q 200 视频立马就糊了,但是每秒都能动了。
(3)设置为-q 1(每次的bitrate=5800kbits/s 左右,导致传输太慢)
(4)-q 50 比特率大小则为300+k
(5)-q 8时,大小在1000k/s,质量也可接受。
(6)有点卡的话可调成-q 9, 比特率维持在890k。

ffmpeg -rtsp_transport tcp -re -i rtsp://admin:[email protected]:9204 -f mpegts -r 20 -q 9 -an -s 800/600 -codec:v mpeg1video http://127.0.0.1:1936/1234

其中:
-an 禁止音频(因为当前不需要音频,如果需要),
-r 20 帧率,
-s 800/600 屏幕尺寸

你可能感兴趣的:(海康视频,websocket,网络协议,网络)