为了让机器人成为我们社会更重要的一部分,它们必须能够智能地与动态环境交互。实现这一目标的部分挑战是整合来自众多摄像机和传感器的大量数据。预先编写的 Linux® 软件块使这项任务变得更容易。Qualcomm 的这篇文章探讨了人工智能推理和视频在物联网和机器人应用中的示例应用。
多摄像机流媒体
命令行应用程序 gst-multi-camera-example 演示了同时从两个摄像头传感器进行流式传输。它可以将视频流并排组合显示在显示设备上,也可以将视频流编码并存储到文件中。
应用程序管道如下所示:

该应用程序支持两种配置:
- 合成和显示——摄像头 0 和摄像头 1 上的 qtimmfsrc 插件从两个摄像头传感器捕获数据。qtivcomposer 执行合成,然后 waylandsink 在屏幕上并排显示流。
- 视频编码——摄像头 0 和摄像头 1 上的 qtimmfsrc 插件从两个摄像头传感器捕获数据并将其传递给 v4l2h264enc 插件。该插件将摄像机流编码并压缩为 H.264 格式,然后分别使用 h264parse 和 mp4mux 插件对其进行解析和多路复用。最后,流被交给 filesink 插件,将其保存为文件。
这是第一个配置的输出示例:右侧图像是单色的,因为开发套件上的第二个摄像头传感器是单色的。

您何时会使用此应用程序?
gst-multi-camera-example 是一个从两个摄像头传感器捕获数据的构建模块,可选择合成和显示视频流,或将视频流编码并存储为文件。您可以将此示例应用程序作为自己的摄像头捕获/编码应用程序(包括仪表盘摄像头和立体摄像头)的基础。
视频墙–多通道视频解码和显示
命令行应用程序 gst-concurrent-videoplay-composition 为 AVC 编码视频的并发视频解码和播放提供了便利。该应用程序可对来自文件或网络(如 IP 摄像机)的多个视频流进行合成,以便作为电视墙显示。
应用程序可将多个(如 4 个或 8 个)视频文件作为输入,解码所有压缩视频,缩放它们并将它们合成为视频墙。应用程序至少需要一个输入视频文件,格式为 AVC 编解码器的 MP4。
对于 4 个通道,应用程序流水线如下所示:

每个通道使用插件执行以下处理:
- 使用 filesrc 从文件读取压缩视频数据。
- 使用 qtdemux 对文件进行解复用。
- 使用 h264parse 解析 H.264 视频流。
- 使用 v4l2h264dec 解码流。
然后使用 qtivcomposer 将来自所有通道的解码流组合在一起并使用 waylandsink 显示。
以下是在 4 个视频流上使用应用程序 gst-concurrent-videoplay-composition 的示例:

您何时会使用此应用程序?
使用 gst-concurrent-videoplay-composition,您可以解码多个压缩视频流,然后将它们组合成视频墙;例如,在零售空间和数字标牌中。作为视频监控的边缘盒,您可以捕捉多个 IP 摄像机的输入,并将其显示在一个屏幕上。在视频会议应用中,您可以处理和显示多人通话时的视频流,每个与会者都可以播放一段视频。
后续步骤
您可以在 GitHub 上获取这些应用程序或整个 Qualcomm Intelligent Multimedia SDK 。然后您就可以开始将它们合并到您自己的应用程序中。
