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版) |
Audio | Line 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 连接器2 | PIN脚定义见表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 |
系统框图
接口介绍
AIBox QC6490 提供两种包装方式,终端盒子方式和 PCBA 方式,根据应用场景和测试需求自主订购。部分接口预留在内部 PCB 板上,包括 MIPI DSI, MIP CSI,GPIO, 风扇及调试接口。
终端外部接口
表1.终端对外接口
接口序号 | 信号定义 | 功能描述 |
---|---|---|
1 | DC_IN | 设备电源输入,电压范围:12V~24V,典型值12V@5A |
2 | LINE OUT | 音频输出 |
3 | LINE IN | 音频输入 |
4 | USB3.0 | 2路USB3.0接口 |
5 | HDMI_OUT | HDMI信号输出, 分辨率/帧率 max: 1080P/120fps |
6 | USB3.0 | 2路USB3.0接口 |
7 | HDMI_IN | HDMI信号输入,分辨率/帧率 max: 4K/30fps |
8 | WAN | RJ45网口 |
9 | LAN | RJ45网口 |
10 | LAN | RJ45网口 |
11 | LAN | RJ45网口 |
12 | WIFI RF | 2根Wi-Fi天线接口 |
13 | USB2.0 | USB2.0接口 |
14 | TYPE-C | USB TYPE-C接口 |
15 | POWER | 开机键;设备上电自动开机 |
16 | Volume + | 音量增加键 |
17 | Volume - | 音量减小键 |
18 | TF | Micro SD 卡槽 |
19 | Power LED | 系统电源指示灯 |
内部板载接口
表2.内部板载接口
接口序号 | 信号定义 | 功能描述 |
---|---|---|
20 | B2B Connector | B2B 连接器50PIN 内部GPIO口连接 |
21 | RTC connector | 系统RTC时钟电池接口, 推荐CR1632X(120mAh@3V) |
22 | Qualcomm 40PIN | 高通40PIN通用接口(包含UART, CAN, I2S等接口) |
23 | Force boot | 强制下载端口(紧急情况下使用) |
24 | Fan | 风扇接口, 详见下表6 |
25 | DSI | 22PIN DSI接口信号,详见下表5 |
26 | Raspberry 40PIN | 树莓派显示屏40PIN功能接口(包含GPIO, UART等接口) |
27 | Raspberry Camera | 树莓派22PIN Camera连接器,连接Camera,详见下表5 |
28 | Raspberry Camera | 树莓派22PIN Camera连接器,连接Camera,详见下表5 |
29 | Camera connector | 30pin C-PHY 接口, PIN脚描述见下表7 |
表3.树莓派40PIN接口信号
接口序号 | 信号定义 | 功能描述(此接口所有GPIO信号为3.3V电平) |
---|---|---|
1 | 3V3 | 3.3V电源 |
2 | 5V | 5V 电源 |
3 | GPIO00 | 可以配置为I2C需与GPIO1组合/普通GPIO |
4 | 5V | 5V 电源 |
5 | GPIO01 | 可以配置为I2C需与GPIO00组合/普通GPIO |
6 | GND | Ground |
7 | GPIO76 | 普通GPIO或PWM(GCC_GP1_CLK_MIRB) |
8 | UART_TX | Row 2, Cell 3 |
9 | GND | Ground |
10 | UART_RX | 可以配置为QUP1_SE3 UART or 普通GPIO 15 |
11 | GPIO129 | 普通GPIO |
12 | I2S0_SCK | I2S0 接口,也可配置为普通GPIO |
13 | GPIO62 | 可以配置为QUP1_SE7 UART/普通GPIO |
14 | GND | Ground |
15 | GPIO63 | 普通GPIO |
16 | GPIO35 | 普通GPIO |
17 | 3V3 | 3.3V电源 |
18 | GPIO41 | 可配置为 SPI or UART+GPIO(不要全功能UART 时) or I2C+GPIO or GPIO |
19 | QUP1_SE4_SPI_MOSI | QUP1_SE4,可以配置为 SPI or UART+GPIO(不要 全功能UART时) or I2C+GPIO or GPIO |
20 | GND | Ground |
21 | QUP1_SE4_SPI_MISO | QUP1_SE4,可以配置为 SPI or UART+GPIO(不要 全功能UART时) or I2C+GPIO or GPIO |
22 | GPIO54 | 1.普通GPIO.如果DSI TP不使用,可配置为UART (需和GPIO55组合); 2. QUP1_SE4_SPI CS2 |
23 | QUP1_SE4_SPI_SCLK | QUP1_SE4,可以配置为 SPI or UART+GPIO(不要 全功能UART时) or I2C+GPIO or GPIO |
24 | QUP1_SE4_SPI_CS0 | QUP1_SE4,可以配置为 SPI or UART+GPIO(不要 全功能UART时) or I2C+GPIO or GPIO |
25 | GND | Ground |
26 | GPIO55 | 1.普通GPIO,如果DSI TP不使用,可配置为UART (需和GPIO54组合) 2. QUP1_SE4_SPI CS1 |
27 | ID_SD | 预留QUP0_SE2_I2C,可配置为普通GPIO |
28 | ID_SC | 预留QUP0_SE2_I2C,可配置为普通GPIO |
29 | GPIO34 | 普通GPIO |
30 | GND | Ground |
31 | GPIO42 | 普通GPIO |
32 | GPIO77 | 普通GPIO,GCC_GP2_CLK_MIRB |
33 | GPIO78 | 普通GPIO GCC_GP3_CLK_MIRB |
34 | GND | Ground |
35 | I2S0_WS | I2S0 接口,也可配置为普通GPIO |
36 | GPIO43 | 普通GPIO |
37 | GPIO40 | 普通GPIO |
38 | I2S0_DATA0 | I2S0 接口,也可配置为普通GPIO |
39 | GND | Ground |
40 | I2S0_DATA1 | I2S0 接口,也可配置为普通GPIO |
表4.通用40PIN接口信号
接口序号 | 信号定义 | 功能描述(LPIGPIO 均可配置为EGPIO使用) |
---|---|---|
1 | GPIO36 | QUP1_SE1,可以配置为 SPI or UART+GPIO(不要全 功能UART时) or I2C+GPIO or GPIO,目前 GPIO36/GPIO37兼容配置为RTC INT1/INT2。不需 要RTC功能时,调整R1821-R1822/R1823-R1834即可 还原为全功能QUP |
2 | 1V8 | 1.8V电源对外供电,只建议用作IO口的上拉电源 |
3 | GPIO37 | QUP1_SE1,可以配置为 SPI or UART+GPIO(不要全 功能UART时) or I2C+GPIO or GPIO,目前 GPIO36/GPIO37兼容配置为RTC INT1/INT2。不需 要RTC功能时,调整R1821-R1822/R1823-R1834即可 还原为全功能QUP |
4 | GND | Ground |
5 | GPIO38 | QUP1_SE1,可以配置为 SPI or UART+GPIO(不要全 功能UART时) or I2C+GPIO or GPIO,目前 GPIO36/GPIO37兼容配置为RTC INT1/INT2。不需 要RTC功能时,调整R1821-R1822/R1823-R1834即可 还原为全功能QUP |
6 | LPI_I2S1_CLK | LPI I2S AUDIO INTERFACE 1 ,也可配置为DMIC1 Interface |
7 | GPIO39 | QUP1_SE1,可以配置为 SPI or UART+GPIO(不要全 功能UART时) or I2C+GPIO or GPIO,目前 GPIO36/GPIO37兼容配置为RTC INT1/INT2。不需 要RTC功能时,调整R1821-R1822/R1823-R1834即可 还原为全功能QUP |
8 | LPI_I2S1_WS | LPI I2S AUDIO INTERFACE 1 ,也可配置为DMIC1 Interface |
9 | GND | Ground |
10 | LPI_I2S1_DATA0 | LPI I2S AUDIO INTERFACE 1 ,也可配置为DMIC2 Interface |
11 | GPIO56 | QUP1_SE6,可以配置为 SPI or UART+GPIO(不要全 功能UART时) or I2C+GPIO or GPIO |
12 | LPI_I2S1_DATA1 | LPI I2S AUDIO INTERFACE 1 ,也可配置为DMIC2 Interface |
13 | GPIO57 | QUP1_SE6,可以配置为 SPI or UART+GPIO(不要全 功能UART时) or I2C+GPIO or GPIO |
14 | GND | Ground |
15 | GPIO58 | QUP1_SE6,可以配置为 SPI or UART+GPIO(不要全 功能UART时) or I2C+GPIO or GPIO |
16 | VREG_L8C | L8C sensor 1V8 Power, MAX 15mA |
17 | GPIO59 | QUP1_SE6,可以配置为 SPI or UART+GPIO(不要全 功能UART时) or I2C+GPIO or GPIO |
18 | LPI_I2C2_SCL | LPI_I2C2 for Sensor |
19 | LPI_I2C0_SCL | LPI_I2C0 for Sensor |
20 | LPI_I2C2_SDA | LPI_I2C2 for Sensor |
21 | LPI_I2C0_SDA | LPI_I2C0 for Sensor |
22 | LPI_I2C1_SCL | LPI_I2C1 for sensor |
23 | PM7250B_GPIO11 | PMU7250B GPIO LV,预留了控制QCA8337供电的电 路,通过R1820电阻可断开对外输出 |
24 | LPI_I2C1_SDA | LPI_I2C1 for sensor |
25 | PM7250B_GPIO12 | PMU7250B GPIO LV |
26 | LPI_GPIO155 | LPI_GPIO155可以配置成LPI_I2S2 |
27 | DEBUG_UART_TX | 可配置为普通GPIO,默认作为debug串口用,也可 以作为普通串口使用 |
28 | VOUT_5V | 5V电源对外输出,电流不要超过500mm |
29 | DEBUG_UART_RX | 可配置为普通GPIO,默认作为debug串口用,也可 以作为普通串口使用 |
30 | LPI_GPIO154 | LPI_GPIO154 可以配置成LPI_I2S2 |
31 | LPI_DMIC3_CLK | DMIC3 INTERFACE |
32 | PM7325_ADC_AMUX1_GPIO02 | ADC IN_PUT 通道1 |
33 | LPI_DMIC3_DATA | DMIC3 INTERFACE可以配置成LPI_I2S2 |
34 | GND | Ground |
35 | GND | Ground |
36 | PM7325_ADC_AMUX1_GPIO02 | ADC IN_PUT 通道2 |
37 | CAN_L | CAN 总线接口 |
38 | GND | Ground |
39 | CAN_H | CAN 总线接口 |
40 | PWM_OUT | PWM输出,目前预留给风扇使用 |
表5.CSI接口(Raspberry D-PHY接口适用)
接口序号 | 信号定义 | 功能描述 |
---|---|---|
1 | GND | Ground |
2 | CAM1_D0_N | MIPI DATA LAN0 N |
3 | CAM1_D0_P | MIPI DATA LAN0 P |
4 | GND | Ground |
5 | CAM1_D1_N | MIPI DATA LAN1 N |
6 | CAM1_D1_P | MIPI DATA LAN1 P |
7 | GND | Ground |
8 | CAM1_CLK_N | MIPI CLK N |
9 | CAM1_CLK_P | MIPI CLK P |
10 | GND | Ground |
11 | CAM1_D2_N | MIPI DATA LAN2 N |
12 | CAM1_D2_P | MIPI DATA LAN2 P |
13 | GND | Ground |
14 | CAM1_D3_N | MIPI DATA LAN3 N |
15 | CAM1_D3_P | MIPI DATA LAN3 P |
16 | GND | Ground |
17 | CAM_GPIO | Camera Power On |
18 | CAM_LED EN | LED EN |
19 | GND | Ground |
20 | SCL0 | Camera I2C SCL0 |
21 | SDA0 | Camera I2C SDA0 |
22 | +3.3V | Power 3.3V |
表6.风扇接口
接口序号 | 信号定义 | 功能描述 |
---|---|---|
1 | 5V | Power 5V |
2 | PWM | PWM信号输入 |
3 | / | / |
4 | GND | Ground |
表7.C-PHY接口
PIN | Signal Definition | PIN | Signal Definition |
---|---|---|---|
1 | DGND | 16 | AFVDD-2V8 |
2 | CS1_C2 | 17 | CCI_SCL |
3 | CS1_B2 | 18 | CCI_SDA |
4 | CS1_A2 | 19 | CAM_RST |
5 | DGND | 20 | PWDN |
6 | CS1_C1 | 21 | AGND |
7 | CS1_B1 | 22 | DVDD_1V1 |
8 | CS1_A1 | 23 | VSYNC |
9 | DGND | 24 | AGND |
10 | CS1_C0 | 25 | AVDD-2V9 |
11 | CS1_B0 | 26 | DOVDD_1V8 |
12 | CS1_A0 | 27 | DGND |
13 | DGND | 28 | DVDD_1V1 |
14 | DGND | 29 | DVDD_1V1 |
15 | MCLK | 30 | DGND |
表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.5 | 12或24 | 26 | V |
工作温度 | -20 | 25 | 70 | ℃ |
存储温度 | -25 | 25 | 80 | ℃ |
工作环境湿度 | 20 | 40 | 90 | % |
外观尺寸
整机尺寸:L x W x H : 215.5 x 116 x 55 mm (不含天线),公差:±0.1mm
PCBA尺寸:125 x 110 x 35.5 mm
产品包装
1.包装盒
2.主机(或EVB)
3.USB-C线
4.天线*2根
5.电源适配器
固件下载
固件烧录(QFIL 方式)
设备上电开机,通过USB type-C口连接设备到电脑。
-
打开高通QFIL工具,首先确认是否进入刷机模式,如USB type-C口连接到电脑后,下载端口显示9008,则表示进入刷机模式 当机器没有出现下载端口的时候,可以执行如下指令切换到下载端口:
adb root
adb reboot edl
如果还是无法出现下载端口,可以用镊子短接上面“内部板载接口”章节中介绍的第23个接口:Force boot,短接之后,可以出现QDLoader下载端口9008。 -
点击Configuration进入download configuration界面,Device Type选择ufs选项,勾选Reset After Download选项。
-
Select Port选择9008端口,Select Build Type选择Flat Build选项,然后点击Browse按钮选择需要刷机的ROM版本中的prog_firehose_ddr.elf文件。
-
点击Load xml按钮load XML文件,2次全选,如下图:
-
点击Download按钮下载即可,等提示Download Succeed之后,表示刷机成功,刷机成功后,设备自动重启,端口变成901D,至此刷机完成。
上电开机
参考终端外部接口章节图
-
1号DC_IN接口中接入12V电源线。
-
5号HDMI_OUT接口接入HDMI线缆。
-
4号和6号USB3.0共计4个接口中选择2个接口接入USB鼠标和USB键盘。
-
8号WAN口接入RJ45线缆(WAN口接入网线后,设备启动后默认会通过DHCP动态获取IP地址)。
-
长按15号POWER开机键3秒,设备进行开机,开机过程中会出现高通Logo。
-
等待开机完成后,盒子进入到Linux(Ubuntu 20.04)系统中,点击左上角图标可打开Linux Terminial终端进行命令行操作。
配置静态IP
- 使用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
- 增加配置后,保存退出,执行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的后续输出过程。 处理流程:
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
成员变量名 | 类型 | 描述 |
---|---|---|
streamInput | StreamInput* | AidStream输入端 |
streamOutput | StreamOutput* | AidStream输出端 |
name | std::string | pipeline名称(主要做标识用) |
callback | CallBack* | 回调函数和其他参数 |
CallBack结构体
struct CallBack{bool log=false;intercept inter;int width;int height;};
成员变量名 | 类型 | 描述 |
---|---|---|
log | bool | 是否打印log |
inter | intercept | RGB回调函数 |
width | int | RGB图片的宽度 |
height | int | RGB图片的高度 |
StreamInputFile
class StreamInputFile(path)
类型:输入端
描述:读取本地Mp4文件
成员变量名 | 类型 | 描述 |
---|---|---|
path | std::string | Mp4地址 |
StreamInputRtsp
class StreamInputRtsp(url);
类型:输入端
描述:读取rtsp流
成员变量名 | 类型 | 描述 |
---|---|---|
path | std::string | rtsp拉流地址 |
StreamOutputRtspsink
class StreamOutputRtspsink(path);
类型:输出端
描述:输出到rtsp服务器
成员变量名 | 类型 | 描述 |
---|---|---|
url | std::string | rtsp推流地址 |
StreamOutputWaylandsink
class StreamOutputWaylandsink(x,y,width,height);
类型:输出端
描述:显示到wayland桌面
成员变量名 | 类型 | 描述 |
---|---|---|
x | int | 窗口左上角位置x轴 |
y | int | 窗口左上角位置y轴 |
width | int | 窗口宽度 |
height | int | 窗口高度 |
SDK 内置示例
相关说明 | 使用方法 |
---|---|
Aidstream-SDK示例 | C++示例用法: |
openCV示例 | C++示例用法: 1)执行./build.sh编译C++可执行程序,编译后当前目录存放一个gpu的C++可执行程序; |
AidLite-SDK-SNPE2 示例 | C++示例用法: |
AidLite-SDK-SNPE2 示例 | python示例用法: |
AidLite-SDK-TFLite 示例 | C++示例用法: |