树莓派/PC实现实时摄像头数据共享—最优方法(搭建网络摄像头)

简介: 树莓派/PC实现实时摄像头数据共享—最优方法(搭建网络摄像头)

目录

方法一、motion方式


方法二、MJPG-streamer方式


之前做项目需要树莓派和PC进行视频传输,发现两种方法:


方法一:Python+OpenCv实现树莓派数据采集,树莓派搭建服务器,PC机作为客户端实现数据传输,结果发现传输画质太差。


网址:https://blog.csdn.net/m0_38106923/article/details/81974373


方法二:使用Python+树莓派原装摄像头,使用Python代码调用,再搭建服务器,传输视频,效果显著。


网址:https://blog.csdn.net/m0_38106923/article/details/82628061


最近发现一种新的数据传输方式,树莓派搭建网络摄像头,不仅速度流畅,效果感人,而且可以多个用户同时访问,爽歪歪~


给小伙伴们展示下PC端和手机端同时访问效果:


image.png

image.png



接下来给各位讲解下搭建树莓派网络摄像头的流程,主要有两种方式。


方法一、motion方式

第一步:安装motion包


sudo apt-get install motion

第二步:打开 motion daemon 守护进程,让它可以一直在后台运行


sudo nano /etc/default/motion
#no修改成yes:
start_motion_daemon=yes

第三步:修改motion的配置文件


sudo vim /etc/motion/motion.conf
#deamon off 改成 on
deamon on
#设置分辨率
width 800
height 600
#关闭 localhost 的限制
webcam_localhost off

第四步:运行 motion


sudo motion

安装好USB摄像头,运行后重启树莓派,现在我们的摄像头已经变成了一台网络摄像头,在chrome浏览器下访问 http://[your.domain]:8081 即可看到摄像头当前拍摄的画面,需要注意有时候重启树莓派后网络摄像头可能未启动,所以需要重新运行motion。


需要注意,第一种网络摄像头搭建方式不便于Android手机端的访问,所以这里我并未使用,这里仅做拓展讲解。


PC端使用Python访问非常简单,直接使用OpenCv模块的VideoCapture()方法,输入网络摄像头URL即可。使用伪代码如下:


'''
VideoCapture()中参数是0,表示打开电脑内置摄像头,
参数是1或2打开外部摄像头
参数是视频文件路径则打开视频文件
参数是URL打开网络摄像头
'''
cap = cv2.VideoCapture(URL)

方法二、MJPG-streamer方式

第一步:安装所需模块


sudo apt-get updatesudo 
sudo apt-get install subversionsudo 
sudo apt-get install libjpeg8-devsudo 
sudo apt-get install imagemagicksudo 
sudo apt-get install libv4l-devsudo 
sudo apt-get install cmakesudo 
sudo apt-get install git

第二步:git一个开源的project:MJPG-streamer


sudo git clone github.com/jacksonliam/mjpg-streamer.git 
cd mjpg-streamer/mjpg-streamer-experimentalsudo 
make all
sudo make install

git过程比较缓慢,大家可以耐心等待一段时间,等待100%后确认完成后再执行下一条命令,启动USB摄像头,指令如下:

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


image.png

这里有一点需要注意,配置USB摄像头和树莓派专用摄像头指令不一样,这里我配置的是USB摄像头,具体指令分别如下:


指令启动普通USB摄像头指令:
./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"  
启动树莓派专用摄像头RaspiCamera的指令:
./mjpg_streamer -i "./input_raspicam.so" -o "./output_http.so -w ./www"

并且使用树莓派专用摄像头需要开启专用摄像头配置的,输入指令如下:


sudo raspi-config

image.png

点击摄像头使能开启即可。


以上就实现了全部的网络摄像头搭建。不过每次我们启动树莓派的时候还是需要手动去执行对应的命令,比较麻烦。那么接下来我们把当前项设置为一个系统自启动项。


第三步:设置自启动


cd到系统home目录下,新建一个sh可执行文件,输入如下命令即可:


sudo nano videoStart.sh

videoStart.sh文件中输入内容如下:


cd /home/pi/mjpg-streamer/mjpg-streamer-experimental/
./mjpg_streamer -i "./input_uvc.so" -d /dev/video0 -f 30 -r 1280x720 " -o 
"./output_http.so -p 8080 -w ./www"

然后退出保存,最后记得再给个可执行权限,输入命令:


sudo chmod +x /home/pi/videoStart.sh

接着再创建一个目录,输入命令如下:


sudo mkdir .config/autostart

继续新建一个文件,输入对应命令如下:


sudo nano .config/autostart/my.desktop

文件内容如下:


[Desktop Entry]
Type=shell
Exec=/home/pi/videoStart.sh

最后保存退出,这样每次开机就自动执行

对应文件命令,省去了每次手动执行的麻烦。


第四步:测试


查看图像,在PC端打开浏览器,输入下面网址可以看到静态截图:


http://<树莓派IP>:8080/?action=snapshot


我这里是地址:http://192.168.0.112:8080/?action=snapshot


image.png


输入下面两条网址可以看到动态图像:


http://<树莓派IP>:8080/?action=stream


这里的树莓派地址:http://192.168.0.112:8080/?action=stream

image.png



动态图像的这个地址在有的浏览器不太好使,可以使用下面这个网址:


http://<树莓派IP>:8080/javascript_simple.html


