当前位置: 首页 > 科技观察

如何使用Motion控制Linux监控摄像头

时间:2023-03-14 20:45:38 科技观察

Motion(http://www.lavrsen.dk/foswiki/bin/view/Motion/)是一款小巧轻便但功能强大的应用软件,可用于Linux控制监控摄像头。它适用于任何支持Linux的摄像机,包括所有V4L网络摄像机、许多IP摄像机和Axis摄像机,它还可以控制平移和倾斜功能。Motion可以录制JPEG、PPM和MPEG等格式的剪辑和快照,得益于Motion的内置HTTP服务器,您可以在Web浏览器中远程查看这些内容。它将图像文件存储在您选择的目录中,并且不需要数据库,但如果您真的想使用它,它也支持MySQL和PostgreSQL。图1:Foscam网络摄像头监控进入其场所的每个人。让我们首先看看如何使用我非常可靠的FoscamFI8905W(图1)让IP摄像头与Motion配合使用,然后我们将添加一个USB网络摄像头。在Debian和Debian衍生产品上的安装过程很容易,因为Motion包含在标准存储库中。所以,你只需要运行apt-getinstallmotion。您还需要libav-tools,它是ffmpeg的一个分支。许多个月前,Debian放弃了ffmpeg,转而使用libav-tools。在其他发行版上,请参阅下载页面(http://www.lavrsen.dk/foswiki/bin/view/Motion/DownloadFiles)和安装指南(http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionGuideInstallation)获取相关操作说明。此外,大多数发行版仍包含ffmpeg。安装程序应该创建一个动作组和用户,并将动作用户添加到视频组。如果安装程序没有创建运动组和用户,您必须自己创建它们。您必须自己将其添加到视频组,以避免烦人的权限问题。现在运行运动,看看它是否有效:$sudomotion[0]Processingthread0-configfile/etc/motion/motion.conf[0]Motion3.2.12Started[0]ffmpegLIBAVCODEC_BUILD3547904LIBAVFORMAT_BUILD3544067[0]Thread1isfrom/etc/motion/motion.conf[(]Startedstreamwebcamserverinport8081[...]它会显示很多很多行,直到你看到这样的东西:[1]Failedtoopenvideodevice/dev/video0:Nosuchfileordirectory[1]Videosignallost-Addinggreyimage将你的网络浏览器指向localhost:8081,你会看到一个grayimage:图2:如果Motion找不到摄像头,它会显示一个灰色的图像。这很好,因为它表明Motion已经正确安装,你所要做的就是配置它。按Ctrl+C停止运行.然后,在您的主目录中创建一个.motion目录,将默认配置文件复制到该目录中,并将所有权更改为您的:~$mkdir.motion~$sudocp/etc/motion/motion.conf。motion/~$sudochowncarla:carla.motion/motion.conf你还需要一个目录来存放motion捕获的图像:~$mkdirmotion-images当你启动Motion时,它会寻找配置文件,首先在当前目录,然后在~/.motion下找,最后在/etc/motion下找。现在,编辑你的~/.motion/motion.conf文件——这个例子包括基本配置以及与我的FoscamIP摄像机相关的行:#要以守护进程(后台)模式启动,打开一个终端(默认:关闭))daemonon#当检测到运动时,输出一张“正常”的图片(默认:on)[...]output_normaloff#存储进程号的文件,也叫pid文件。(默认值:未定义)。process_id_file/var/run/motion/motion.pid#图像宽度(像素)。有效范围:取决于相机,默认:352像素width640#图像高度(像素)。有效范围:取决于相机,默认:288像素height480#每秒最大帧数。#有效范围:2-100。默认值:100(几乎无限制)。framerate7#如果使用网络摄像头URL使用,会自动检测大小(包括http://、ftp://或file:///)#必须是返回单个JPEG图像或原始MJPEG的URL溪流。Default:undefinednetcam_urlvaluehttp://http://192.168.10.250:8080/videostream.cgi#网络摄像头的用户名和密码(只要需要就行)。Default:undefined#Syntaxisuser:passwordnetcam_userpassadmin:mypassword#存放图片和剪辑的基本目录#推荐绝对路径。(默认:当前工作目录)target_dir/home/carla/motion-images#ffmpeg用于视频压缩的编解码器。[...]ffmpeg_video_codecmpeg4您需要创建用于存储PID文件的目录,如motion.conf中所述:$sudomkdir/var/run/motion现在尝试启动它:$sudomotion[0]Processingthread0-configfile/home/carla/.motion/motion.conf[0]Motion3.2.12Started[0]Motiongoingtodaemonmode到目前为止一切顺利,现在再试一次localhost:8081:图3:运动捕捉到我的车道。看,那是我的私人车道。现在,如果有人来,警报就会响起,这样我就可以打开门放狗了。在相机前奔跑会触发运动检测系统;当您返回时,图像目录中应该有一些.avi剪辑。您还应该在localhost:8080找到一个简单的运动控制面板。IPCameraSetup《如何在Linux上借助ZoneMinder操控Linux监控摄像头?(第1部分)》详细描述了如何设置你的摄像头,参见http://www.linux.com/learn/tutorials/762058-how-to-operate-your-spycams-with-zoneminder-on-linux-第1部分-。在初始设置过程中,您必须按照摄像机制造商的说明进行操作,例如输入登录凭据和密码以及设置IP地址。您还可以有其他选项,如帧大小、运动灵敏度和颜色深度或黑白。获取准确的netcam_url有时很麻烦。对于我的Foscam,我打开了Firefox中的控制面板,右键单击图像(图4),然后左键单击查看图像信息。这将打开类似于图5的屏幕,其中显示了视频流的确切URL。在Chrome中,使用“检查元素”。图4:Firefox中的Foscam控制面板。图5:查找摄像机视频流的URL。微调配置值您可以调整配置文件中的各种参数,例如图像大小、图像质量、帧速率、运动灵敏度、帧中选定区域的更高灵敏度、文件路径、HTTP服务器和时间戳格式。《Motion指南:按字母顺序排列的选项参考手册》给出了每个选项的详细信息,参见http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionGuideAlphabeticalOptionReferenceManual。请记住将您的运动设置与相机控制面板中的设置相匹配,如果相机有的话。USB摄像头任何支持V4l的USB网络摄像头都可以正常工作。视频设备将是/dev/video0。/dev/video0只有在相机是连接到您的计算机的目录时才会出现。这是我的罗技网络摄像头的基本示例配置:videodevice/dev/video0width640height480framerate24output_normaloffffmpeg_video_codecmpeg4target_dir/home/carla/motion另外请记住:帧速率和帧大小等设置取决于相机支持的标准。让Motion在后台运行一旦您设置好所有内容,通过编辑/etc/default/motion并将start_motion_daemon=no更改为start_motion_daemon=yes让Motion作为守护进程运行。现在,当您打开电脑时,Motion会自动启动,您可以像任何其他后台程序一样启动和停止它。控制多个摄像头Motion可以轻松管理多个摄像头——您只需为每个摄像头分配自己的配置文件,命名为thread1.conf、thread1.conf等。守护进程开启和文件路径等常用选项仍然需要您的主motion.conf。每个“线程”文件都有特定于每个相机的配置。英文:http://www.linux.com/learn/tutorials/780055-how-to-operate-linux-spycams-with-motion