跳到主要内容

AIBox QC6490 产品手册

产品概述

AIBox QC6490是一款基于高通 QCS6490平台研发的智能边缘计算终端,采用八核高性能处理器(1+3+4架构),大核主频高达2.7GHz。集成高性能图形引擎和综合算力达14TOPS的AI引擎,支持5G NA sub-6G,Wi-Fi 6e (2.4G/5G/6GHz),BT5.3/BLE,GNSS等无线通信技术(5Gb版本和Wi-Fi版本略有差异)。AIBox QC6490智能计算终端拥有丰富的工业接口,包括USB3.0/USB2.0/USB-C/ HDMI/ Audio/ RJ45按键等,可广泛应用于工业控制,智能制造,安防监控,智能机器人,数字多媒体等领域。

AIBox QC6490基于QCS6490 SoC,支持多种操作系统,包括Ubuntu/Android/AidLux(Ubuntu+Android)。 不同系统的支持,请咨询官方对应的销售渠道。

规格参数

Function 功能Parameter 参数
CPU处理器Qualcomm® QCS6490
Kryo™ CPU 670 ,Octa-core,
1 x A78 @ 2.7GHz
3 x A78 @ 2.4GHz
4 x A55 @1.9 GHz
图形处理器Adreno 643
操作系统Ubuntu/Android/AidLux(Ubuntu+Android)
SIM卡4FF(保留,5G版)
AudioLine in, 3.5mm Interface; Line out, 3.5mm Interface
SD卡支持
RTC支持,推荐型号CR1632X(120mAh@3V)
MIPI-DSI 接口内置板载,兼容树莓派DSI 4 lane接口,支持TP(已验证树莓派7寸)
40 PIN 连接器1内置板载,兼容树莓派接口(定义见后描述) ,3.3V电压域,见表2
40 PIN 连接器2PIN脚定义见表3描述
存储配置RAM: LPDDR4x, 6GB
ROM: UFS, 128GB
DCIN供电DC12V~24V, 宽压输入
无线连接Wi-Fi: 802.11ax, 2.4G/5G DBS, 2*2 MIMO
BT: 5.1
机身尺寸135 * 115 * 55 mm
工作温度-20 °C ~ +70 °C

系统框图

alt text

接口介绍

AIBox QC6490 提供两种包装方式,终端盒子方式和 PCBA 方式,根据应用场景和测试需求自主订购。部分接口预留在内部 PCB 板上,包括 MIPI DSI, MIP CSI,GPIO, 风扇及调试接口。

终端外部接口

alt text

表1.终端对外接口

接口序号信号定义功能描述
1DC_IN设备电源输入,电压范围:12V~24V,典型值12V@5A
2LINE OUT音频输出
3LINE IN音频输入
4USB3.02路USB3.0接口
5HDMI_OUTHDMI信号输出, 分辨率/帧率 max: 1080P/120fps
6USB3.02路USB3.0接口
7HDMI_INHDMI信号输入,分辨率/帧率 max: 4K/30fps
8WANRJ45网口
9LANRJ45网口
10LANRJ45网口
11LANRJ45网口
12WIFI RF2根Wi-Fi天线接口
13USB2.0USB2.0接口
14TYPE-CUSB TYPE-C接口
15POWER开机键;设备上电自动开机
16Volume +音量增加键
17Volume -音量减小键
18TFMicro SD 卡槽
19Power LED系统电源指示灯

内部板载接口

alt text

表2.内部板载接口

接口序号信号定义功能描述
20B2B ConnectorB2B 连接器50PIN 内部GPIO口连接
21RTC connector系统RTC时钟电池接口, 推荐CR1632X(120mAh@3V)
22Qualcomm 40PIN高通40PIN通用接口(包含UART, CAN, I2S等接口)
23Force boot强制下载端口(紧急情况下使用)
24Fan风扇接口, 详见下表6
25DSI22PIN DSI接口信号,详见下表5
26Raspberry 40PIN树莓派显示屏40PIN功能接口(包含GPIO, UART等接口)
27Raspberry Camera树莓派22PIN Camera连接器,连接Camera,详见下表5
28Raspberry Camera树莓派22PIN Camera连接器,连接Camera,详见下表5
29Camera connector30pin C-PHY 接口, PIN脚描述见下表7

