Core-3588SJD4 8-Core 8K AI Core Board
Core-1684JD4 8-Core High Computing Power AI Core Board
Core-1684XJD4 Octa-Core High Computing Power AI Core Board
32Tops High Computing Power AI Core Board
iCore-3588JQ 8K Industrial AI Core Board
Core-3588SG 8K AI Core Board
iCore-3588Q
Core-3128J Quad-Core A7 High-Performance Core Board
Core-1109-JD4 High-Performance AI Vision Core Board
Core-3328-JD4 Quad-core 64-bit Core Board
Core-3399J Hexa-Core High Performance Core Board
iCore-3562JQ High performance industrial core board
Core-3288J Quad-Core A17 High-Performance Core Board
iCore-RK3568JQ
iCore-3588Q 8K AI Core Board
Core-3588L 8K AI Core Board
Core-RK3588J Core Board
Core-RK3568
Core-RK3566-JD4
Core-RK3399-JD4
Core-RK3399K-J
Core-RK3399Pro-JD4
Core-PX30-JD4
Core-RK3328-JD4
Core-RV1126-JD4
Intel Kaby Lake i7
Core-RK1808-JD4
Intel Gemini Lake-R J4125
Core-RK3308
Intel Cherry Trail Z8350
ROC-RK3576-PC Low-Power Large Model Mini Computer
ITX-3588J 8K AI Mini-ITX Mainboard
ROC-RK3399-PC Pro Six-Core 64-Bit High-Performance Main Board
ROC-RK3308B-CC Plus IoT Quad-core 64-bit Main Board
AIO-1684JD4 Octa-Core High Computing Power AI Mainboard
AIO-3399Pro-C
AIO-RK3399-J
Face-RK3399 Face Recognition Main Board
ITX-3568JQ Quad-Core Industrial Mainboard
ROC-RK3568-PC SE Quad-Core 64-Bit Mini Computer
AIO-3562JQ High-Performance Industrial Mainboard
AIO-3588L 8K AI Mainboard
AIO-3588Q 8K AI Mainboard High Computing Power
AIO-RK3399-C
ROC-RK3588-PC Octa-Core 8K AI Mini Computer
ROC-RK3568-PC
AIO-3588SG Octa-Core 8K AI Mainboard
AIO-RK3288-C
ROC-RK3588-RT Octa-Core 8K AI Mini SBC with Ethernet Ports
ROC-RK3566-PC
AIO-RK3568J
AIO-3588Q 8K AI Mainboard High Computing Power
AIO-3568J Quad-Core High-Performance AI Mainboard
EC-A1684JD4 8-Core High Computing Power AI Computer
EC-R3588RT Smart Router
EC-R3588SPC Octa-Core AI Industrial Computer
EC-A3568J Quad-Core 64-Bit AI Embedded Computer
EC-A1688JD4 Industrial Intelligent Computing AI Computer
EC-I3588J 8-Core 8K Computer
EC-A3588JQ Octa-Core 8K AI Industrial Computer
EC-R3399PC 6-Core 64-Bit Embedded Computer
EC-R3568PC Quad-Core 64-Bit AI Embedded Computer
EC-A1684XJD4 FD Octa-Core 32T High Computing Power AI Embedded Computer
EC-A3588Q Octa-Core 8K AI Embedded Computer with High Computing Power
EC-R3308CC Industrial PC
EC-A1684JD4 FD Octa-Core High Computing Power AI Embedded Computer
EC-A3588L Flagship AI Computer
EC-R3588SPC FD Octa-Core AI Industrial Compu
iHC-3568JGW Industrial 5G Smart Gateway
EC-A3399C(AI) Six-core AI Embedded Computer
iHC-3308GW Industrial 4G Smart Gateway
EC-OrinNX 100T Edge Computing Computer
EC-OrinNano 40T Edge Computing Computer
EC-RK3568
EC-RK3399Pro
EC-RK3399
Station RK3568 P2
Station RK3566 M2 Box
Station RK3399 P1 Pro
10.1
10.1
Station RK3328 M1 Box
10.1
EC-R3566PC
Face X2 RK3399
RK3399/RK3328具有强大的视频编解码能力,Soc集成的硬件视频编解码器VPU,能同时处理多路视频的编解码,Soc集成的图形加速引擎RGA, 可以高效地处理图形缩放、旋转、颜色空间转换等操作。结合VPU和RGA,可以高效地实现视频流的解码和后处理,作为第三方应用处理的数据源。
调用API
Rockchip开发的mpp库,提供了非常易于使用API,通过各种不同的控制项,可以适应多种不同场景的视频编解码应用。
硬件准备
RK3399平台:AIO-3399C主板 + 12路摄像头

运行Demo
Firefly在RK3399和RK3328 Ubuntu平台上, 针对目前最常见的场景,提供了一个多路RTSP流解码的Demo,Demo支持在RK3399平台上, 同时解12路H264/H265 RTSP,测试流帧率为25fps,无丢帧,低延时,CPU占用率较低(基本只用于RTSP流接收和封包)。在RK3328平台上,同时能解6路H264/H265 RTSP。

运行过程
Demo中,MPP解码->图像后处理->显示整个流程中,VPU和RGA都是直接访问内存物理地址,整个过程零内存拷贝,效率很高。处理后的数据,通过libdrm接口,直接送往显示接口输出。
Demo对解码后的图像输出数据,只做了显示处理,如果在实际应用中需要对图像做处理,可能会导致帧率下降。
演示效果
运行时效果图如下:

实时帧率
实时帧率计算结果如下:

安装方法
Demo运行在RK3399 或 RK3328 Ubuntu 18.04平台上。
1. 确认系统中存在 /dev/rga 设备节点。 如果没有此节点, 请参考wiki更新最新的固件。
2. 安装:
$ sudo apt update $ sudo apt install firefly-multi-rtsp
3.根据实际环境,修改配置文件。 参照下一节配置参数。
4. 运行:
$ sudo test_ff_rtsp_dec
5. 退出:
运行过程中,按Enter键,退出Demo, 由于退出时需要关闭多路rtsp流,所以退出时需要稍作等待。
配置参数
Demo中提供了一个配置文件config.json,用于配置demo的运行环境。
配置文件位于/etc/ff_rtsp_dec/config.json ,json格式。(注意不要在config.json中添加注释,否则可能会导致json解析出错)
主要配置项如下
基础参数:
"basepara" : {
"dri_path" : "/dev/dri/card0", //不要修改
"prefer_monitor_w" : 1920,
"prefer_monitor_h" : 1080,
"code_type" : "H265", //rtsp流编码类型,H264/H265
"line_count" : 12, //rtsp流数量
"output_w" : 480, //每一路解码后的输出size.
"output_h" : 360,
"rotate" : 0 //旋转 未使用
},
其中prefer_monitor_w 和 prefer_monitor_h是配置外接显示设备的分辨率。
1. 配置外接显示设备的分辨率,仅在显示设备支持多种分辨率(如HDMI、DP等显示器)时有效,如果显示设备支持该分辨率,则将显示设备设置为该分辨率。
2. LVDS, MIPI屏该配置无效(但仍需保留该配置项,只是配置值无效),因为LCD支持一种分辨率。
3. 配置此参数后,Demo将显示设备设置为对应的分辨率,然后计算该分辨率是否能够完整显示所有路RTSP解码后的输出。如果不能显示,应该减小rtsp流数量,或者减小输出尺寸。
line_h = prefer_monitor_w / output_w; line_v = prefer_monitor_h / output_h; line_h * line_v