在linux主机上搭建一套远程监控系统

矿板有风险,入坑需谨慎

最近在同事的推荐下在咸鱼入手了一套RK3399的开发板,卖家说是广告机的拆机设备,实际上嘛懂得都懂,这是不知道哪个币又崩盘了
d2812eb06c56ad0400fbb3b012e4cf7.jpg

但是该说不说,这个板子本身就是开发板,配置2+16,并且配套资料资料还是很丰富的,从linux、android各个系统都可以刷,想玩纯净版手动编译也可以,我在这里装的是ubuntu系统,系统包中已经安装好了python2/3,opencv、kears、pytorch、tf等深度学习框架也搭建好了。
这篇文章主要记录一下在上面搭载motion监控服务,首先板子到手换源,需要注意的是arm版本的ubuntu与x86版本的源不是同一个,在链接后面添加-ports,然后apt update更新一下,完成安装motion软件sudo apt-get install motion
安装完成后需要修改配置文件:

1、编辑/etc/default/motion文件
修改: start_motion_daemon=yes,即允许motion后台运行
2、列表项目
-将daemon修改为on
-修改stream_localhost状态为off #允许其他IP查看图像流
-修改webcontrol_localhost状态为off #允许其他IP查看控制台
-修改framerate 100 #修改速率限制
-修改stream_maxrate 100 #修改速率限制

motion的特色在于,具有动态监测的功能,通过判断像素数量变化的大小,在检测到像素数量变化很大超过阈值时拍摄,连续变化时录制视频,默认保存在/var/lib/motion下.此外还可以通过控制面板修改更多参数,例如像素大小,像素变化阈值,检测到运动运行什么脚本,默认端口,摄像头设备等等,详细的放在文章最末尾,默认控制端口为8080,视频流端口为8081.

命令行输入sudo motion开启motion,根据自己需求加入开机启动项或者添加内网穿透,在公网就可以实现远程监控,点击这里查看我的小乌龟:小乌龟远程监控

选项 取值范围 默认值 说明
auto_brightness Values: on,off off 让motion自动调节视频的的亮度,只适用于不带有自动亮度调节的摄像机
brightness Values: 0-255 0 (disabled) 调整摄像机的亮度
saturation Values: 0 - 255 0 (disabled) 调整摄像机的颜色饱和度
hue Values: 0 - 255 0 (disabled) 调整摄像机的色调
contrast Values: 0-255 0 (disabled) 调整摄像机的对比度
daemon Values: on,off off 以守护进程在后台运行。这个选项只能放在motion.conf,不能放在 thread config file
emulate_motion Values: on, off off 即使没有运动物体也要保存图像
ffmpeg_output_movies Values: on, off off 是否保存视频
ffmpeg_bps Values: 0 - 9999999 400000 视频比特率
ffmpeg_variable_bitrate Values: 0, 2 - 31 0 (disabled) 动态比特率,如果开启这个功能ffmpeg_bps将被忽略,0为关闭,2为最好质量,31为最差质量
ffmpeg_duplicate_frames Values: on, off on 为了达到每秒的帧数要求,会复制一下帧填充空白时间,关掉这个功能后每个帧都紧接下一个帧,看起来像快进
ffmpeg_output_debug_movies Values: on, off off调试模式,只看到变化的图像
ffmpeg_video_codec Values: mpeg4, msmpeg4, swf, flv, ffv1, mov, ogg, mp4, mkv, hevc mpeg4视频格式
framerate Values: 2 - 100 100 (no limit) 帧速率,每秒多少帧
frequency Values: 0 - 999999 0 (Not set) 频率协调 Hz(不清楚作用)
lightswitch Values: 0 - 100 0 (disabled) 忽略光照强度改变引起的变化
locate_motion_mode Values: on, off, preview off 给运动物体用方框标出
locate_motion_style Values: box, redbox, cross, redcross box 标记风格
max_movie_time Values: 0 (infinite) - 2147483647 3600 最大视频时间
minimum_frame_time Values: 0 - 2147483647 0 最小帧间隔,设置为0表示采用摄像头的帧率
minimum_motion_frames Values: 1 - 1000s 1 捕捉持续至少指定时间的运动帧
movie_filename Values: Max 4095 characters %v-%Y%m%d%H%M%S 视频的文件名
ffmpeg_timelapse Values: 0-2147483647 0 (disabled) 间隔时间,拍摄延时视频
ffmpeg_timelapse_mode Values: hourly, daily, weekly-sunday, weekly-monday, monthly, manual daily 延时拍摄模式
timelapse_filename Values: Max 4095 characters %v-%Y%m%d-timelapse 延时拍摄的文件名
output_pictures Values: on,off,first,best,center on 是否保存图片和模式设置
output_debug_pictures Values: on,off off 图片调试模式,只输出运动物体
picture_filename Values: Max 4095 characters %v-%Y%m%d%H%M%S-%q 图片文件名
picture_type Values: jpeg,ppm jpeg 图片类型
post_capture Values: 0 - 2147483647 0 (disabled) 运动在持续多少帧之后才被捕捉
pre_capture Values: 0 - 100s 0 (disabled) 输出图像包括捕捉到运动的前几秒
quality Values: 1 - 100 75jpg 图像的质量
quiet Values: on, off off 安静模式,检测到运动不输出哔
rotate Values: 0, 90, 180, 270 0 (not rotated) 旋转图像角度
stream_auth_method Values: 0,1,2 0 网页监控身份认证方法:0-无,1-基本,2-MD5
stream_authentication Values: username:password Not defined 网页监控用户名和密码
stream_limit Values: 0 - 2147483647 0 (unlimited) 限制帧的数量
stream_localhost Values: on, off on 是否只能本地访问网络摄像头
stream_maxrate Values: 1 - 100 1 限制网络摄像头帧速率
stream_port Values: 0 - 65535 0 (disabled) 网络摄像头端口
stream_quality Values: 1 - 100 50 网络摄像头传输质量
switchfilter Values: on, off off 过滤器开关,过滤器用来区分真正的运动和噪声
target_dir Values: Max 4095 characters Not defined = current working directory 视频和图片的保存路径
videodevice Values: Max 4095 characters /dev/video0 摄像头设备名
height Values: Device Dependent 288 图像高度,范围跟摄像机相关
width Values: Device Dependent 352 图像宽度,范围跟摄像机相关
process_id_file Values: Max 4095 characters Not defined 保存PID的文件,推荐/var/run/motion.pid
database_busy_timeout Values: 0 … positive integer 0 数据库等待超时时间,毫秒