表3.树莓派40PIN接口信号

接口序号信号定义功能描述(此接口所有GPIO信号为3.3V电平)
13V33.3V电源
25V5V 电源
3GPIO00可以配置为I2C需与GPIO1组合/普通GPIO
45V5V 电源
5GPIO01可以配置为I2C需与GPIO00组合/普通GPIO
6GNDGround
7GPIO76普通GPIO或PWM(GCC_GP1_CLK_MIRB)
8UART_TXRow 2, Cell 3
9GNDGround
10UART_RX可以配置为QUP1_SE3 UART or 普通GPIO 15
11GPIO129普通GPIO
12I2S0_SCKI2S0 接口,也可配置为普通GPIO
13GPIO62可以配置为QUP1_SE7 UART/普通GPIO
14GNDGround
15GPIO63普通GPIO
16GPIO35普通GPIO
173V33.3V电源
18GPIO41可配置为 SPI or UART+GPIO(不要全功能UART
时) or I2C+GPIO or GPIO
19QUP1_SE4_SPI_MOSIQUP1_SE4,可以配置为 SPI or UART+GPIO(不要
全功能UART时) or I2C+GPIO or GPIO
20GNDGround
21QUP1_SE4_SPI_MISOQUP1_SE4,可以配置为 SPI or UART+GPIO(不要
全功能UART时) or I2C+GPIO or GPIO
22GPIO541.普通GPIO.如果DSI TP不使用,可配置为UART
(需和GPIO55组合);
2. QUP1_SE4_SPI CS2
23QUP1_SE4_SPI_SCLKQUP1_SE4,可以配置为 SPI or UART+GPIO(不要
全功能UART时) or I2C+GPIO or GPIO
24QUP1_SE4_SPI_CS0QUP1_SE4,可以配置为 SPI or UART+GPIO(不要
全功能UART时) or I2C+GPIO or GPIO
25GNDGround
26GPIO551.普通GPIO,如果DSI TP不使用,可配置为UART
(需和GPIO54组合)
2. QUP1_SE4_SPI CS1
27ID_SD预留QUP0_SE2_I2C,可配置为普通GPIO
28ID_SC预留QUP0_SE2_I2C,可配置为普通GPIO
29GPIO34普通GPIO
30GNDGround
31GPIO42普通GPIO
32GPIO77普通GPIO,GCC_GP2_CLK_MIRB
33GPIO78普通GPIO GCC_GP3_CLK_MIRB
34GNDGround
35I2S0_WSI2S0 接口,也可配置为普通GPIO
36GPIO43普通GPIO
37GPIO40普通GPIO
38I2S0_DATA0I2S0 接口,也可配置为普通GPIO
39GNDGround
40I2S0_DATA1I2S0 接口,也可配置为普通GPIO

表4.通用40PIN接口信号

