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

news2024/12/23 8:54:29

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

1.树莓派的摄像头激活

        首先更新树莓派

sudo apt-get update
sudo apt-get upgrade

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

sudo raspi-config

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

         在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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1951775.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java基础语法】字符修改,以及equals的用法

前言: 小编这里将上一期String类型进行了补充,添加了字符串的修改,以及equals的用法内容,和hashcode的使用;上一期:http://t.csdnimg.cn/ijiM6 1.字符串的修改 在上一期中我们说到字符串是不能被修改的&am…

详细分析 Bladex中的swagger-resources资源未授权访问的解决方法

目录 1. 问题所示2. 原理分析2.1 RouterFunctionConfiguration 类2.2 SwaggerResourceHandler 类3. 解决方法3.1 网关过滤3.2 去除配置3.3 代码修改4. 彩蛋1. 问题所示 从而也导致资源接口文件泄露 https://xxx/swagger-resources 或者 ip:端口号/swagger-resources 2. 原理分…

matlab笔记 - 最小二乘法拟合直线的原理与实现

最小二乘法拟合直线原理与实现 一、引言二、原理概述1. 建模思路2.误差函数3.求解最优参数 三、matlab实现最小二乘法拟合直线1.直接代码实现2.MATLAB内置函数实现 四、扩展统计学与回归分析经济学工程学图像处理机器学习 一、引言 最小二乘法(Least Squares Metho…

ElasticSearch搜索

ES搜索 elastic search 一套搜索引擎技术,主要技术栈包括 Elasticsearch:用于数据存储、计算和搜索 Kibana:用于数据可视化 在数据库模糊查询中,因为不走索引,所以效率很低,而在搜索引擎中,不仅效率高,而且即使出现个别错字,或者用拼音搜索,甚至用同…

自定义Observal返回数据

在写Angular项目的时候,很多都是用的Observal,但是有时候我们在接口还没好 ,或者处理有些接口我们想要通过方法在observal返回特定的数据,这个时候要我们可以如下处理: 方法一、通过of返回 方法二:通过Observable的cr…

【Rust】所有权OwnerShip

什么是所有权 rust使用由编译器检查的一些规则构成的所有权系统来管理内存。且这不会影响程序的运行效率。 所有权规则 rust中每一个每一个值都有一个owner。在同一时刻,只能有一个owner。当这个owner超过范围,则该值会被丢弃。 String类型 为什么需…

Unity UGUI 之 自动布局组件

本文仅作学习笔记与交流,不作任何商业用途 本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正 本文在发布时间选用unity 2022.3.8稳定版本,请注意分别 1.什么是自动布局组件…

vue3 使用Mock

官网: http://mockjs.com/ 安装 npm install mockjs -Dsteps1: main.js 文件引入 import /api/mock.jssteps2: src/api/mock.js import Mock from mockjs import homeApi from ./mockData/home /*** 1.拦截的路径:mock拦截了正常NetWork/网络请求,数据正常响应* 2.方法* …

22 Python常用内置函数——枚举

enumerate() 函数用来枚举可迭代对象中的元素,返回可迭代的 enumerate 对象,其中每个元素都是包含索引和值的元组。 print(enumerate(abcd)) print(list(enumerate(abcd))) # 枚举字符串中的元素 print(list(enumerate([hello, world]))) # 枚举列表中…

Mongodb文档和数组的通配符索引

学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第97篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题,欢迎在文章下面点个赞,或者关…

前端canvas——赛贝尔曲线

曲线之美,不在于曲线本身,而在于用的人。 所以就有了这期赛贝尔曲线。 新规矩,先上个GIT。 效果图 开局一张图,代码全靠编。 代码 画骨 先想着怎么画一个心形吧,等你想好了,就知道怎么画了。 首先就还…

SearchGPT vs Google SearchGPT vs Perplexity 2024年AI搜索引擎评价测评

medium: https://medium.com/p/f7c9481efa50 SearchGPT User ReviewsSearchGPT VS GoogleSearchGPT VS Perplexity AI搜索引擎领域越来越多玩家参与,比如Google的Gemini OpenAI发布的SearchGPT以及Perplexity AI。OpenAI刚刚发布和SearchGPT,希望通过搜…

Internet Download Manager2024功能特点优势分析及使用建议及注意事项

1. Internet Download Manager简介 2. 功能特点 3. 优势分析 4. 专家评价 5. 使用建议及注意事项 6. 常见问题解答 7. 用户反馈及案例分享 8. IDM下载器的未来发展趋势 文章: 在互联网快速发展的今日,人们对于网络资源的获取和利用越来越频繁。无论…

智能合约在能源行业中的应用:促进可再生能源的发展与利用

随着全球能源需求的增长和环境保护意识的提升,可再生能源作为替代传统能源的重要选择,正逐步成为能源供应的主流。本文将探讨智能合约在能源行业中的应用,特别是如何通过智能合约促进可再生能源的发展与利用。 可再生能源的重要性与挑战 可再…

亚信安慧AntDB数据库与用友Yon BIP商业创新平台完成兼容性互认证

近日,湖南亚信安慧科技有限公司(简称:亚信安慧)自主研发的AntDB数据库产品,与用友网络科技股份有限公司(简称:用友网络)的Yon BIP用友商业创新平台完成了兼容性互认证。经过双方技术…

【四】jdk8基于m2芯片arm架构Ubuntu24虚拟机下载与安装

文章目录 1. 安装版本2. 开始安装3. 集群安装 1. 安装版本 如无特别说明,本文均在root权限下安装。进入oracle官网:https://www.oracle.com/java/technologies/downloads/找到最下面Java SE 看到java 8,下载使用 ARM64 Compressed Archive版…

Logitech Media Server已更名为Lyrion Music Server

还以为是个新软件,折腾之后来才发现 ,Lyrion Music Server 原名叫 Logitech Media Server,只是现在它已不再由 Logitech 拥有和维护,已完全移交给社区,因此更名,但简称依然还是 LMS。镜像目前还是延续了 lo…

一天搞定React(5)——ReactRouter(下)【已完结】

Hello!大家好,今天带来的是React前端JS库的学习,课程来自黑马的往期课程,具体连接地址我也没有找到,大家可以广搜巡查一下,但是总体来说,这套课程教学质量非常高,每个知识点都有一个…

全球“微软蓝屏”事件:IT基础设施韧性与安全性的考验

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

Firefox扩展程序和Java通信

实现Firefox扩展程序,和Java RMI Client端进行通信。 在Firefox工具栏注册按钮,点击按钮后弹出Popup.html页面,引用Popup.js脚本,通过脚本向Java RMI client发送消息,Java RMI Client接收消息后转发到Java RMI Server…