高通 Linux 示例应用程序:物联网应用中用于 AI 推理和视频的构建模块
为了让机器人成为我们社会中更重要的一部分,它们必须能够智能地与动态环境进行交互。实现这一目标的部分挑战是整合来自多个摄像头和传感器的大量数据。预先编写的Linux®软件模块使这项任务变得更容易。本文来自高通公司,探讨了AI推理和视频在物联网和机器人应用中的示例应用。
多摄像头流媒体
命令行应用程序gst-multi-camera-example展示了如何同时从两个摄像头传感器进行流媒体传输。它可以将视频流进行并排合成以在显示设备上显示,或者对视频流进行编码并保存为文件。
应用管道如下所示:
该应用程序支持两种配置:
- 组成与显示 – qtimmfsrc 插件从摄像头 0 和摄像头 1 捕获两个摄像头传感器的数据。qtivcomposer 进行合成,然后 waylandsink 将视频流并排显示在屏幕上。
- 视频编码 – qtimmfsrc 插件从摄像头 0 和摄像头 1 捕获两个摄像头传感器的数据,并将其传递给 v4l2h264enc 插件。该插件对摄像头流进行编码和压缩为 H.264 格式,然后分别通过 h264parse 和 mp4mux 插件对其进行解析和多路复用。最后,这些流被传递给 filesink 插件,并保存为文件。
以下是第一个配置输出的示例:右侧图像为单色,因为开发套件中的第二个摄像头传感器是单色的。
您什么时候会使用这个应用程序?
gst-multi-camera-example 是一个用于从两个摄像头传感器捕获数据的构建模块,可以选择将视频流合成并显示,或者对视频流进行编码并存储到文件中。您可以将此示例应用作为自己摄像头捕获/编码应用程序(包括行车记录仪和立体摄像头)的基础。
视频墙 – 多通道视频解码与显示
命令行应用程序gst-concurrent-videoplay-composition支持对AVC编码视频的并发解码和播放。该应用程序对来自文件或网络(例如IP摄像头)的多个视频流进行合成,以视频墙的形式显示。
该应用程序可以将多个(例如4个或8个)视频文件作为输入,解码所有压缩视频,对其进行缩放,并将它们组合为一个视频墙。该应用程序至少需要一个输入视频文件,格式为MP4并使用AVC编解码器。
应用管道对于4个通道看起来是这样的:
每个通道使用插件执行以下处理:
- 使用 filesrc 从文件中读取压缩视频数据。
- 使用 qtdemux 对文件进行解复用。
- 使用 h264parse 解析 H.264 视频流。
- 使用 v4l2h264dec 解码流。
来自所有通道的解码流随后使用 qtivcomposer 进行合成,并通过 waylandsink 显示。
以下是使用应用程序gst-concurrent-videoplay-composition在4个视频流上的示例:
您什么时候会使用此应用程序?
使用 gst-concurrent-videoplay-composition,您可以解码多个压缩视频流,然后将它们组合成一个视频墙;例如,在零售空间和数字标牌中使用。作为视频监控的边缘设备,您可以捕获来自多个IP摄像头的输入,并在单个屏幕上显示。在视频会议应用中,您可以处理并显示来自多个通话参与者的画面,每位参与者都会传输一个视频流。
下一步
您可以在 GitHub 上获取这些应用程序或完整的 Qualcomm Intelligent Multimedia SDK(高通智能多媒体 SDK)。然后,您可以开始将它们集成到自己的应用程序中。
文章标签