接口序号信号定义功能描述(LPIGPIO 均可配置为EGPIO使用)
1GPIO36QUP1_SE1,可以配置为 SPI or UART+GPIO(不要全
功能UART时) or I2C+GPIO or GPIO,目前
GPIO36/GPIO37兼容配置为RTC INT1/INT2。不需
要RTC功能时,调整R1821-R1822/R1823-R1834即可
还原为全功能QUP
21V81.8V电源对外供电,只建议用作IO口的上拉电源
3GPIO37QUP1_SE1,可以配置为 SPI or UART+GPIO(不要全
功能UART时) or I2C+GPIO or GPIO,目前
GPIO36/GPIO37兼容配置为RTC INT1/INT2。不需
要RTC功能时,调整R1821-R1822/R1823-R1834即可
还原为全功能QUP
4GNDGround
5GPIO38QUP1_SE1,可以配置为 SPI or UART+GPIO(不要全
功能UART时) or I2C+GPIO or GPIO,目前
GPIO36/GPIO37兼容配置为RTC INT1/INT2。不需
要RTC功能时,调整R1821-R1822/R1823-R1834即可
还原为全功能QUP
6LPI_I2S1_CLKLPI I2S AUDIO INTERFACE 1 ,也可配置为DMIC1
Interface
7GPIO39QUP1_SE1,可以配置为 SPI or UART+GPIO(不要全
功能UART时) or I2C+GPIO or GPIO,目前
GPIO36/GPIO37兼容配置为RTC INT1/INT2。不需
要RTC功能时,调整R1821-R1822/R1823-R1834即可
还原为全功能QUP
8LPI_I2S1_WSLPI I2S AUDIO INTERFACE 1 ,也可配置为DMIC1
Interface
9GNDGround
10LPI_I2S1_DATA0LPI I2S AUDIO INTERFACE 1 ,也可配置为DMIC2
Interface
11GPIO56QUP1_SE6,可以配置为 SPI or UART+GPIO(不要全
功能UART时) or I2C+GPIO or GPIO
12LPI_I2S1_DATA1LPI I2S AUDIO INTERFACE 1 ,也可配置为DMIC2
Interface
13GPIO57QUP1_SE6,可以配置为 SPI or UART+GPIO(不要全
功能UART时) or I2C+GPIO or GPIO
14GNDGround
15GPIO58QUP1_SE6,可以配置为 SPI or UART+GPIO(不要全
功能UART时) or I2C+GPIO or GPIO
16VREG_L8CL8C sensor 1V8 Power, MAX 15mA
17GPIO59QUP1_SE6,可以配置为 SPI or UART+GPIO(不要全
功能UART时) or I2C+GPIO or GPIO
18LPI_I2C2_SCLLPI_I2C2 for Sensor
19LPI_I2C0_SCLLPI_I2C0 for Sensor
20LPI_I2C2_SDALPI_I2C2 for Sensor
21LPI_I2C0_SDALPI_I2C0 for Sensor
22LPI_I2C1_SCLLPI_I2C1 for sensor
23PM7250B_GPIO11PMU7250B GPIO LV,预留了控制QCA8337供电的电
路,通过R1820电阻可断开对外输出
24LPI_I2C1_SDALPI_I2C1 for sensor
25PM7250B_GPIO12PMU7250B GPIO LV
26LPI_GPIO155LPI_GPIO155可以配置成LPI_I2S2
27DEBUG_UART_TX可配置为普通GPIO,默认作为debug串口用,也可
以作为普通串口使用
28VOUT_5V5V电源对外输出,电流不要超过500mm
29DEBUG_UART_RX可配置为普通GPIO,默认作为debug串口用,也可
以作为普通串口使用
30LPI_GPIO154LPI_GPIO154 可以配置成LPI_I2S2
31LPI_DMIC3_CLKDMIC3 INTERFACE
32PM7325_ADC_AMUX1_GPIO02ADC IN_PUT 通道1
33LPI_DMIC3_DATADMIC3 INTERFACE可以配置成LPI_I2S2
34GNDGround
35GNDGround
36PM7325_ADC_AMUX1_GPIO02ADC IN_PUT 通道2
37CAN_LCAN 总线接口
38GNDGround
39CAN_HCAN 总线接口
40PWM_OUTPWM输出,目前预留给风扇使用

表5.CSI接口(Raspberry D-PHY接口适用)

