- 集成您自己的模型、媒体或逻辑
- 针对特定的运行时目标(CPU、GPU、NPU)优化性能
- 添加新功能或修改现有功能以匹配您的用例
- 使用 GStreamer 试验不同的管线配置
- 从可运行的基线出发,构建可用于生产的应用程序
- 完成设备设置。
- 确保 IQ‑9075 设备正在运行 Ubuntu 操作系统。
- 设置 Wi-Fi 并通过 SSH 访问 IQ-9075 EVK 设备。
- 如果尚未安装 PPA 软件包,请执行安装所需软件包步骤。
安装所需软件包
要安装所需的预构建软件包,请参阅🔗安装所需软件包章节,并运行提供的”Install PPA Packages 脚本”。从源码构建
按照以下步骤下载、配置和编译示例应用程序源代码。这样您就可以按需修改应用程序行为并集成自己的逻辑。 安装以下软件包以下载源代码:构建依赖项
运行以下命令获取源代码编译所需的插件:下载源代码
下载示例应用程序源代码:示例应用程序代码讲解
我们以 gst-ai-usb-camera-app 为例进行代码讲解。这是 Qualcomm 开发的一个基于 GStreamer 的应用程序,用于演示如何将 USB 摄像头用于不同用途:- 在显示器上显示实时视频
- 将视频保存到文件
- 通过 RTSP 流式传输视频
- 使用 AI 模型运行目标检测
详情
头文件和常量:- GLib:实用函数和主循环
- GStreamer:多媒体框架
- Video4Linux2(V4L2):访问 USB 摄像头
- JSON-GLib:从 JSON 读取配置
- GstCameraAppCtx
此结构体保存应用程序的状态:
- GstAppOptions
此结构体保存来自配置文件的用户定义选项:
示例配置:
此函数遍历 /dev/video0 到 /dev/video63,以查找有效的 USB 摄像头。
此函数根据输出类型(显示、文件或 RTSP)构建管线。 示例 1:实时预览
v4l2src → capsfilter → waylandsink
代码:
v4l2src → capsfilter → qtivtransform → v4l2h264enc → h264parse → filesink
代码:
v4l2src → capsfilter → qtivtransform → v4l2h264enc → h264parse → qtirtspbin 目标检测管线: 函数:create_pipe()
此函数构建一个更复杂的、基于 AI 的目标检测管线。 管线流程:
v4l2src → capsfilter → tee → qtivcomposer → waylandsink 代码:
- 预处理:qtimlvconverter
- 推理:qtimltflite、qtimlsnpe 或 qtimlqnn
- 后处理:qtimlvdetection
- 叠加:qtivcomposer
- 初始化应用程序上下文
- 读取配置文件
- 查找 USB 摄像头
- 构建管线
- 运行主循环
编译示例应用工具
编译
此示例演示如何构建目标检测应用程序。注意: 每个示例应用都需要单独编译。
运行编译好的示例应用程序
- 设置所需的环境变量,将 Wayland 应用程序连接到当前的用户会话。
- 对于 Ubuntu Desktop,运行以下命令以创建缺失的符号链接(针对 TensorFlow Lite C 库)。
- 使用以下命令运行
gst-ai-usb-camera-app应用程序:
- 要显示可用的帮助选项,请在 SSH shell 中运行以下命令:
设置 GStreamer 用于控制调试消息详细程度和类别的 GST_DEBUG 环境变量。
- 要停止该用例,请按 CTRL + C

