跳到主要内容

源码编译

前面的 Demogst-ai-*)和 Python 应用 使用的是 apt 预编译的 GStreamer 插件。如果你需要修改插件源码(如定制后处理逻辑、添加自定义模型支持)或写自己的 C/C++ 推理程序,可以在设备上直接编译。

Hello-QIM:最小 C/C++ 示例

Hello-QIM 是一个最小可运行的 GStreamer 应用,展示如何用 C++ 创建 pipeline 并获取摄像头帧。适合作为自定义应用的起点。

下载源码

radxa@airbox$
git clone https://github.com/quic/sample-apps-for-qualcomm-linux
cd sample-apps-for-qualcomm-linux/Hello-QIM

准备源文件

radxa@airbox$
cp main.cc gst-appsink.cc

创建 Makefile

CC = g++
CFLAGS = -Wall -g $(shell pkg-config --cflags gstreamer-1.0)
LDFLAGS = $(shell pkg-config --libs gstreamer-1.0)

all: gst-appsink

gst-appsink: gst-appsink.o
$(CC) -o $@ $^ $(LDFLAGS)

gst-appsink.o: gst-appsink.cc
$(CC) $(CFLAGS) -c $<

clean:
rm -f gst-appsink gst-appsink.o

编译并运行

radxa@airbox$
make
./gst-appsink -w 1280 -h 720

预期输出:

Hello-QIM: Success creating pipeline and received camera frame.

如果设备没有连接摄像头,pipeline 创建仍然会成功,只是收不到帧。

编译 QIM 插件(进阶)

如果需要修改 GStreamer 插件本身(而不仅仅是调用插件),可以从源码编译全部插件。

安装编译依赖

radxa@airbox$
sudo apt install -y \
qcom-adreno-dev \
libgstreamer1.0-qcom-sample-apps-utils-dev

下载并编译

radxa@airbox$
cd ~
apt source gst-plugins-qti-oss
cd gst-plugins-qti-oss-*
mkdir build && cd build

cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib/aarch64-linux-gnu \
-DCMAKE_INSTALL_BINDIR=bin \
-DCMAKE_INSTALL_SYSCONFDIR=/etc \
-DGST_VERSION_REQUIRED=1.24.0 \
-DENABLE_GST_PLUGIN_BASE=ON \
-DENABLE_GST_ML_PLUGINS=ON \
-DENABLE_GST_VIDEOPROC_PLUGINS=ON \
-DENABLE_GST_SAMPLE_APPS=ON \
..

make -j$(nproc)
sudo make install

编译安装约 34 个插件动态库(libgstqtimltflite.solibgstqtimlvclassification.so 等)。

排障

CMake 找不到 GStreamer

确认 GStreamer 开发包已安装:

radxa@airbox$
pkg-config --modversion gstreamer-1.0

如果提示找不到:

radxa@airbox$
sudo apt install libgstreamer1.0-dev

    您需要登录 GitHub 才能发表评论。如果您已登录,请忽略此消息。

    Radxa-docs © 2026 by Radxa Computer (Shenzhen) Co.,Ltd. is licensed under CC BY 4.0