接口序号信号定义功能描述
1GNDGround
2CAM1_D0_NMIPI DATA LAN0 N
3CAM1_D0_PMIPI DATA LAN0 P
4GNDGround
5CAM1_D1_NMIPI DATA LAN1 N
6CAM1_D1_PMIPI DATA LAN1 P
7GNDGround
8CAM1_CLK_NMIPI CLK N
9CAM1_CLK_PMIPI CLK P
10GNDGround
11CAM1_D2_NMIPI DATA LAN2 N
12CAM1_D2_PMIPI DATA LAN2 P
13GNDGround
14CAM1_D3_NMIPI DATA LAN3 N
15CAM1_D3_PMIPI DATA LAN3 P
16GNDGround
17CAM_GPIOCamera Power On
18CAM_LED ENLED EN
19GNDGround
20SCL0Camera I2C SCL0
21SDA0Camera I2C SDA0
22+3.3VPower 3.3V

表6.风扇接口

接口序号信号定义功能描述
15VPower 5V
2PWMPWM信号输入
3//
4GNDGround

表7.C-PHY接口

PINSignal DefinitionPINSignal Definition
1DGND16AFVDD-2V8
2CS1_C217CCI_SCL
3CS1_B218CCI_SDA
4CS1_A219CAM_RST
5DGND20PWDN
6CS1_C121AGND
7CS1_B122DVDD_1V1
8CS1_A123VSYNC
9DGND24AGND
10CS1_C025AVDD-2V9
11CS1_B026DOVDD_1V8
12CS1_A027DGND
13DGND28DVDD_1V1
14DGND29DVDD_1V1
15MCLK30DGND

表8.状态灯

LED状态颜色频率
电源上电常亮
待机绿常亮
WIFI在网常亮
搜网慢闪(1Hz)
数据传输快闪(3Hz)
5G在网绿常亮
搜网绿慢闪(1Hz)
数据传输绿快闪(3Hz)
5G&WIFI同时在网常亮
同时搜网慢闪(1Hz)
数据传输快闪(3Hz)

射频参数

AIBox QC6490产品支持Wi-Fi only版本和5G+Wi-Fi版本。不同版本天线配置不同。

表9.Wi-Fi射频参数

参数特性
电源上电
参数特性
天线类型外部SMA天线,2根
阻抗50Ω
频率范围2.4GHz
802.11b/g/n/ax(20M):2412-2472MHz
802.11n/ax(40M):2422-2462MHz
5GHz
802.11a/n/ac/ax(20M):5180-5825MHz
802.11n/ac/ax(40M):5190-5795MHz
802.11ac/ax(80M):5210-5775MHz
802.11ax(160M):5250-5570MHz
调制方式BPSK、QPSK、16-QAM、64-QAM、256-QAM、1024-QAM
频率间隔5M

电气特性与环境参数

表10.电气特性与环境参数

参数最小值典型值最大值单位
系统电源输入7.512或2426V
工作温度-202570
存储温度-252580
工作环境湿度204090%

外观尺寸

alt text

整机尺寸:L x W x H : 215.5 x 116 x 55 mm (不含天线),公差:±0.1mm

alt text

PCBA尺寸:125 x 110 x 35.5 mm

产品包装

alt text

1.包装盒

alt text

2.主机(或EVB)

alt text

3.USB-C线

alt text

4.天线*2根

alt text

5.电源适配器

固件下载

固件下载地址

固件烧录(QFIL 方式)

设备上电开机,通过USB type-C口连接设备到电脑。

  1. 打开高通QFIL工具,首先确认是否进入刷机模式,如USB type-C口连接到电脑后,下载端口显示9008,则表示进入刷机模式 当机器没有出现下载端口的时候,可以执行如下指令切换到下载端口:
    adb root
    adb reboot edl
    如果还是无法出现下载端口,可以用镊子短接上面“内部板载接口”章节中介绍的第23个接口:Force boot,短接之后,可以出现QDLoader下载端口9008。 alt text

  2. 点击Configuration进入download configuration界面,Device Type选择ufs选项,勾选Reset After Download选项。 alt text

  3. Select Port选择9008端口,Select Build Type选择Flat Build选项,然后点击Browse按钮选择需要刷机的ROM版本中的prog_firehose_ddr.elf文件。 alt text

  4. 点击Load xml按钮load XML文件,2次全选,如下图: alt text alt text

  5. 点击Download按钮下载即可,等提示Download Succeed之后,表示刷机成功,刷机成功后,设备自动重启,端口变成901D,至此刷机完成。 alt text