总结:经过不断探索树莓派和PC视频数据通信“三部曲”到此结束,希望对小伙伴们有帮助~


那么局域网实现了实时视频直播,有人肯定会问互联网上如何观看?那这里我就给大家推荐一款可以穿透局域网的软件:花生壳,想必接触过互联网的朋友,应该都对此有一定得了解,配合上自家的路由器均可实现局域网电脑与互联网对接。


相关文章
|
1月前
|
监控 安全 网络安全
云计算与网络安全:保护数据的关键策略
【9月更文挑战第34天】在数字化时代,云计算已成为企业和个人存储、处理数据的优选方式。然而,随着云服务的普及,网络安全问题也日益凸显。本文将探讨云计算环境中的网络安全挑战,并提供一系列策略来加强信息安全。从基础的数据加密到复杂的访问控制机制,我们将一探究竟如何在享受云服务便利的同时,确保数据的安全性和隐私性不被侵犯。
65 10
|
2月前
|
存储 安全 网络安全
云计算与网络安全:守护数据,构筑未来
在当今的信息化时代,云计算已成为推动技术革新的重要力量。然而,随之而来的网络安全问题也日益凸显。本文从云服务、网络安全和信息安全等技术领域展开,探讨了云计算在为生活带来便捷的同时,如何通过技术创新和策略实施来确保网络环境的安全性和数据的保密性。
|
2月前
|
5G 调度 UED
5G中的动态频谱共享(DSS):高效利用频谱资源,加速5G网络演进
5G中的动态频谱共享(DSS):高效利用频谱资源,加速5G网络演进
501 4
|
14天前
|
存储 安全 网络安全
云计算与网络安全:保护数据的新策略
【10月更文挑战第28天】随着云计算的广泛应用,网络安全问题日益突出。本文将深入探讨云计算环境下的网络安全挑战,并提出有效的安全策略和措施。我们将分析云服务中的安全风险,探讨如何通过技术和管理措施来提升信息安全水平,包括加密技术、访问控制、安全审计等。此外,文章还将分享一些实用的代码示例,帮助读者更好地理解和应用这些安全策略。
|
18天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:从漏洞到加密,保护数据的关键步骤
【10月更文挑战第24天】在数字化时代,网络安全和信息安全是维护个人隐私和企业资产的前线防线。本文将探讨网络安全中的常见漏洞、加密技术的重要性以及如何通过提高安全意识来防范潜在的网络威胁。我们将深入理解网络安全的基本概念,学习如何识别和应对安全威胁,并掌握保护信息不被非法访问的策略。无论你是IT专业人士还是日常互联网用户,这篇文章都将为你提供宝贵的知识和技能,帮助你在网络世界中更安全地航行。
|
21天前
|
存储 安全 网络安全
云计算与网络安全:如何保护您的数据
【10月更文挑战第21天】在这篇文章中,我们将探讨云计算和网络安全的关系。随着云计算的普及,网络安全问题日益突出。我们将介绍云服务的基本概念,以及如何通过网络安全措施来保护您的数据。最后,我们将提供一些代码示例,帮助您更好地理解这些概念。
|
1月前
|
机器学习/深度学习 计算机视觉
TPAMI 2024:计算机视觉中基于图神经网络和图Transformers的方法和最新进展
【10月更文挑战第3天】近年来,图神经网络(GNNs)和图Transformers在计算机视觉领域取得显著进展,广泛应用于图像识别、目标检测和场景理解等任务。TPAMI 2024上的一篇综述文章全面回顾了它们在2D自然图像、视频、3D数据、视觉与语言结合及医学图像中的应用,并深入分析了其基本原理、优势与挑战。GNNs通过消息传递捕捉非欧式结构,图Transformers则结合Transformer模型提升表达能力。尽管存在图结构构建复杂和计算成本高等挑战,但这些技术仍展现出巨大潜力。论文详细内容见:https://arxiv.org/abs/2209.13232。
49 3
|
1月前
|
SQL 安全 测试技术
网络安全与信息安全:保护数据的艺术
【9月更文挑战第36天】在数字化时代,网络安全和信息安全已成为维护个人隐私和企业资产的基石。本文深入探讨了网络安全漏洞、加密技术以及安全意识的重要性,旨在为读者提供一份知识宝典,帮助他们在网络世界中航行而不触礁。我们将从网络安全的基本概念出发,逐步深入到复杂的加密算法,最后强调培养安全意识的必要性。无论你是IT专业人士还是日常互联网用户,这篇文章都将为你打开一扇了解和实践网络安全的大门。
37 2
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习与神经网络:探索复杂数据的表示
【9月更文挑战第26天】深度学习作为人工智能领域的明珠,通过神经网络自动从大数据中提取高级特征,实现分类、回归等任务。本文介绍深度学习的基础、张量表示、非线性变换、反向传播及梯度下降算法,并探讨其在计算机视觉、自然语言处理等领域的应用与挑战。未来,深度学习将更加智能化,揭示数据背后的奥秘。
|
2月前
|
小程序 开发者
微信小程序之网络数据请求 wx:request的简单使用
这篇文章介绍了微信小程序中如何使用wx.request进行网络数据请求,包括请求的配置、请求的格式以及如何在开发阶段关闭请求的合法检验。
微信小程序之网络数据请求 wx:request的简单使用

热门文章

最新文章