树莓派 3B + Bookworm:mjpg-streamer 正确安装全流程(原创)
大家好,我是小智!
在树莓派 OS Bookworm 版本上安装 mjpg-streamer 并非像旧版本一样简单,许多网上的教程已经过时,甚至存在错误。我在尝试过程中遇到了多个问题,例如依赖库缺失、编译失败等,但最终成功解决并搭建了 远程视频流监控系统。本教程基于 树莓派 3B,整理了一套 完整、可复现 的 mjpg-streamer 安装方法,避免常见坑点,确保顺利运行。适合想要在 Bookworm 上使用 mjpg-streamer 的用户参考。
为什么要写这篇文章?
1.缺少适用于树莓派3B且系统是Bookworm的正确mjpg-streamer安装教程
2.小智搜到的很多教程中有错误/过时信息,经过验证,方案不可行
类似:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install subversion
sudo apt -y install libjpeg62-turbo-dev //sudo apt-get install libjpeg8-dev 不可用
sudo apt-get install imagemagick
sudo apt-get install libv4l-dev
sudo apt-get install cmake
sudo apt-get install git
git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental
sudo make all
sudo make install
./mjpg_streamer -i "./input_raspicam.so" -o "./output_http.so -w ./www"
//./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
3.即使进行第二点的过程中没报错,它还是失败
-
在Bookworm系统中,用户不需要对摄像头进行配置就可以直接使用。即使输入sudo raspi-config并选择Interfacing Options,它不会出现camera的选项,如图:

-
在第二点成功执行完成后,小智没见过input_raspicam.so,即使查看了不可见文件也没有

-
小智使用的是官方摄像头,不支持MJPG格式,即使调整为YUYV也是失败(报错相对温和一些),报错信息如下:
pi@raspberrypi:~/Downloads/mjpg-streamer/mjpg-streamer-experimental $ ./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
MJPG Streamer Version: git rev: 310b29f4a94c46652b20c4b7b6e5cf24e532af39
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: -1
i: Format............: JPEG
i: TV-Norm...........: DEFAULT
i: Could not obtain the requested pixelformat: MJPG , driver gave us: YUYV
... will try to handle this by checking against supported formats.
... Falling back to YUV mode (consider using -yuv option). Note that this requires much more CPU power
UVCIOC_CTRL_ADD - Error at Pan (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Tilt (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Pan Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Pan/tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Focus (absolute): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Tilt (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan/tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Focus (absolute): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at LED1 Mode: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at LED1 Frequency: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Disable video processing: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Raw bits per pixel: Inappropriate ioctl for device (25)
o: www-folder-path......: ./www/
o: HTTP TCP port........: 8080
o: HTTP Listen Address..: (null)
o: username:password....: disabled
o: commands.............: enabled
libv4l2: error turning on stream: Invalid argument
Unable to start capture: Invalid argument
灵感来源
进入网站较慢,稍作等待[网址]https://forums.raspberrypi.com/viewtopic.php?t=332154
如图:

解决办法
1.依次输入以下命令:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install gcc g++
sudo apt-get install git
sudo apt-get install cmake
sudo apt install libcamera-apps
sudo apt install libcamera-dev
sudo apt -y install libjpeg62-turbo-dev
git clone https://github.com/ArduCAM/mjpg-streamer.git
2.编译,依次输入以下命令
cd mjpg-streamer/mjpg-streamer-experimental/
sudo make
sudo make install
3.一条命令运行mjpg-streamer
export LD_LIBRARY_PATH=.
./mjpg_streamer -i "input_libcamera.so" -o "output_http.so -l 0.0.0.0 -p 8081"

4.在浏览器里输入(如果成功,你应该能看到摄像头直播画面!)
http://树莓派IP:8081/?action=stream
例如:
http://192.168.0.108:8081/?action=stream
便捷启动方式(可选)
1.修改start.sh
sudo vim start.sh
2.手动注释黄色线上的语句(文件自带的),手动添加红色线上的语句,保存并退出

3.启动命令如下:
sudo ./start.sh
成功实现视频流
画面不好的原因:一是手抖,二是画面分辨率没调高。
这些都不是问题,至少能用!


浙公网安备 33010602011771号