上电开机

参考终端外部接口章节图

  1. 1号DC_IN接口中接入12V电源线。

  2. 5号HDMI_OUT接口接入HDMI线缆。

  3. 4号和6号USB3.0共计4个接口中选择2个接口接入USB鼠标和USB键盘。

  4. 8号WAN口接入RJ45线缆(WAN口接入网线后,设备启动后默认会通过DHCP动态获取IP地址)。

  5. 长按15号POWER开机键3秒,设备进行开机,开机过程中会出现高通Logo。

  6. 等待开机完成后,盒子进入到Linux(Ubuntu 20.04)系统中,点击左上角图标可打开Linux Terminial终端进行命令行操作。

配置静态IP

  1. 使用vim编辑器打开Linux系统中/etc/dhcpcd.conf配置文件,在末尾中增加如下配置
#配置Linux eth0接口静态IP
interface eth0
static ip_address=192.168.110.222/24
static routers=192.168.110.1
static domain_name_servers=8.8.8.8
  1. 增加配置后,保存退出,执行sync命令将修改的内容写入磁盘后,执行reboot命令,待终端重启后,静态IP地址生效。

注意:当前AIBox QC6490终端只有1个WLAN口,即“表1.终端对外接口”中的8号接口。其余3个为LAN口。

SSH远程登录

设备WAN口接入RJ45线缆后,可通过DHCP动态获取或者配置的静态IP地址,使用SSH远程控制。

系统默认内置账号aidlux/密码aidlux,可使用该账号SSH远程登录。

C:\Users\yujiz>ssh aidlux@192.168.111.117
The authenticity of host '192.168.111.117 (192.168.111.117)' can't be established.
ED25519 key fingerprint is SHA256:gZot6su8guyN8jwzwd/nqryGIF50MU9UWvcHu4aE+x4.
This host key is known by the following other names/addresses:
C:\Users\yujiz/.ssh/known_hosts:7: 192.168.111.246
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.111.117' (ED25519) to the list of known hosts.
aidlux@192.168.111.117's password:
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.4.233 aarch64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

This system has been minimized by removing packages and content that are
not required on a system that users do not log into.

To restore this content, you can run the 'unminimize' command.

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.


The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

Last login: Mon Apr 1 09:54:01 2024 from 192.168.110.12
aidlux@qcs6490-odk:~$

AidLite SDK

AidLite SDK for python

https://v2.docs.aidlux.com/sdk-api/aidlite-sdk/aidlite-python

AidLite SDK for C++

https://v2.docs.aidlux.com/sdk-api/aidlite-sdk/aidlite-c++

AidStream SDK

简介

AidStream 是用来构建流媒体应用的视频框架,其目标是要简化视频+AI应用程序的开发中需要插入算法的程序构建。 AidStream 基于pipeline的概念,aidstream中的pipeline元素也非常简单,只分为输入端和输出端,使用函数调用即可,且在pipeline开始后时,sdk可以在输入端和输出端之间通过回调函数获取RGB数据,在回调函数中可以将此RGB数据经算法处理后再返回给pipeline,经处理后的RGB数据会继续pipeline的后续输出过程。 处理流程:

alt text

AidStream SDK for python

简介

AidStream 是用来构建流媒体应用的视频框架,其目标是要简化视频+AI应用程序的开发中需要插入算法的程序构建。 AidStream 基于pipeline的概念,用户需定义输入流与输出流,并通过回调函数处理从输入流中截取的RGB数据,并通过输出流输出处理后的RGB数据。

功能说明

