通过HK摄像头本身提供的服务拿到的流播放地址是 rtsp://xxxxxx/xxx
现在问题来了: web浏览器里播放视频的插件(比如video.js等),是无法播放协议为 rtsp
的视频流的.
但是, video.js
可以播放 rtmp 的视频流.
现在解决思路就有了: 把海康摄像头的rtsp流通过某种方法转换成 rtmp协议流即可
rtsp -> rtmp -> video.js 可播放操作步骤
- 海康摄像头产生的是 rtsp 的流(前端video无法直接播放)
- 通过
ffmpeg
工具,将rstp
转成rtmp
的视频流并推送到nginx
. -
nginx
通过安装的nginx-rtmp-module
模块,来处理ffmpeg
推送过来的rtmp
流,并提供对浏览器video.js
的播放支持.
这里需要用到的nginx(包含安装好的nginx-rtmp)以及ffmpeg软件,后面都会提供下载地址.
具体操作步骤
- 打开nginx/conf 文件夹里的
rtmp-win-rtmp.conf
文件. 查
看第19行. 会看到如'rtmp'节点的配置代码.
rtmp {
server {
listen 1935;
# chunk_size 4000;
application live {
live on;
#record off;
#hls on;
#hls_path html;
#hls_fragment 5s;
# record first 1K of stream
#record all;
#record_path /tmp/av;
#record_max_size 1K;
# append current timestamp to each flv
#record_unique on;
# publish only from localhost
#allow publish 127.0.0.1;
#deny publish all;
#allow play all;
}
application hls {
live on;
hls on;
hls_path temp/hls;
hls_fragment 8s;
}
}
}
- 打开
cmd
输入 命令 进入到 nginx 的安装目录.输入以下代码,指定配置文件启动服务
- 浏览器访问:
localhost:8087
如果看到下面这个页面,nginx
就是启动成功了.
到目前位置就已经成功了99%了.
- 进入到
ffmpeg
的安装目录,并打开cmd
命令行工具, 输入
ffmpeg -i "rtsp流路径" -vcodec copy -acodec copy -f flv "rtmp://127.0.0.1:1935/live/"
如果看到下面的这种情况
ffmpeg说明 ffmpeg 软件已经成功的将海康摄像头的 rtsp 流转换成了 rtmp 流,并推送到了 nginx 服务上了.
- 最后,随便使用一个VLC软件或者video.js插件,指定
rtmp://127.0.0.1:1935/live/
为播放流的地址即可.
网友评论