前言:环境配置真痛苦,docker度你不迷糊!

参考网站:https://hub.docker.com/r/migoller/shinobidocker

主机系统:ubuntu16.04

配置目的:利用Shinobi组建局域网监控平台

所需软件:docker、Shinobi、ffserver

1.Shinobi配置(docker)

1.1 docker一键pull镜像

docker pull migoller/shinobidocker

1.2 按照网站中的步骤完成以下部分,其余部分忽略

Dock the "microservice" Shinobi Docker image

  • 创建Shinobi目录[Path to Shinobi direcory]及其子目录:
mkdir -p [Path to Shinobi direcory]/config [Path to Shinobi direcory]/datadir [Path to Shinobi direcory]/videos
  • Shinobi目录下创建一个文件docker-compose.yml,内容如下:
 version: '2'services:db:image: mariadbenv_file:- MySQL.envvolumes:- ./datadir:/var/lib/mysqlshinobi:image: migoller/shinobidocker:microservice-debianenv_file:- MySQL.env- Shinobi.envvolumes:- /etc/localtime:/etc/localtime:ro- /etc/timezone:/etc/timezone:ro- ./config:/config- ./videos:/opt/shinobi/videos- /dev/shm/shinobiDockerTemp:/dev/shm/streamsports:- "8080:8080"
  • Shinobi目录下创建MySQL.env文件:
 MYSQL_USER=majesticflameMYSQL_PASSWORD=passwordMYSQL_HOST=dbMYSQL_DATABASE=ccioMYSQL_ROOT_PASSWORD=blubsblawootMYSQL_ROOT_USER=root
  • Shinobi目录下创建Shinobi.env文件:
 ADMIN_USER=admin@shinobi.videoADMIN_PASSWORD=adminCRON_KEY=b59b5c62-57d0-4cd1-b068-a55e5222786fPLUGINKEY_MOTION=49ad732d-1a4f-4931-8ab8-d74ff56dac57PLUGINKEY_OPENCV=6aa3487d-c613-457e-bba2-1deca10b7f5dPLUGINKEY_OPENALPR=SomeOpenALPRkeySoPeopleDontMessWithYourShinobiMOTION_HOST=localhostMOTION_PORT=8080
  • 后台启动Shinobi stack:(关闭可以用sudo docker-compose down)
sudo docker-compose up -d
  • 运行mariadb:(YourMariaDbContainerName可以随便写,但是后面步骤必须与其一致;Shinobi目录下新建一个文件夹[Path to your MariaDB server data files];[Your very strong MariaDB root password]可以随便写,但一定要记住。)
docker run -d --name [YourMariaDbContainerName] -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro -v [Path to your MariaDB server data files]:/var/lib/mysql    -e MYSQL_ROOT_PASSWORD=[Your very strong MariaDB root password] -p 3306:3306 mariadb
  • 运行Shinobi:(YourMariaDbContainerName与上一步相同)
docker run -d --link [YourMariaDbContainerName]:db -p 8080:8080 -e ADMIN_USER=admin@shinobi.video -e ADMIN_PASSWORD=admin -e MYSQL_USER=majesticflame -e MYSQL_PASSWORD=password -e MYSQL_HOST=db -e MYSQL_DATABASE=ccio -e MYSQL_ROOT_PASSWORD=[Your very strong MariaDB root password] -e MYSQL_ROOT_USER=[Your MariaDB root username]      -e CRON_KEY=b59b5c62-57d0-4cd1-b068-a55e5222786f -e PLUGINKEY_MOTION=49ad732d-1a4f-4931-8ab8-d74ff56dac57 -e PLUGINKEY_OPENCV=6aa3487d-c613-457e-bba2-1deca10b7f5d -e PLUGINKEY_OPENALPR=SomeOpenALPRkeySoPeopleDontMessWithYourShinobi -e MOTION_HOST=localhost      -e MOTION_PORT=8080 -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro      -v [Path to your Shinobi data files]/config:/config -v [Path to your Shinobi data files]/datadir:/var/lib/mysql -v [Path to your Shinobi data files]/videos:/opt/shinobi/videos -v /dev/shm/shinobiDockerTemp:/dev/shm/streams      migoller/shinobidocker:microservice-debian
  • 浏览器登录:(xxx.xxx.xxx.xxx就是主机IP地址)
Web Address : http://xxx.xxx.xxx.xxx:8080/super
Username : admin@shinobi.video
Password : admin
  • 创建自己的账户,以后可直接登录自己的账户:
http://xxx.xxx.xxx.xxx:8080/

2.流媒体推送usb摄像头

配置流媒体服务,ffmpeg将usb摄像头获取的图像信息推送至局域网中的流媒体服务器(ffserver),局域网中其他用户可用rtsp的方式获取usb摄像头的图像流。

对于ffmpeg的流媒体推送理解:https://blog.csdn.net/zouli415/article/details/79652749

ffserver和ffmpeg配置:https://blog.csdn.net/zong596568821xp/article/details/88540455

运行ffserver:

 sudo ffserver -f /etc/ffserver.conf

运行ffmpeg:

sudo ffmpeg -f v4l2 -i /dev/video0 -s 640x480 -r 24 -vcodec libx264 -an http://127.0.0.1:8090/feed1.ffm

Shinobi服务器查看:

填写rtsp地址,Full URL PathThe full Stream URL.

选择查看流类型:

3.流媒体推送IntelRealSenseD435

参考网站1:https://blog.csdn.net/dieju8330/article/details/85420584

参考网站2:https://github.com/lam2003/v4l2_webstream_server/tree/f64a1f9429c74a110c57f519ac8658057203ca14

吐槽一下:

  • 光是一个usb摄像头要实现流媒体服务推送rtsp流(C++编程),就已经很麻烦了。IntelRealSenseD435是3个摄像头,需要用到librealsense SDK,所以就更加难搞,只能学习网站给的程序,搞个野路子!!!
  • 网站1和网站2虽然给出了代码,但是librealsense、x264、FFmpeg、live555、都需要自己编译,所以还是需要一定的编译基础的!

野路子思路:

  • 获取:运用opencv正常读取IntelRealSenseD435深度图像,并保存为一个临时图片temp.jpg;
  • 编码:用FFmpeg+x264实现对temp.jpg的编码,编码为H264数据流;
  • 传输:用live555实现rtsp流服务,传输编码的H264数据流。

调试内容:

Intel RealSense D435的深度图为16bit-depth,RGB图为8bit-depth。

同时,用Intel RealSense D435采集640*480大小的图像,深度图采用CV_16U格式,RGB图采用CV_8UC3格式。

/*深度图*/
Mat depth_image(Size(depth_w,depth_h),CV_16U,(void*)depth_frame.get_data(),Mat::AUTO_STEP);
/*RGB图*/
Mat color_image(Size(color_w,color_h),CV_8UC3,(void*)color_frame.get_data(),Mat::AUTO_STEP);

gdb调试时可以看到,深度图dims=2, rows=480, cols=640, step[0]=1280,step[1]=2,RGB图dims=2, rows=480, cols=640, step[0]=1920,step[1]=3。(step[0]是矩阵中一行元素的字节数;step[1]是矩阵中一个元素的字节数),即深度图每一个元素都占用了2个字节存储,RGB图每个元素都占用的3字节存储(分别存储各通道数据)。

C++: int Mat::depth() const
The method returns the identifier of the matrix element depth (the type of each individual channel). For example, for a 16-bit signed element array, the method returns CV_16S . A complete list of matrix types contains the following values:CV_8U - 8-bit unsigned integers ( 0..255 )
CV_8S - 8-bit signed integers ( -128..127 )
CV_16U - 16-bit unsigned integers ( 0..65535 )
CV_16S - 16-bit signed integers ( -32768..32767 )
CV_32S - 32-bit signed integers ( -2147483648..2147483647 )
CV_32F - 32-bit floating-point numbers ( -FLT_MAX..FLT_MAX, INF, NAN )
CV_64F - 64-bit floating-point numbers ( -DBL_MAX..DBL_MAX, INF, NAN )

