芯查查logo
  • 数据服务
    1. 新产品
    2. 物料选型
    3. 查替代
    4. 丝印反查
    5. 查品牌
    6. PCN/PDN
    7. 查方案
    8. 查代理
    9. 数据合作
  • SaaS/方案
      SaaS产品
    1. 供应链波动监控
    2. 半导体产业链地图
    3. BOM管理
    4. 解决方案
    5. 汽车电子
    6. 政府机构
    7. 数据API
  • 商城
  • 行业资讯
    1. 资讯
    2. 直播
  • 论坛社区
    1. 论坛
    2. 学习
    3. 测评中心
    4. 活动中心
    5. 积分商城
  • 查一下
  • 开通会员
野火电子-尹桢
项目14——移植motion进行移动侦测抓拍录像

【鲁班猫参赛作品赏析】

 


LubanCat-RK环境搭建

 

环境搭建可参考:
 

https://doc.embedfire.com/linux/rk356x/quick_start/zh/latest/index.html#lubancat-rk


在野火下载中心鲁班猫的对于云盘中,我们可以发现鲁班猫系列产品的系统映像非常完善,有安卓,Linux等系统映像,建议下载最新版本进行烧录,本人使用鲁班猫无线版,需要将系统烧录到TF卡中。

 

其他带闪存的版本可使用瑞芯微官方下载工具进行烧写系统,详细内容请参考野火产品中心

 

https://doc.embedfire.com/linux/rk356x/quick_start/zh/latest/README.html

 

登录LubanCat-RK系统一共有3种方式,USB登录鲁班猫终端登录,串口终端登录,SSH登录,并且通过局域网配置NFS网络文件系统后,可以将LubanCat-RK中的文件同步到电脑上来。

 

部署motion

                                                                                

motion的功能主要有移动侦测,移动抓拍,并且能通过局域网访问设备IP的8080端口,实时预览摄像头画面,能通过配置文件实现多种多样的功能,下面是尝试在鲁班猫设备是进行移植的过程。
 

安装motion

打开终端,输入以下指令
先更新软件源

sudo apt update

安装motion

sudo apt-get install motion

 

USB摄像头
先不插入USB摄像头,执行下列指令,之后插入USB摄像头,再执行一遍指令,可以看出插入USB摄像头后,多了video9,video10,所以video9,video10就是我们插入的USB摄像头设备,后续需要用到。(本人使用了USB摄像头)

sudo ls /dev/video*

#执行指令后,可以看到USB上挂载的摄像头
 sudo lsusb

 

#执行指令后,可以看到USB上挂载的摄像头         

 

mipi摄像头
LubanCat-RK系列板卡使用的摄像头接口是24pin mipi接口,目前适配了ov5648/ov8858摄像头,以及树莓派OV5647的摄像头(需要搭配转接板使用)

拍摄照片

#拍摄照片
sudo gst-launch-1.0 v4l2src num-buffers=1 device=/dev/video0 ! jpegenc ! filesink location=picture.jpg
#picture.jpg就是拍摄出来的照片了

拍摄视频

#拍摄视频
v4l2-ctl --verbose -d /dev/video0 --set-fmt-video=width=800,height=600,pixelformat='NV12' --stream-mmap=4 --set-selection=target=crop,flags=0,top=0,left=0,width=800,height=600 --stream-to=out.yuv
#播放视频
ffplay -f rawvideo -video_size 800x600 -pixel_format nv12 out.yuv
#out.yuv 便是拍摄出来的视频了                                                         

 

 

配置motion的各项参数

 

输入命令,使用vim编辑配置各项参数,修改motion的配置文件motion.conf
vim使用请参考vim编辑保存使用说明
修改motion的配置文件:

 

sudo vim /etc/motion/motion.conf
设置为可后台运行

#Start in daemon (background) mode and release terminal (default: off)
daemon on

图片视频的本地保存位置

 

# Target directory for pictures, snapshots and movies
target_dir /var/lib/motion

 

motion所使用的摄像头终端,与上述实际使用的所对应

 

# Video device (e.g. /dev/video0) to be used for capturing.

videodevice /dev/video9

 

设置不仅仅连接到本地

# Restrict stream connections to localhost only (default: on)

stream_localhost off

 

图片的像素大小,和帧率

# Image width (pixels). Valid range: Camera dependent, default: 320

width 800

# Image height (pixels). Valid range: Camera dependent, default: 240

height 600

# Maximum number of frames to be captured per second.

# Valid range: 2-100. Default: 100 (almost no limit).

framerate 15

 

图片上水印的位置,以及格式

 

# Text to be overlayed in the lower left corner of images
text_left CAMERA1
# Text to be overlayed in the lower right corner of images.
text_right %Y-%m-%d\n%T-%q

 

设置浏览器端口

 

# Port number used for the webcontrol.

webcontrol_port 8080

 

其他详细配置,可参考下表

配置完毕后,记得保存并退出,然后重启motion,就可以正常运行了

 

#启动
motionsudo motion
#关闭motion
sudo killall -TERM 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 数据库等待超时时间,毫秒

 

 

 

进行局域网展示图像

#获取鲁班猫IP地址
sudo  ifconfig

 

可以看出鲁班猫的IP地址为:192.168.7.102,加入:8080,可在局域网下任一设备访问192.168.7.102:8080进行画面展示,抓拍的图像,保存在配置文件中设置的位置。

 

运行成功如下图:

 

 

开源社区
版块: 野火
2023/09/18 17:52
  • 举报
😁😂😃😄😅😆😉😊😋😌😍😏😒😓😔😖😘😚😜😝😞😠😡😢😣😤😥😨😩😪😫😭😰😱😲😳😵😷😸😹😺😻😼😽😾😿🙀🙅🙆🙇🙈🙉🙊🙋🙌🙍🙎🙏✂✅✈✉✊✋✌✏✒✔✖✨✳✴❄❇❌❎❓❔❕❗❤➕➖➗➡➰🚀🚃🚄🚅🚇🚉🚌🚏🚑🚒🚓🚕🚗🚙🚚🚢🚤🚥🚧🚨🚩🚪🚫🚬🚭🚲🚶🚹🚺🚻🚼🚽🚾🛀Ⓜ🅰🅱🅾🅿🆎🆑🆒🆓🆔🆕
@好友

全部评论

加载中
游客登录通知
已选择 0 人
自定义圈子
移动
发布帖子
发布动态
发布问答
最新帖子
树莓派pico 2测评 - 串口萤火工场GD32VW553-IOT测评+蓝牙串口透传树莓派pico 2测评 - 初体验【工程师经验】+ 飞线【开源】zvs142857 2.1A,3A快充 充电宝迷你
热门版块
查看更多
电子元器件
电子DIY
每日打卡
丝印反查
问技术
汽车电子工程师论坛
工业电子专区
新手入门指南
单片机/MCU论坛
PCB设计

67

收藏

分享

微信扫码
分享给好友

评论