qrb_ros_video 示例应用是一个 ROS 包,可在 Qualcomm 机器人平台上提供硬件加速的视频处理。它使用 Qualcomm 视频处理单元 (VPU) 将原始 YUV 帧编码为 H.264 或 H.265 流,并将这些流解码回原始帧。缓冲区通过 qrb_ros_transport 作为 DMA 缓冲区传递,因此帧传递无需拷贝,并且编码器可直接从 qrb_ros_camera 接受输入。
注意有关更多信息,请参见 qrb_ros_video GitHub 仓库。
qrb_ros_video 的流水线流程
encoder_launch.py 和 decoder_launch.py 启动文件启动两个独立的可组合节点容器,每个容器在各自的命名空间中运行。编码器容器使用 ImageReader 读取原始帧,对其进行编码,并使用 CompressedWriter 将压缩流写入文件。解码器容器使用 CompressedReader 读取压缩流,对其进行解码,并使用 ImageWriter 写入帧。如果你重映射编码器的输入,编码器也可以直接从 qrb_ros_camera 接受帧。
图:qrb_ros_video 流水线
qrb_ros_video 流水线中使用的 ROS 节点
qrb_ros_video 流水线中使用的 ROS topic
注意每个节点将其端点声明为相对名称
input 和 output。启动文件将它们重映射为上述名称,并将每个节点放置在 recording_ns 或 playback_ns 命名空间中,因此 /input 和 /output 在运行时不存在。运行 ros2 topic list 查看有效名称。qrb_ros_video 的 ROS 参数
表:编码器参数
表:解码器参数
前提条件
- 你已根据 设置运行示例应用的环境 设置设备。
开箱即用运行 qrb_ros_video
构建并运行 qrb_ros_video
试一试
试一试
1
在主机上克隆 qrb_ros_video
2
在主机上构建 qrb_ros_video
3
将 qrb_ros_video 推送到设备
SSH Session
4
在设备上运行 qrb_ros_video
按照 开箱即用运行 qrb_ros_video 在设备上运行
qrb_ros_video。限制
- 硬件加速的编码和解码需要 Qualcomm VPU,因此设备上必须启用视频叠加层。
- 支持的编解码器格式为 H.264 和 H.265。支持的输入像素格式为 NV12 和 P010。