Shinobi视频监控平台相关推荐

  1. 中小学、幼儿园校园明厨亮灶视频监控平台要求

    中小学.幼儿园校园明厨亮灶视频监控平台要求 为进一步落实学校食品安全主体责任,加强学校食堂食品安全管理工作,完善食品安全管理制度,规范加工制作行为,严厉打击食品安全违法违规行为,预防食物中毒事件的发生 ...

  2. 视频监控平台-GB28181-语音对讲功能

    视频监控平台-GB28181-2016语音对讲功能 很多人在问我,语音对讲是怎么流程, 实现了怎么去测试,语音对讲是在2014版本提出来的,我这里详细写一遍国标28181-2016语音对讲的功能介绍. ...

  3. 利用华为云ECS服务器搭建安防视频监控平台

    1. 前言 华为云的弹性云服务器(Elastic Cloud Server)是一种可随时自助获取.可弹性伸缩的云服务器,帮助用户打造可靠.安全.灵活.高效的应用环境,确保服务持久稳定运行,提升运维效率 ...

  4. TSINGSEE青犀视频监控平台的多种联网方式详解

    TSINGSEE青犀视频根据流媒体传输协议的不同,拥有满足不同需求的视频监控平台.比如有支持国标GB28181协议的EasyGBS国标云服务,支持RTSP/Onvif协议的EasyNVR平台,以及可兼 ...

  5. 基于java spring框架开发部标1078视频监控平台精华文章索引

    部标1078视频监控平台,是一个庞杂的工程,涵盖了多层协议,部标jt808,jt809,jt1078,苏标Adas协议等,多个平台功能标准,部标796标准,部标1077标准和苏标主动安全标准,视频方面 ...

  6. 浅析搭建高速公路视频监控平台的建设方案及必要性

    一.方案背景 搭建高速公路视频监控平台的必要性有如下几点: 1)用于高速收费站的收费流程监控.安全监察.智能收费等相关管理工作: 2)用于交通卡口的测速.应急车道占用抓拍.违规行驶抓拍等: 3)用于监 ...

  7. 智慧城市视频监控平台组成

    视频监控平台对本级接入的各种资源进行汇集管理,为上下级平台提供调用服务. (1)平台组成 平台由建立在 VPN 视频专用网络上的"中心管理"."媒体管理"&qu ...

  8. RTSP/RTMP/GB28181协议视频监控平台搭建之国网B接口协议介绍

    我们知道TSINGSEE青犀视频全线产品对应了不同的视频协议,比如EasyNVR就是支持RTSP协议的视频平台,EasyDSS是支持RTMP协议的视频平台,EasyGBS是支持GB28181协议的视频 ...

  9. 利用华为云ECS服务器搭建安防视频监控平台【华为云至简致远】

    1. 前言 华为云的弹性云服务器(Elastic Cloud Server)是一种可随时自助获取.可弹性伸缩的云服务器,帮助用户打造可靠.安全.灵活.高效的应用环境,确保服务持久稳定运行,提升运维效率 ...

  10. 华为 eSpace IVS 智能视频监控平台

    eSpace IVS 智能视频监控平台 http://enterprise.huawei.com/cn/products/coll-communication/ivs/ivs-platform-s/h ...

最新文章

  1. module 'thread' has no attribute
  2. Ubuntu root 密码 sudo passwd
  3. python前缀表达式求值_python数据结构与算法 11 后缀表达式求值
  4. 「offer来了」2种递进学习思维,24道计网题目,保姆级巩固你的计网知识体系
  5. 帕累托最优生活例子_创业者:用博弈解决生活的难题
  6. kitti数据集反代下载
  7. 51nod1432 独木舟
  8. 今天将IE升级到了7.0版
  9. VMware vsphere Hypervisor、VMware vsphere和VMware Workstation小记
  10. Microsoft SQL Server 2008 (RTM) 升级到 Microsoft SQL Server 2008 R2
  11. html返回按钮 超链接,ppt中怎么添加超链接返回按钮
  12. 微信小程序如何跳转视频号直播间
  13. Java实现微信公众号授权登录
  14. 爬虫实现自动登陆抽屉网,实现对文章点赞,收藏,评论
  15. OLED电视与量子点电视,谁更值得买?
  16. win 10 安装单点Spark+Hadoop+Python环境
  17. eclipse如何设置背景颜色
  18. UBI,MTD(Memory Technology Device),raw flash,emmc,Flash,Block Device
  19. signal函数详解
  20. ”微服务一条龙“最佳指南-“最佳实践”篇:大厂服务端部署

热门文章

  1. 闰秒问题的全面解读与防范
  2. Ubuntu16.04《解压7z.001文件》
  3. 获取非行间样式和行间样式方法
  4. 惠普服务器开机无限重启,电脑开机无限重启的解决方法
  5. 系统安全检测(使用John进行密码破解)
  6. 第六章 XML 拨号方案
  7. Win7 启动 0xc0000034错误 - 解决
  8. 在线负数分数计算机,负分数
  9. mysqldb 安装包 linux,Linux下Python MySQLdb模块安装过程及错误解决
  10. 服务器管理系统推荐,十大Windows服务器工具 系统管理员必备