AidStream SDK 为开发者提供以下功能:
· 拉取、推送rtsp流。
· 读取本地文件。
· 渲染图形到 wayland 桌面。

开发环境

AidStream 仅适用于 AiBox6490。

工作流程

流程图

导入

import aidstreamer_gst

快速使用

这是一个使用了全部 AidStream API 的例子

import cv2
from multiprocessing import Process
import aidstreamer_gst

def callback(frame):
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
retrun frame

StreamInput0 = aidstreamer_gst.StreamInputRtsp("rtsp://192.168.0.1:554/test_stream")
StreamInput1 = aidstreamer_gst.StreamInputFile("/home/test.mp4")

StreamOutput0 = aidstreamer_gst.StreamOutputRtspsink("rtsp://192.168.0.1:554/push_stream")
StreamOutput1 = aidstreamer_gst.StreamOutputWaylandsink(0,0,1920,1080)

thread0 = Process(target = aidstreamer_gst.StartStream, args = [StreamInput0, StreamOutput0, "example0", callback])
thread1 = Process(target = aidstreamer_gst.StartStream, args = [StreamInput1, StreamOutput1, "example1", callback])

thread0.start()
thread1.start()
thread1.join()

API 详细说明

类 StreamInputRtsp
初始化 StreamInputRtsp(rtsp_url)
参数 参数名 类型 默认值 说明
rtsp_url str 无默认值 rtsp 视频流拉取地址。
返回值 一个完成了初始化的 StreamInputRtsp 实例。

初始化一个输入流对象,该输入流对象拉取一个 rtsp 视频流,并进行硬件解码。

使用例
import aidstreamer_gst
StreamInput = aidstreamer_gst.StreamInputRtsp("rtsp://192.168.0.1:554/test_stream")
类 StreamInputFile
初始化 StreamInputFile(file_path)
参数 参数名 类型 默认值 说明
file_path str 无默认值 本地文件路径。
返回值 一个完成了初始化的 StreamInputFile 实例。

初始化一个输入流对象,该输入流对象读取一个本地文件,并进行硬件解码。

使用例
import aidstreamer_gst
StreamInput = aidstreamer_gst.StreamInputFile("/home/test.mp4")
类 StreamOutputRtspsink
初始化 StreamOutputRtspsink(rtsp_url)
参数 参数名 类型 默认值 说明
rtsp_url str 无默认值 rtsp 视频流推送地址。
返回值 一个完成了初始化的 StreamOutputRtspsink 实例。

初始化一个输出流对象,该输出流编码图形,并以 rstp 协议推流到指定地址。

使用例
import aidstreamer_gst
StreamOutput = aidstreamer_gst.StreamOutputRtspsink("rtsp://192.168.0.1:554/push_stream")
类 StreamOutputWaylandsink
初始化 StreamOutputWaylandsink(x, y, w, h)
参数 参数名 类型 默认值 说明
x int 无默认值 矩形区域左上角的横坐标。
y int 无默认值 矩形区域左上角的纵坐标。
w int 无默认值 矩形区域的宽。
h int 无默认值 矩形区域的高。
返回值 一个完成了初始化的 StreamInputFile 实例。

初始化一个输出流对象,该输出流在 wayland 桌面的指定的矩形区域渲染图形。描述矩形区域使用的坐标系以 wayland 桌面左上角为原点,向右为横轴的正方向,向下为纵轴的正方向。
此处有图示。

使用例
import aidstreamer_gst
StreamOutput = aidstreamer_gst.StreamOutputWaylandsink(0,0,1920,1080)
StartStream
API StartStream(StreamInput, StreamOutput, uname, callback)
参数 参数名 类型 默认值 说明
StreamInput StreamInputRtsp类
或 StreamInputFile 类
无默认值 配置 pipeline 的输入流。
StreamOutput StreamOutputRtspsink类
或 StreamOutputWaylandsink类
无默认值 配置 pipeline 的输出流。
uname str 无默认值 工作流名称。
callback function 无默认值 回调函数。
回调函数需遵循该格式: call_back(frame) -> numpy.array。
该回调函数接收一个输出 frame,为解码后的 三维 uint8 类型 numpy数组,颜色编码方式为 RGB。该函数需要返回一个与输出类型相同,尺寸相同的numpy数组。返回的 numpy 数组使用 RBG 进行颜色编码。
返回值 None

