基于USB摄像头的运动视频捕捉和远程web视频监控

http://www.geek-workshop.com/thread-3559-1-1.html

一、首先确定USB摄像头可以用,

BASH 代码 复制打印
 
   
  1. cd /dev
  2. ls | grep video
  3. 如果有个设备名字是video0(多个摄像头数字递增)就可以了


二、本方案使用的是motion,相当简单的一个工具,让我们来安装他
BASH 代码 复制打印
 
   
  1. sudo apt-get update
  2. sudo apt-get install motion


三、配置motion.conf
BASH 代码 复制打印
 
   
  1. sudo nano /etc/motion/motion.conf

ctrl+w搜索 ”target_dir“ 后面跟着个就是图片/视频文件存储的位置
ctrl+w搜索 ”control_localhost“ 将on改成off,允许非本机访问http控制台

ctrl+x Y保存退出

四、启动 motion
pi@raspberrypi /dev $ sudo motion
[0] Processing thread 0 - config file /etc/motion/motion.conf
[0] Motion 3.2.12 Started
[0] ffmpeg LIBAVCODEC_BUILD 3482368 LIBAVFORMAT_BUILD 3478784
[0] Thread 1 is from /etc/motion/motion.conf
[0] motion-httpd/3.2.12 running, accepting connections
[0] motion-httpd: waiting for data on port TCP 8080
[1] Thread 1 started
[1] cap.driver: "uvcvideo"
[1] cap.card: "HD Pro Webcam C920"
[1] cap.bus_info: "usb-bcm2708_usb-1.2"
[1] cap.capabilities=0x04000001
[1] - VIDEO_CAPTURE
[1] - STREAMING
[1] Test palette YUYV (640x480)
[1] Using palette YUYV (640x480) bytesperlines 1280 sizeimage 614400 colorspace 00000008
[1] found control 0x00980900, "Brightness", range 0,255
[1]     "Brightness", default -8193, current 128
[1] found control 0x00980901, "Contrast", range 0,255
[1]     "Contrast", default 57343, current 128
[1] found control 0x00980902, "Saturation", range 0,255
[1]     "Saturation", default 57343, current 128
[1] found control 0x00980913, "Gain", range 0,255
[1]     "Gain", default 57343, current 0
[1] mmap information:
[1] frames=4
[1] 0 length=614400
[1] 1 length=614400
[1] 2 length=614400
[1] 3 length=614400
[1] Using V4L2
[1] Resizing pre_capture buffer to 1 items

五、远程控制motion

在远程通过浏览器访问 ”http://IP:8080“进行控制

  关于这些配置的具体意义,参见motion官方wiki http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome中的Config options。这里,我只对其中几个解释一下。
  daemon off,关掉deamon模式。最好这项还是选off,否则运行motion后,就会直接在后台运行,需要用top命令查看出motion的进程号(pid),然后再手动kill掉这个进程。
  locate on设置探测到图像中有运动时,把运动区域用矩形框起来。
  videodevice /dev/video0 设置加载USB摄像头的设备,一般都是这个video0,当使用network webcam时,需要设置netcam_url,此时,videodevice选项自动失效。
  threshold_tune off设置是否使用motion detection阈值自动调节。当设置为on时,下一个设置threshold 4500自动失效。设置off时,可以由threshold指定当探测到多少像素变化时,判断为图像中有运动。
  ffmpeg_cap_new on这个选项是指,在detect到运动时,用视频纪录下来。
  ffmpeg_video_codec msmpeg4 设定视频的编码器
  target_dir /root/motion/snapshots当探测到运动时,图片和视频的保存路径,默认时为/var/lib/motion/snapshots。
  snapshot_interval 1设定自动采集图片的周期,当有运动被检测到时,采集频率会自动变高。


基于USB摄像头的运动视频捕捉和远程web视频监控_第1张图片
基于USB摄像头的运动视频捕捉和远程web视频监控_第2张图片
使用远程8081端口的在线视频需要将 webcam_localhost 设置为off


乱七八糟的写完了,我的描述能力十分有限,希望新人可以看懂,本着能分享点算一点的原则,只要能对一些人有所帮助那样就太好了。如有不明之处欢迎回复,互相学习探讨。

你可能感兴趣的:(linux视频)