树莓派4b默认安装的是32位系统,用的完全没有问题,因为给装的是初学者镜像。
但是对于配备了8GB内存的版本来说,显然不合适。
于是自己按照官方的说明烧录了64位系统,使用方法什么的都没有差别。
只是很多命令行的命令不能用了,其中就有调用摄像头的命令。
下面是用到的一些问题和解决方法
国内只有清华的源支持64位的版本,所以改成清华的源吧,百度上到处都是。
配的还不是raspy的源,配的是debian的源
raspistill -o new.jpg报错(参考https://www.cnblogs.com/dongxiaodong/p/9814119.html)
Errors: mmal: mmal_port_event_send: event lost on port 1,0 (buffer header callback not defined) mmal: mmal_port_event_send: event lost on port 1,0 (buffer header callback not defined)
错误详情见:https://www.raspberrypi.org/forums/viewtopic.php?p=1729920
这很显然是64位的还没支持raspistill命令,更别说录制视频的了。包括xdg一系列的命令。甚至改完清华源升级之后很多rasp的命令也没了。
从上面的论坛中突然又个灵感摄像头就是输出到/dev/video0而已,那用ffmpeg读取/dev/video0不就行了。
参考:https://blog.csdn.net/win_lin/article/details/50523098
解决方法:
安装ffmpeg:
#安装ffmpeg sudo apt-get install ffmpeg #1. 摄像头截图 ffmpeg -i /dev/video0 -r 1 -t 4 -q:v 2 -f image2 image-%d.jpeg #-r 每隔1s截取一张图 #-t 一共截4s #2.摄像头推流 ffmpeg -f v4l2 -i /dev/video0 \ -c libx264 -profile:v main -preset:v fast \ -b:v 300k -s 640x480 -r 25 \ -an \ -f mpegts -y "udp://192.168.0.3:12344" #从pc上用vlc打开链接"udp://192.168.0.3:12344"
提示:“cannot currently show the desktop”
解决方法:
设置分辨率:
sudo raspi-config #依次选择2 Display Option-> 01 Resolution ->DMT Mode 16 #然后保存退出重启就行了