使用完成了初始化的输入流对象和输出流对象 以及回调函数构建 pipeline,构建完成后会阻塞当前进程开始工作。

使用例
import cv2
import aidstreamer_gst

def callback(frame):
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
retrun frame

uname = "stream0"
StreamInput = aidstreamer_gst.StreamInputFile("/home/test.mp4")
StreamOutput = aidstreamer_gst.StreamOutputWaylandsink(0,0,1920,1080)
aidstreamer_gst.StartStream(StreamInput, StreamOutput, uname, callback)

AidStream SDK for C++

快速上手

读取文件显示,并获取后在回调函数中将把rgb数据的前三分之一全部替换为0,即三分之一置为黑色,最后显示

#include "StreamBuild.h"
#include "StreamInputFile.h"
#include "StreamOutputWaylandsink.h"
CallBack callback;
void inter(guint8 *data, gsize size)
{
//获取rgb宽度
std::cout<<"rgb width:"<<callback.width<<std::endl;
//获取rgb高度
std::cout<<"rgb height:"<<callback.height<<std::endl;
//把rgb数据的前三分之一全部替换为0
//rgb数据是在内存中,当函数执行完后,输出端会继续获取该内存段的数据往后执行,所以直接修改data指向的数据
gsize half_size = size / 3;
memset(data, 0, half_size);
}

int main(int argc, char *argv[])
{
//设置回调
callback.inter = inter;
//设置打印log
callback.log = true;
//设置读取文件的输入端
StreamInputFile streamInputFile("/usr/local/share/aidstreamer-gst/example/datas/test_kobe.mp4 ");
StreamInputFile *streamInputFilep = &streamInputFile;
//设置Wayland 显示的输出端
StreamOutputWaylandsink streamOutputWaylandsink(0 ,0, 640, 480);
StreamOutputWaylandsink *streamOutputWaylandsinkp = &streamOutputWaylandsink;
//启动aidstream
startStream(streamInputFilep, streamOutputWaylandsinkp, "aidstream", &callback);

return 0;
}

读取rtsp流显示,不做任何处理,最后显示

CallBack callback;
int main(int argc, char *argv[])
{
//设置读取文件的输入端
StreamInputRtsp streamInputRtsp("rtsp://admin:aidlux123@192.168.110.234:554/h265/ch1/main/av_stream");
StreamInputRtsp *streamInputRtspp = &streamInputRtsp;
//设置Wayland 显示的输出端
StreamOutputWaylandsink streamOutputWaylandsink(0 ,0, 640, 480);
StreamOutputWaylandsink *streamOutputWaylandsinkp = &streamOutputWaylandsink;
//启动aidstream
startStream(streamInputRtspp, streamOutputWaylandsinkp, "aidstream", &callback);
return 0;
}

启动函数

fun startStream(input, out, name, callback);
头文件:StreamBuild.h
成员变量名类型描述
streamInputStreamInput*AidStream输入端
streamOutputStreamOutput*AidStream输出端
namestd::stringpipeline名称(主要做标识用)
callbackCallBack*回调函数和其他参数

CallBack结构体

struct CallBack{bool log=false;intercept inter;int width;int height;};
成员变量名类型描述
logbool是否打印log
interinterceptRGB回调函数
widthintRGB图片的宽度
heightintRGB图片的高度

StreamInputFile

class StreamInputFile(path)
类型:输入端
描述:读取本地Mp4文件
成员变量名类型描述
pathstd::stringMp4地址

StreamInputRtsp

