Linux使用mjpg-streamer进行图像传输

        图像传输是一项在Linux操作系统中比较常见的一个操作,在视频图传时,一般是采用MJPG-streamer来进行图像传输,本文就以树莓派为例子,来示范一个图像传输。

1.树莓派的摄像头激活

        首先更新树莓派

sudo apt-get update
sudo apt-get upgrade

        随后打开树莓派的配置界面,选择Interface Option

sudo raspi-config

Linux使用mjpg-streamer进行图像传输_第1张图片

        在 Interface Option选择Camera,使能摄像头

Linux使用mjpg-streamer进行图像传输_第2张图片

         在Enable摄像头之后,重启树莓派

sudo reboot

2.安装相关的依赖库

sudo apt-get update
sudo apt-get install subversion
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

3.在github上将开源的文件git到本地        

        GitHub上是有MJPG-streamer的开源文件的,有感兴趣的读者可以去看看

mjpg-stream的GitHub开源网址

        将git到的文件进行编译

sudo git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental
make all
sudo make install

4.启动mjpg-stream

./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"

        在这个时候,应该就可以启动mjpg-streamer的视频流传输了,在他们的官网上,输入你的ip地址,就可以看到实时传输的视频,视频传输的时延不高,大概在0.几秒左右

        传输的视频

http://192.168.43.128:8080/?action=stream

        mjpg-streamer的官网

http://192.168.43.128:8080/

5.将mjpg-streamer设置为开机启动

        创建一个 “systemd”服务文件

sudo nano /etc/systemd/system/mjpg-streamer.service

        在编辑器加入以下内容,确保路径与你的mjpg-stream实际路径匹配:

[Unit]
Description=MJPG Streamer
After=network.target

[Service]
ExecStart=/home/pi/Application/mjpg-streamer/mjpg-streamer-experimental/start.sh
WorkingDirectory=/home/pi/Application/mjpg-streamer/mjpg-streamer-experimental
Restart=always
User=pi
Group=pi
Environment=LD_LIBRARY_PATH=/home/pi/Application/mjpg-streamer/mjpg-streamer-experimental

[Install]
WantedBy=multi-user.target

解释: 

        ExecStart:指向启动 mjpg_streamer 的脚本。
        WorkingDirectory:指定工作目录。
        Restart=always:确保服务在崩溃后自动重启。
        User 和 Group:以 pi 用户和组运行服务。
        Environment:设置环境变量(如 LD_LIBRARY_PATH),确保正确加载库。

         重新加载Systemd配置

sudo systemctl daemon-reload

        启动和启用服务

sudo systemctl start mjpg-streamer
sudo systemctl enable mjpg-streamer

        关闭开机自启动

sudo systemctl disable mjpg-streamer

        关闭服务

sudo systemctl stop mjpg-streamer

你可能感兴趣的:(Linux驱动,linux,树莓派,图像传输)