当前位置: 首页 > ops >正文

树莓派超全系列教程文档--(60)树莓派摄像头操作命令及使用其二

树莓派摄像头操作命令及使用其二

      • `rpicam-vid`
        • 编码器
        • 捕获高帧率视频
        • `libav` 与 `rpicam-vid` 集成
      • `rpicam-raw`
      • `rpicam-detect`

文章来源: http://raspberry.dns8844.cn/documentation

原文网址

rpicam-vid

rpicam-vid 可帮助您在 Raspberry Pi 设备上捕获视频。 rpicam-vid 显示预览窗口并将编码的比特流写入指定的输出。这会生成未打包的视频比特流,该比特流未包装在任何类型的容器(例如 mp4 文件)格式中。

NOTE: 如果可用, rpicam-vid 使用硬件 H.264 编码。

例如,以下命令将十秒的视频写入名为’test.h264’的文件:

$ rpicam-vid -t 10s -o test.h264

您可以使用 VLC 和其他视频播放器播放生成的文件:

$ vlc test.h264

在 Raspberry Pi 5 上,您可以通过为输出文件指定’mp4’文件扩展名直接输出为 MP4 容器格式:

$ rpicam-vid -t 10s -o test.mp4
编码器

‘rpicam-vid’ 支持运动 JPEG 以及未压缩和未格式化的 YUV420:

$ rpicam-vid -t 10000 --codec mjpeg -o test.mjpeg
$ rpicam-vid -t 10000 --codec yuv420 -o test.data

codec 选项决定输出格式,而不是输出文件的扩展名。

segment 选项将输出文件分解为片段大小的块(以毫秒为单位)。通过指定非常短(1 毫秒)的片段,这可以方便地将运动 JPEG 流分解为单个 JPEG 文件。例如,以下命令将 1 毫秒的片段与输出文件名中的计数器组合起来,为每个片段生成一个新文件名:

$ rpicam-vid -t 10000 --codec mjpeg --segment 1 -o test%05d.jpeg
捕获高帧率视频

要最大限度地减少高帧率 (> 60fps) 视频的丢帧,请尝试以下配置调整:

  • 使用 --level 4.2 将 H.264 目标级别 设置为 4.2。
  • 通过将 denoise 选项设置为 cdn_off 来禁用软件色彩降噪处理。
  • 使用 nopreview 禁用显示窗口以释放一些额外的 CPU 周期。
  • /boot/firmware/config.txt 中设置 force_turbo=1 以确保在视频捕获期间 CPU 时钟不会节流。有关更多信息,请参阅 force_turbo 文档。
  • 使用 --width 1280 --height 720 或更低的值调整 ISP 输出分辨率以实现您的帧速率目标。
  • 在 Raspberry Pi 4 上,您可以通过在 /boot/firmware/config.txt 中添加 gpu_freq=550 或更高来超频 GPU 以提高性能。有关更多详细信息,请参阅 超频文档。

以下命令演示了如何实现 1280×720 120fps 视频:

$ rpicam-vid --level 4.2 --framerate 120 --width 1280 --height 720 --save-pts timestamp.pts -o video.264 -t 10000 --denoise cdn_off -n
libavrpicam-vid 集成

rpicam-vid 可以使用 ffmpeg / libav 编解码器后端来编码音频和视频流。您可以将这些流保存到文件中,也可以通过网络传输它们。 libav 使用硬件 H.264 视频编码(如果存在)。

要启用 libav 后端,请将 libav 传递给 codec 选项:

$ rpicam-vid --codec libav --libav-format avi --libav-audio --output example.avi

rpicam-raw

rpicam-raw 直接从传感器将视频记录为原始Bayer帧。它不显示预览窗口。要将两秒钟的原始视频录制到名为 test.raw 的文件中,请运行以下命令:

$ rpicam-raw -t 2000 -o test.raw

rpicam-raw 输出完全没有格式信息的原始帧,直接一个接一个。应用程序将像素格式和图像尺寸打印到终端窗口,以帮助用户解释像素数据。

默认情况下, rpicam-raw 会将原始图像输出到一个可能非常大的文件中。使用 segment 选项将每个原始图像帧导入单独的文件,并使用 %05d directive 使每个图像帧的文件名独一无二:

$ rpicam-raw -t 2000 --segment 1 -o test%05d.raw

如果使用快速存储设备,rpicam-raw 能以 10fps 的速度将 18MB 的 1200 万像素 HQ 相机帧写入磁盘。rpicam-raw 无法将输出帧格式化为 DNG 文件;如需该功能,请使用 rpicam-still。使用 framerate 选项时,速度应低于 10,以避免丢帧:

$ rpicam-raw -t 5000 --width 4056 --height 3040 -o test.raw --framerate 8

有关原始格式的更多信息,请参阅 mode 文档。

rpicam-detect

NOTE: Raspberry Pi OS 不包含 rpicam-detect。不过,如果您安装了 已安装 TensorFlow Lite,则可以构建 rpicam-detect。有关详细信息,请参阅 rpicam-apps 构建说明。运行 meson 时不要忘记传递 Denable_tflite=enabled

rpicam-detect 显示一个预览窗口,并使用Google MobileNet v1 SSD(单发探测器)神经网络监控内容,该网络经过训练,可以使用可可数据集识别大约80类物体。 rpicam-detect 识别人、汽车、猫和许多其他物体。

每当 rpicam-detect 检测到目标对象时,它都会捕获全分辨率JPEG。然后它返回到监控预览模式。

有关模型使用的一般信息,请参阅 TensorFlow Lite对象检测 部分。例如,您可能会在外出时偷偷监视您的猫:

$ rpicam-detect -t 0 -o cat%04d.jpg --lores-width 400 --lores-height 300 --post-process-file object_detect_tf.json --object cat

上一篇 – 树莓派超全系列教程文档–(60)树莓派摄像头操作命令及使用其一
下一篇 –

http://www.xdnf.cn/news/12961.html

相关文章:

  • LeetCode Hot100刷题——合并两个有序链表
  • 电商价格监控 精准控价的关键路径
  • 【7色560页】职场可视化逻辑图高级数据分析PPT模版
  • 与时间赛跑
  • 基于TurtleBot3在Gazebo地图实现机器人远程控制
  • 论文检测器
  • Java 中 `LinkedList` 的典型应用场景
  • 人工智能100问☞第43问:什么是提示工程(Prompt Engineering)?
  • Python爬虫实战:从零构建高性能分布式爬虫系统
  • 基于Java项目的Karate API测试
  • Centos 7 服务器部署多网站
  • Keil 中设置 STM32 Flash 和 RAM 地址详解
  • 企业签名.
  • 迁移达梦数据库过程中,如何快速识别需要改写的Mapper SQL方法
  • 英语写作中“每一个”each individual、every individual、every single的用法
  • 国标GB28181设备管理软件EasyGBS楼宇网络视频实时监控系统应用解决方案
  • 条件语句 if语句 + if...else+switch语句+三元运算符
  • XXE漏洞知识
  • 将 VSCode 的快捷键设置为与 IntelliJ IDEA 类似
  • NineData数据库DevOps功能全面支持百度智能云向量数据库 VectorDB,助力企业 AI 应用高效落地
  • MeshGPT 笔记
  • YOLO 系列模型技术演进:从 YOLOv5 到 YOLOv11 的深度剖析
  • 禁用思科锐捷设备分页功能
  • (Note)基于Pytorch手搓RNN参考
  • 淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
  • MacOS 安装git
  • Unit 1 深度强化学习简介
  • 深度学习-1.神经网络理解
  • 盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
  • 大端序和小端序以及网络字节序的关系