树莓派4b摄像头(拍照+录像+监控(基于motion)),解决端口错误问题,帧率和设置不一致问题等。

目录

2.1 拍摄一张照片

2.2 拍摄一段视频

2.3 当作监控通过http访问


2.1 拍摄一张照片

首先如图,将摄像头按照上图方式接好,接好后可以直接尝试以下指令看是否能拍摄一张照片,下列代码的意思是在1s后拍摄一张名字为a.jpg的照片:

raspistill -o a.jpg -t 1000 
-o:指定输出图像文件的路径和名称。
-w:指定图像的宽度。
-h:指定图像的高度。
-q:指定图像的质量(0-100)。
-t:指定拍摄照片的时间,单位为毫秒。
-ex:指定曝光模式,例如 auto、night、nightpreview、backlight、spotlight 等。
-ISO:指定 ISO 值。
-br:指定亮度。
-co:指定对比度。
-sh:指定饱和度。
-ifx:指定图像效果,例如 none、negative、solarise、sketch、denoise 等。
-awb:指定白平衡,例如 auto、sunlight、cloudy、tungsten、fluorescent、incandescent、flash、horizon 等。
-v:显示调试信息。

最后效果就是在当前文件夹拍摄了一张名为a.jpg的照片.(但是需要注意的一点是拍摄照片并保存需要在指定位置中保存,比如用户文件夹pi中,最好是用户文件夹pi中的pictures中拍摄照片并保存,这样也有利于后期的寻找)

2.2 拍摄一段视频

拍摄视频最简单的函数:

raspivid -o test.h264 -t 10000 //拍摄一个名为test.h264的视频文件
-t:指定录制视频的时间,单位为毫秒。
-w:指定视频的宽度。
-h:指定视频的高度。
-fps:指定视频的帧率。
-b:指定视频的比特率。
-o:指定输出视频文件的路径和名称。
-vf:垂直翻转视频。
-hf:水平翻转视频。
还可以使用raspivid -- help来看参数选择

最后的效果就算生成一个名为test.h264的文件,但是这个文件只能树莓派自己解析,我们的windows是无法看h264的视频,所以我们需要想办法把这个视频文件转为MP4格式的视频,这样我们windows就可以轻松查看了。

这个时候需要用到一个FFmpeg 工具,这是一个处理多媒体非常强大的工具,要将h264的视频文件转化为MP4文件只需使用以下指令:

sudo apt install ffmpeg //这个指令是没有安装过ffmpeg的时候使用安装库的
ffmpeg -i input.h264 -c:v copy output.mp4 //这个命令意思是将input.h264文件复制并且转为名为output.mp4的mp4格式的视频文件

        最后就实现了将h264文件转为MP4文件的操作,最后再用xrdp或者其他文件传输软件便可以把mp4视频文件传到windows桌面上供大家观赏啦~

2.3 当作监控通过http访问

想要将树莓派当作监控来观测,简单的拍照和拍视频库是无法实现的,这里需要一个库:motion

sudo apt-get install motion //安装motion工具

安装后便可以使用motion功能来当作是远程监控了,但是我们要使其运行的话还需要配置一些功能,首先打开文件夹/etc/motion/,这个文件夹中包含着motion初始化时的参数:

cd /etc/motion/ 

在里边可以找到文件motion.conf

随后随便用一个编辑器打开这个文件即可,我这里用的时Vim编译器:

sudo vim motion.conf (这里一定要用sudo不然没有权限修改文件)

进去之后里面的参数就是motion监控时基本所有的参数(这里基本的很重要待会要考!),我们修改这些参数

deamon off -----> deamon on (改为后台持续运行)
framerate 2 -----> framerate 60 (将帧率改为60帧)
stream_localhost on ----> stream_localhost off (这里设置是否仅在主机上提供视频流,设置为off就是会同时提供给主机和局域网内其他的设备)
stream_maxrate 200 (这个是控制视频流最大帧率的参数,这里的意思是视频流最大帧率不超过200)

 上侧前三条参数都可以再参数中找到,我找半天都找不到第四个参数,于是一开始我就没有设置第四个参数,结果我发现不管我怎么调framerate这个帧率参数,摄像头拍摄的帧率始终只有1帧,结果最后发现这个文件中确实没有这个参数,这个参数需要我们自己添加,真的是太恶心了,大家只需要在某的地方加上第四段设置就好了。

 我是添加在了上图的位置。随后我们设置完毕之后就保存文件退出就好,vim编译器在这里操作是:1.按下i进入编辑模式 2.改完后按下ESC在输入中文的冒号:wq保存并退出,如果这样说还不懂的友友们可以去看看vim编译器操作流程。

最后重启motion新的配置就会生效了:

sudo killall -TERM motion (改指令意义在于关闭所有在运行的motion程序)
sudo motion (重新开启motion)

开启后需要访问的话请继续往下看!!!!

第二个坑人的地方(端口问题):大家可能会看上面图片有一个stream_port 8081,描述是The port number for the live stream,简而言之就是用于设置Motion实时视频流服务的端口号。通过该端口号,可以从Motion中获取实时视频流,用于监视和录制。

而这个时候有另一个就是web的端口号如下图所示:

我看很多文章说的都是用http访问这个web端口来实现所以一开始也是用http://192.168.85.174:8080这个去访问motion监控内容(其中192.168.85.174是我树莓派的ip地址,如果有不知道ip地址怎么找的请看我前面一篇文章),后面发现根本没有界面,于是访问http://192.168.85.174:8081发现就有界面了,所以访问的话还是要看上面图片中的端口号,至于为什么我现在还不知道,有知道的大佬麻烦指教下,谢谢!

最后实现的效果:

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值