海康IPC+ffmpeg+nginx+ckplayer实现网页实时预览监控视频
一、准备:
1.海康IPC
2.交换机
3.笔记本充当服务器
4.ffmpeg
5.已安装过nginx-rtmp-module功能的nginx
6.ckplayer
7.java或.net或php或dw等web开发工具(用于测试实现效果)
8.vlc
可播放rtsp和rtmp流的播放器 用来测试
二、rtsp流
海康IPC支持通过rtsp协议进行流传输,因此获取流非常方便,取流地址为:rtsp://admin:12345@192.168.1.102:554/h264/ch1/main/av_stream
其中,admin和12345是登录IPC的用户名和密码,@后面跟IPC的IP地址,端口号默认为554,如果修改过,这里填修改后的端口号。只要是支持rtsp协议的IPC都可以通过类似方式取流,各厂商的格式可能略有不同,请查阅各厂商的相关说明
连接好IPC、电脑、交换机后,打开vlc播放器,选择媒体-->打开网络串流-->填入rtsp协议-->播放,如果连接和参数正确,此时vlc应该可以播放监控画面
三、安装ffmpeg
通过第一步我们确认了rtsp流可以正确获取后,第二步我们安装ffmpeg,用于rtsp流转rtmp流
ffmpeg是一个功能非常强大的视频处理工具,居家旅行学习开发必备,注意,ffmpeg需要区分32位和64位,请根据自己操作系统进行选择
下载解压后得到如下文件夹结构
配置环境变量:将x:/ffmpeg/bin添加到Path中,具体添加方法大家可查看java配置jdk的方法,网上很多
测试ffmpeg:打开cmd(使用管理员身份打开),输入:ffmpeg 获取到如下图所示界面,说明ffmpeg安装成功
四、nginx搭建
nginx我的理解有点类似iis的功能,是个信息管理器(如果不对,请大神斧正),原版的nginx是不带有rtmp发布功能的,需要安装nginx-rtmp-module插件,网上的方法很多,但是由于我看得一脸懵逼,所以花了好久找到已安装好插件的nginx,链接已奉上,这个我们就可以直接用了
将压缩包解压到任意位置,进入conf文件夹,打开nginx.conf文件,找到http{server{listen,将端口号改成10001(只要没有被占用的端口都可以,我习惯1w+),顺便看看有个rtmp{server{listen1935,这个就是发布rtmp流的端口,后面会用到
保存nginx.conf,双击nginx.exe,
至此,nginx成功搭建
五、rtsp转rtmp
搭建好nginx,说明通过ffmpeg转换的rtmp流有地方接收了,这一步我们就来转流
打开cmd输入以下指令:
ffmpeg -i "rtsp://admin:12345@192.168.1.102:554/h264/ch1/main/av_stream" -f flv -r 1 -s 1920x1080 -an "rtmp://192.168.1.100:1935/live/stream"
rtsp://是IPC取流的协议地址,rtmp则是刚才搭建nginx的地址,这个1935端口就是刚才配置nginx时看到的rtmp端口,输入后首先会看到关于ffmpeg的一些信息,出现如下界面则说明ffmpeg已成功将rtmp流推送到了nginx
我们再打开vlc播放器,测试下是否可以成功播放rtmp流,方法依然是打开vlc,填入:rtmp://192.168.1.100:1935/live/stream 播放,如果可以看到监控画面说明成功
六、网站播放
前面我们已经拿到rtmp流,最后我们将流通过ckplayer在网页上进行播放,使用ckplayer请移步到:http://www.ckplayer.com/tool/help/100.htm