linux - 在 pi 上流式传输视频的更有效方式

标签 linux unix pi motion

我是一名冲浪者/风筝冲浪者,我住在阿联酋。我正在尝试建立一个基本的气象站,可以为偏远地区的地点提供风和网络摄像头的详细信息。我使用的是 pi4 1GB,我几乎准备好在现场安装该站。我的技能相当基础,但这就是我的处境:

  1. pi4 运行 ddns,因此它的动态地址可以通过端口转发远程访问 - 完成
  2. weewx 将风力和天气信息从传感器上传到 windguru - 这正在按计划进行,将在本周末最后一部分到达时完成
  3. motion eye 提供摄像头 1 和摄像头 2 的视频流 - 从 LAN 外部完成并可见
  4. 运行 apache/mysql/wordpress 为人们提供一个基本界面,以便人们从他们的浏览器中检查信息 - 快完成了。

现在,关于第 3 点......我注意到这会削弱圆周率。运行 nmon 我可以看到每个摄像头都使用了每个摄像头 110% 的 CPU。这是最小的视频流设置和 1 fps 的速率。在两个摄像头都运行的情况下,几乎无法通过 vnc 或 ssh 访问 pi,而且它变得非常热 - 我需要在它卡住时不断重新启动它。

我不需要直播,我很乐意每 30 秒看到一张图片。即使我禁用视频流并使用静止图像捕获,“运动”仍然会占用每台摄像机 110% 的 CPU 来监控它。我可以使用更好的软件吗?

我尝试编辑 sudo nano/etc/motion/motion.conf,希望降低 motion 用于初始化设备的 fps,但这不会影响 CPU 使用率。

需要注意的重要一点,我的相机是通过 IP 连接的,而运动是通过 RTSP://连接到设备的

如有任何建议,我们将不胜感激。

谢谢, 肖恩。

最佳答案

尝试使用 UV4L 和 RPi_Web_Cam_Interface 作为 Motion 的替代品。 RPIWCI 在这个网站上有很好的记录 https://elinux.org/RPi-Cam-Web-Interface 来自 RPIWCI 的预览 mjpeg 流可以在 URL http://YourPiIP:Port/cam_pic_new.php 找到。 您可以使用位于 yourPiIP:80/html/的预览/控制页面底部的“相机控制”栏设置质量和大小(将端口更改为您的转发端口) 还有机会使用延时功能,它可能提供不同的路径来获取 1fps jpeg 流,我还没有尝试过。 我目前正在将预览以 1024x720 ~15fps 压缩质量 30% 流式传输到本地网络上的多个设备,而 Pi4 仅使用了大约 10% 的 CPU。

其他评论...... 您是否尝试过将 Pi 上的 GPU 内存拆分设置为 1024 您是否也尝试过在 linux 提示符下使用命令“top”来查看哪些进程正在使用所有 CPU,raspimjpeg 在我的 Pi4 上使用了 2% 到 3%。

希望这对您有所帮助,Heath。

关于linux - 在 pi 上流式传输视频的更有效方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58263681/

相关文章:

c - 这段代码如何高精度地计算圆周率?

linux - 当我尝试gcc make linux-headers -`uname -r`时遇到错误

linux - shell 脚本 (AIX) : Extracting OS and browser information from user agent string

linux - '-' 运算符在 Linux 中实际上做了什么?

linux - 如何使 Unix 二进制文件自包含?

perl - 将 Perl 中的 Pi 舍入到小数点后第 100 位?

python - 在 jupyter notebook 的单元格中使用 sudo

linux - 如何根据第二个文本文件对txt文件中的行进行排序

linux - Makefile 在文件夹上循环并动态获取名称

python - 为什么我的 python 程序没有收敛到 pi?