AidStream
简介
AidStream 基于管道 (pipeline) 的概念,开发者可通过创建预定义的流数据处理 pipeline,将自定义处理任务 (如:AI 模型推理) 及其它内建的任务 (如:视频编解码,视频推拉流,视频流存储,等) 进行组合,实现完整的数据处理链。
AidStream通用流程如下图所示:

支持情况
输入流 和 输出流 可支持的数据类型不同,当 输入流 与 输出流 的组合在 AidStream 的支持范围内时,才可成功构建 pipeline。目前支持的 输入流 与 输出流 的组合如下表所示:
| 输入 / 输出 | RTSP (H.264) | RTSP (H.265) | File | Screen |
|---|---|---|---|---|
| RTSP (H264) | ✅ | ❌ | ✅ | ❌ |
| RTSP (H265) | ✅ | ✅ | ✅ | ❌ |
| File | ✅ | ❌ | ✅ | ✅ |
| MIPI Camera | ✅ | ❌ | ✅ | ✅ |
| USB Camera | ✅ | ❌ | ✅ | ✅ |
- RTSP (H264):H.264编码的 RTSP 流
- RTSP (H265):H.265编码的 RTSP 流
- File:本地的视频文件
- MIPI Camera:MIPI 相机
- USB Camera:USB 相机
- Screen:设备的显示器
通用示例参考
系统版本:ubuntu2204 硬件型号:6490-932
bash
gst-launch-1.0 rtspsrc \
location=rtsp://admin:aidlux123@192.168.111.236:554/h264/ch1/main/av_stream \
! rtph264depay \
! h264parse \
! v4l2h264dec capture-io-mode=5 output-io-mode=2 \
! qtivtransform \
! video/x-raw,format=RGB \
! qtivtransform \
! video/x-raw\(memory:GBM\),format=NV12,colorimetry=bt601 \
! v4l2h264enc capture-io-mode=2 output-io-mode=5 \
! h264parse \
! rtspclientsink location=rtsp://192.168.111.115:8554/test-111系统版本:ubuntu2404 硬件型号:6490-932
bash
gst-launch-1.0 \
rtspsrc location=rtsp://admin:aidlux123@192.168.111.236:554/h264/ch1/main/av_stream latency=200 protocols=tcp \
! rtph264depay \
! h264parse \
! v4l2h264dec capture-io-mode=4 output-io-mode=4 \
! video/x-raw,format=NV12,colorimetry=bt709 \
! qtivtransform engine=3 \
! video/x-raw,format=RGB,colorimetry=bt709 \
! qtivtransform engine=3 \
! video/x-raw,format=NV12,colorimetry=bt709 \
! v4l2h264enc capture-io-mode=4 output-io-mode=4 \
! h264parse \
! rtspclientsink location=rtsp://192.168.111.115:8554/test-111系统版本:FV04 硬件型号:8550-972
H.264
bash
gst-launch-1.0 \
rtspsrc location=rtsp://admin:aidlux123@192.168.111.236:554/h264/ch1/main/av_stream \
! rtph264depay \
! h264parse \
! qtic2vdec \
! qtivtransform engine=2 \
! video/x-raw,format=RGB \
! qtivtransform engine=2 \
! qtic2venc \
! queue \
! h264parse \
! rtspclientsink protocols=tcp location=rtsp://192.168.111.115:8554/test-811纯四合一
bash
export WAYLAND_DISPLAY=wayland-1 && export XDG_RUNTIME_DIR=/run/user/root && gst-launch-1.0 -e qtivcomposer name=mixer \
sink_0::position="<0, 0>" sink_0::dimensions="<1920, 1080>" \
sink_1::position="<1920, 0>" sink_1::dimensions="<1920, 1080>" \
sink_2::position="<0, 1080>" sink_2::dimensions="<1920, 1080>" \
sink_3::position="<1920, 1080>" sink_3::dimensions="<1920, 1080>" \
! video/x-raw\(memory:GBM\),format=NV12,width=3840,height=2160 ! qtic2venc ! h264parse config-interval=1 ! rtspclientsink protocols=tcp location=rtsp://192.168.111.115:8554/test-811 \
rtspsrc location=rtsp://admin:aidlux123@192.168.111.236:554/h265/ch1/main/av_stream latency=100 ! rtph264depay ! h264parse config-interval=-1 ! qtic2vdec ! qtivtransform engine=2 ! mixer. \
rtspsrc location=rtsp://admin:aidlux123@192.168.111.236:554/h265/ch1/main/av_stream latency=100 ! rtph264depay ! h264parse config-interval=-1 ! qtic2vdec ! qtivtransform engine=2 ! mixer. \
rtspsrc location=rtsp://admin:aidlux123@192.168.111.236:554/h265/ch1/main/av_stream latency=100 ! rtph264depay ! h264parse config-interval=-1 ! qtic2vdec ! qtivtransform engine=2 ! mixer. \
rtspsrc location=rtsp://admin:aidlux123@192.168.111.236:554/h265/ch1/main/av_stream latency=100 ! rtph264depay ! h264parse config-interval=-1 ! qtic2vdec ! qtivtransform engine=2 ! mixer.系统版本:FV04 硬件型号:8550-850
bash
export WAYLAND_DISPLAY=wayland-1 && export XDG_RUNTIME_DIR=/run/user/root && GST_DEBUG=3 gst-launch-1.0 -e \
rtspsrc location=rtsp://admin:aidlux123@192.168.111.236:554/h265/ch1/main/av_stream ! rtph265depay ! h265parse ! qtic2vdec ! \
qtivtransform engine=2 ! video/x-raw\(memory:GBM\),format=NV12,width=3840,height=2160,framerate=20/1 ! qtivtransform engine=2 ! \
queue ! tee name=split \
split. ! queue ! qtivcomposer name=mixer1 ! queue ! video/x-raw,format=NV12,width=3840,height=2176,framerate=20/1 ! qtic2venc ! queue ! h265parse ! mp4mux ! filesink location=./3840_video_4k_20fps.mp4 sync=false \
split. ! queue ! qtimlvconverter name=qmlconvert_1 ! qtimlqnn name=qtimlqnn_1 model=./640_yolov8s_qcs8550_w8a8.qnn228.aarch64.gcc9_4.so backend=/usr/lib/libQnnHtp.so ! \
qtimlvdetection threshold=75.0 results=10 module=ml-vdetection-yolov8 labels=./yolov8.labels ! \
video/x-raw\(memory:GBM\) ! capsfilter name=ml_capsfilter ! mixer1.