window7 海康硬盘录像机+ffmpeg+nginx+ckplayer实现网页实时预览监控视频(无敌详细版)

公司要求,将大华,海康威视的硬盘录像机的监控视频在网页端统一显示,网上的文章大部分都是在服务器上的操作,本人小白一个所以踩了几个坑(之前尝试过用编写ocx,不过比较难,而且兼用性也不好),以下是根据博客https://blog.****.net/qq229943249/article/details/64907336,自己进行操作的具体过程记录一下。(以下的ip要改成自己对应的ip)

1,安装vlc(用于测试rtsp,rtmp测试,新版本的不可以播放,后面换成老版本才可以)

 

rtsp://admin:[email protected]:554/h264/ch33/main/av_stream

window7 海康硬盘录像机+ffmpeg+nginx+ckplayer实现网页实时预览监控视频(无敌详细版)

window7 海康硬盘录像机+ffmpeg+nginx+ckplayer实现网页实时预览监控视频(无敌详细版)

 

注意通道号的选择https://blog.****.net/xiejiashu/article/details/71786187

window7 海康硬盘录像机+ffmpeg+nginx+ckplayer实现网页实时预览监控视频(无敌详细版)

2,安装ffmpeg

window7 海康硬盘录像机+ffmpeg+nginx+ckplayer实现网页实时预览监控视频(无敌详细版)

 

 

3,nginx搭建(服务器)

修改一下配置文件conf

window7 海康硬盘录像机+ffmpeg+nginx+ckplayer实现网页实时预览监控视频(无敌详细版)

window7 海康硬盘录像机+ffmpeg+nginx+ckplayer实现网页实时预览监控视频(无敌详细版)

 

 

对html文件夹进行修改(下面的ckplayer有具体说明)

window7 海康硬盘录像机+ffmpeg+nginx+ckplayer实现网页实时预览监控视频(无敌详细版)

启动服务

window7 海康硬盘录像机+ffmpeg+nginx+ckplayer实现网页实时预览监控视频(无敌详细版)

 

检查是否成功(方法2)

cmd:netstat -a 查看端口占用情况,如果nginx成功启动,那么8081和1935也会被占用

 

启动错误:路径有中文

window7 海康硬盘录像机+ffmpeg+nginx+ckplayer实现网页实时预览监控视频(无敌详细版)

 

3.1 启动方式

1,启动

C:\nginx-1.10.2>start nginx-rtmp  或   C:\nginx-1.10.2>nginx-rtmp.exe

注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。

2、停止:

C:\nginx-1.10.2>nginx-rtmp.exe -s stop   或    C:\nginx-1.10.2>nginx-rtmp.exe -s quit

注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。

3、重新载入Nginx:

C:\nginx-1.10.2>nginx.exe -s reload

当配置信息修改,需要重新载入这些配置时使用此命令。

 

3.2目录解析

├── client_body_temp

├── conf        # Nginx所有配置文件的目录

│ ├── fastcgi.conf     # fastcgi相关参数的配置文件

│ ├── fastcgi.conf.default   # fastcgi.conf的原始备份文件

│ ├── fastcgi_params    # fastcgi的参数文件

│ ├── fastcgi_params.default # 所有结尾为default的文件都是备份文件

│ ├── koi-utf

│ ├── koi-win

│ ├── mime.types     # 媒体类型

│ ├── mime.types.default

│ ├── nginx.conf      # Nginx主配置文件

│ ├── nginx.conf.default

│ ├── scgi_params     # scgi相关参数文件

│ ├── scgi_params.default

│ ├── uwsgi_params     # uwsgi相关参数文件

│ ├── uwsgi_params.default

│ └── win-utf

├── fastcgi_temp     # fastcgi临时数据目录

├── html       # Nginx默认站点目录

│ ├── 50x.html          #错误页面优雅替代显示文件,例如当出现502错误时会调用此页面

│ └── index.html    # 默认的首页文件

├── logs      # Nginx日志目录

│ ├── access.log     # 访问日志文件

│ ├── error.log      # 错误日志文件

│ └── nginx.pid         # pid文件,Nginx进程启动后,会把所有进程的ID号写到此文件

├── proxy_temp     # 临时目录

├── sbin       # Nginx命令目录

│ └── nginx      # Nginx的启动命令

├── scgi_temp      # 临时目录

└── uwsgi_temp      # 临时目录

 

4,rtsp转rtmp

打开cmd输入以下指令:

ffmpeg -re -rtsp_transport tcp -i "rtsp://admin:[email protected]:554/h264/ch33/main/av_stream" -f flv -vcodec libx264 -vprofile baseline -acodec libmp3lame  -ar 44100 -strict -2 -ac 1 -f flv -s 300x200 -q 10 "rtmp://192.168.100.121:1935/mylive/show" (分辨率设置小点)

 

ffmpeng:常用参数说明:

主要参数:

 i 设定输入流 

 f 设定输出格式 

 ss 开始时间 

视频参数: 

b 设定视频流量,默认为200Kbit/s-r 设定帧速率,默认为25 

 s 设定画面的宽与高-aspect 设定画面的比例 

 vn 不处理视频-vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码器 

音频参数: 

 ar 设定采样率 

 ac 设定声音的Channel数 

 acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器an 不处理音频

以下是测试成功的截图

window7 海康硬盘录像机+ffmpeg+nginx+ckplayer实现网页实时预览监控视频(无敌详细版)

 

转换成功后,也生成m3u8文件 在http的8081端口

http://192.168.100.121:8081/multimedia/hls/live/show.m3u8 注意别放空格上去 

这个地址可以放在vlc进行测试

 

5,使用ckplayer播放

http://www.ckplayer.com/tool/help/56.htm ckplayer的帮助手册

window7 海康硬盘录像机+ffmpeg+nginx+ckplayer实现网页实时预览监控视频(无敌详细版)

index.htm的内容

window7 海康硬盘录像机+ffmpeg+nginx+ckplayer实现网页实时预览监控视频(无敌详细版)

ckplayer依赖的文件

window7 海康硬盘录像机+ffmpeg+nginx+ckplayer实现网页实时预览监控视频(无敌详细版)

 

 

 

 

6,谷歌浏览器的问题

window7 海康硬盘录像机+ffmpeg+nginx+ckplayer实现网页实时预览监控视频(无敌详细版)

 

 

设置为允许

window7 海康硬盘录像机+ffmpeg+nginx+ckplayer实现网页实时预览监控视频(无敌详细版)