class StreamInputRtsp(url);
类型:输入端
描述:读取rtsp流
成员变量名类型描述
pathstd::stringrtsp拉流地址

StreamOutputRtspsink

class StreamOutputRtspsink(path);
类型:输出端
描述:输出到rtsp服务器
成员变量名类型描述
urlstd::stringrtsp推流地址

StreamOutputWaylandsink

class StreamOutputWaylandsink(x,y,width,height);
类型:输出端
描述:显示到wayland桌面
成员变量名类型描述
xint窗口左上角位置x轴
yint窗口左上角位置y轴
widthint窗口宽度
heightint窗口高度

SDK 内置示例

相关说明使用方法

Aidstream-SDK示例
C++示例
/usr/local/share/aidstreamer-gst/example/cxx
python示例
/usr/local/share/aidstreamer-gst/example/python

C++示例用法:
1)执行./build.sh编译C++可执行程序,编译后当前目录存放一个test的C++可执行程序;
2)执行./test.sh脚本,该脚本读取本地../datas/test_kobe.mp4视频文件后,本地播放,
默认播放4条流,可根据实际需要修改test.sh脚本运行几条流。
python示例用法:
1)执行python3 example_face.py,该脚本读取本地../datas/test_kobe.mp4视频文件后,
本地播放,默认播放4条流,可根据实际需要修改example_face.py脚本中211行configure_list的值。
211行
configure_list = [
[input_file, None, 1, None],
[None, input_url, 1, None],
]
2)如果要测试推流,则需要修改以下参数:
205行修改成实际的流媒体服务器
stream_server = "rtsp://192.168.110.38:8554/
211行
configure_list = [
[input_file, None, None, stream_server],
[None, input_url, None, stream_server],
]
运行成功后,可通过vlc播放器播放rtsp://192.168.110.38:8554/0-3的视频流。

openCV示例
C++示例
/usr/local/share/opencv_gpu/gpu.cpp
python示例
/usr/local/share/opencv_gpu/gpu.py

C++示例用法:

1)执行./build.sh编译C++可执行程序,编译后当前目录存放一个gpu的C++可执行程序;
2)执行./gpu运行C++示例;
3)再打开一个终端执行./gpu_status.sh脚本查看gpu使用率。
python示例用法:
1)执行python3 gpu.py运行python示例;
2)再打开一个终端执行./gpu_status.sh脚本查看gpu使用率。

AidLite-SDK-SNPE2 示例
C++示例
/usr/local/share/snpe2_local/cpp_samples

C++示例用法:
1)sudo apt-get install cmake -y
2)mkdir -p build && cd build
3)cmake ..
4)make
执行示例程序
./snpe2_inceptionv3 0 for use DSP
./snpe2_inceptionv3 1 for use CPU
./snpe2_inceptionv3 2 for use GPU
./snpe2_yolov5_multi 0 for use DSP
./snpe2_yolov5_multi 1 for use CPU
./snpe2_yolov5_multi 2 for use GPU

AidLite-SDK-SNPE2 示例
python示例
/usr/local/share/snpe2_yolov5_multi/snpe2_yolov5_multi.py

python示例用法:
python3 snpe2_yolov5_multi.py 0 for use DSP
python3 snpe2_yolov5_multi.py 1 for use CPU
python3 snpe2_yolov5_multi.py 2 for use GPU

AidLite-SDK-TFLite 示例
C++示例
/usr/local/share/tflite_local/cpp_samples

C++示例用法:
1)sudo apt-get install cmake -y
2)mkdir -p build && cd build
3)cmake ..
4)make
执行示例程序
./tflite_mobilenetv1 0 for use DSP
./tflite_mobilenetv1 1 for use CPU
./tflite_mobilenetv1 2 for use GPU
./tflite_yolov5_multi 0 for use DSP
./tflite_yolov5_multi 1 for use CPU
./tflite_yolov5_multi 2 for use GPU