手头有个树莓派3B,和CSI接口的摄像头,型号是OV5467,准备用来搞个视频推流玩玩。
最初刷的是树莓派新系统bookworm,尝试用网上推荐的gstreamer1.0-tools和ffmpeg来驱动摄像头,试了好久在/dev/video0找不到摄像头,在sudo raspi-config时找不到配置摄像头的界面(如下图),可能是bookworm对3b的CSI摄像头支持还没到位吧,如果各位有什么好意见可以告诉我,感谢!
最终不得已烧回老版本的32位系统bullseye:2023-05-03-raspios-bullseye-armhf.img.xz
参考班梨电子的树莓派摄像头使用教程:树莓派摄像头使用教程 (spotpear.cn)
经过检测摄像头,能够正常工作后,在树莓派上安装vlc:
sudo apt-get update sudo apt-get install vlc --fix-missing sudo apt-get install vlc
安装完毕后在命令行输入(分辨率1280*720,帧率30fps):
sudo raspivid -o - -rot 180 -t 0 -w 1280 -h 720 -fps 30|cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8080}' :demux=h264
大概缓冲了1000ms;
然后在电脑上打开VLC播放器,输入视频流地址:
点击播放后可以看见画面:
关于raspivid指令的具体参数设置可以看此篇blog:
树莓派录制视频:使用raspivid命令轻松记录高质量视频_星际编程喵的博客-CSDN博客
经过长时间播放,还是缓冲有点卡。局域网内大概有3s的延时,时间长了延时会更长。除了时延之外,还发现有时候有些丢帧,不知道具体是什么原因。
开个终端,用top命令看看CPU占用率:其实vlc应该调用的是硬件编码,所以cpu占用率不高。谁知道第一个w1_bus_ma+是什么吗?
至此已完成树莓派3b+CSI摄像头的视频推流,有什么不对的地方或更好的建议各位可以指出。