当前位置: 首页 > article >正文

RK3588 Opencv-ffmpeg-rkmpp-rkrga编译与测试

RK3588 Opencv-ffmpeg-rkmpp-rkrga编译与测试

    • 硬件背景说明
    • 编译环境准备
      • 1. 编译MPP(媒体处理平台)
      • 2. 编译RGA(图形加速库)
      • 3. 构建支持硬件加速的FFmpeg
        • 重要代码修改说明
      • 4. 验证安装
      • 5.FFmpeg转码测试
    • OpenCV编译集成
  • Python OpenCV+FFmpeg测试

硬件背景说明

RK3588是瑞芯微推出的旗舰级ARM处理器,具备6TOPS NPU和8K视频编解码能力。其特有的硬件加速模块包括:

  1. MPP (Media Process Platform):视频编解码硬件加速模块
  2. RGA (Raster Graphic Acceleration):2D图像处理加速模块
  3. NPU (Neural Processing Unit):神经网络加速单元

通过结合这些硬件加速模块,可大幅提升视频处理效率。例如在1080P视频缩放场景,RGA加速相比CPU处理可提升30倍性能。


编译环境准备

1. 编译MPP(媒体处理平台)

# 卸载旧版MPP防止版本冲突
dpkg --purge --force-all librockchip-mpp-dev librockchip-mpp1 rockchip-mpp-demos# 获取指定版本源码(1.0.9版已验证兼容性)
git clone https://github.com/rockchip-linux/mpp.git
cd mpp
git checkout 1.0.9# 配置编译选项
mkdir build
cd build
cmake \-DCMAKE_INSTALL_PREFIX=/usr/local \-DCMAKE_BUILD_TYPE=Release \-DBUILD_SHARED_LIBS=ON \-DBUILD_TEST=OFF ..
make -j4
make install

关键参数说明

  • BUILD_SHARED_LIBS=ON:生成动态链接库(.so文件),方便其他程序调用
  • CMAKE_INSTALL_PREFIX:指定头文件和库的安装路径,避免污染系统目录

2. 编译RGA(图形加速库)

# 使用特定分支的RGA实现
git clone -b jellyfin-rga --depth=1 https://github.com/nyanmisaka/rk-mirrors.git rkrga
cd rkrga# 配置Meson构建系统
mkdir install rkrga_build
meson setup . rkrga_build \--prefix=/usr/local \--libdir=lib \--buildtype=release \--default-library=shared \-Dcpp_args=-fpermissive \-Dlibdrm=false \-Dlibrga_demo=false
meson configure rkrga_build
ninja -C rkrga_build install

3. 构建支持硬件加速的FFmpeg

# 获取定制版FFmpeg源码
git clone https://github.com/nyanmisaka/ffmpeg-rockchip.git
cd ffmpeg-rockchip
git checkout 57d5befee96f229b05fa09334a4d7a6f95a324bd  # 指定兼容性验证的提交# 安装依赖库
apt install libdrm-dev -y  # DRM显示驱动开发包# 配置编译参数
./configure --prefix=/usr/local --enable-gpl --enable-version3 \--enable-pic --enable-shared --disable-static \--enable-libdrm --enable-rkmpp --enable-rkrga
make -j4
make install
重要代码修改说明

修改rkrga_common.c文件:

diff --git a/libavfilter/rkrga_common.c b/libavfilter/rkrga_common.c
index 7ca88ccae9..8f80ee4fe4 

相关文章:

RK3588 Opencv-ffmpeg-rkmpp-rkrga编译与测试

RK3588 Opencv-ffmpeg-rkmpp-rkrga编译与测试 硬件背景说明编译环境准备1. 编译MPP(媒体处理平台)2. 编译RGA(图形加速库)3. 构建支持硬件加速的FFmpeg重要代码修改说明4. 验证安装5.FFmpeg转码测试OpenCV编译集成Python OpenCV+FFmpeg测试硬件背景说明 RK3588是瑞芯微推出…...

特伦斯 S75 电钢琴:奏响极致音乐体验的华丽乐章

在音乐爱好者增多、音乐教育普及,以及科技进步的推动下,电钢琴市场蓬勃发展。其在技术、品质和应用场景上变化巨大,高端化、个性化产品受青睐,应用场景愈发多元。在此背景下,特伦斯 S75 电钢琴以卓越性能和独特设计&am…...

硬件学习笔记--64 MCU的ARM核架构发展及特点

MCU(微控制器)的ARM核架构是当前嵌入式系统的主流选择,其基于ARM Cortex-M系列处理器内核,具有高性能、低功耗、丰富外设支持等特点。以下是ARM核MCU的主要架构及其发展: 1. ARM Cortex-M系列内核概览 ARM Cortex-M系…...

div或button一些好看实用的 CSS 样式示例

1:现代渐变按钮 .count {width: 800px;background: linear-gradient(135deg, #72EDF2 0%, #5151E5 100%);padding: 12px 24px;border-radius: 10px;box-shadow: 0 4px 15px rgba(81, 81, 229, 0.3);color: white;font-weight: bold;border: none;cursor: pointer;t…...

USB充电检测仪-2.USB充电检测仪硬件设计

本系列文章的最终目标是制作一个USB充电检测仪,支持的功能: 显示USB充电电压、电流、功率、充电量(单位WH);实现Typec口和USB-A口的相互转换(仅支持USB 2.0); 当然网上有很多卖这种…...

如何查询服务器的端口号

要查询服务器上某个服务正在使用的端口号,可以使用几个不同的工具和方法,具体方法取决于你对服务器的访问权限以及具体的操作系统。以下是一些常用的方法: 1. 在Linux系统上 1.1 使用 netstat 命令(需要管理员权限)&…...

AU6815集成音频DSP的2x25W数字型ClaSS D音频功率放大器(替代TAS5805)

1.特性 ● 输出配置 - 立体声 2.0: 2x25W (8Ω,21V,THD N 1%) - 立体声 2.0: 2x23W (6Ω, 18V,THD N 1%) ● 供电电压范围 - PVDD:4.5V-21V - DVDD: 1.8V 或者 3.3V ● 静态功耗 - 31.5mA at PVDD12V,BD - 18.5mA at PVDD12V,1SPW ● 音频性能指标 - Noise: ≤38uVrms - TH…...

DeepSeek R1开源模型的技术突破与AI产业格局的重构

引言​ 2025年,中国AI企业深度求索(DeepSeek)推出的开源模型DeepSeek-R1,以低成本、高性能和开放生态为核心特征,成为全球人工智能领域的技术焦点。这一模型不仅通过算法创新显著降低算力依赖,更通过开源策…...

打破认知壁垒重构科技驱动美好生活 大模型义务传播计划

这是一份从 CUDA 到 Agentic AI 的大模型算法工程师学习路线图,旨在帮助你系统地构建成为一名优秀大模型算法工程师所需的知识体系。 阶段一:基础夯实 🧱 这个阶段的目标是掌握编程、数学和机器学习的基础知识,为后续的深度学习和…...

【Web应用】 Java + Vue 前后端开发中的Cookie、Token 和 Swagger介绍

文章目录 前言一、Cookie二、Token三、Swagger总结 前言 在现代的 web 开发中,前后端分离的架构越来越受到欢迎,Java 和 Vue 是这一架构中常用的技术栈。在这个过程中,Cookie、Token 和 Swagger 是三个非常重要的概念。本文将对这三个词进行…...

本地部署AI工作流

🧰 主流 RAG / 工作流工具对比表(含是否免费、本地部署支持与资源需求) 工具名类型是否支持 RAG可视化目标用户是否免费支持本地部署本地部署一般配置Dify企业级问答系统平台✅✅非技术 & 企业用户✅ 免费版 商业版✅ 支持2C4G 起&…...

什么是VR全景相机?如何选择VR全景相机?

VR全景相机的定义、原理及特点 定义:VR全景相机是利用特殊镜头设计和图像处理技术,能够捕捉到360度全方位、无死角的高清影像,并通过虚拟现实技术将用户带入沉浸式全景环境的相机设备。 原理:VR全景相机通过集成多个鱼眼镜头&am…...

如何创建和使用汇编语言,以及下载编译汇编软件(Notepad++,NASM的安装)

一、汇编语言基础:用文本文档(Windows自带)初步尝试 1. 什么是汇编语言? 汇编语言是一种面向处理器(CPU)的低级编程语言,通过助记符(如MOV、ADD)直接控制硬件。它需要通过编译器(如…...

c++设计模式-单例模式

C++ 设计模式 - 单例模式详解 单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。这种模式在软件开发中非常常见,适用于需要全局唯一实例的场景,如配置管理器、日志记录器、数据库连接池等。 单例模式的基本实现 在 C++ 中,…...

Ubuntu开机自动运行Docker容器中的Qt UI程序

Ubuntu开机自动运行Docker容器中的Qt UI程序 引言为什么需要这样配置?解决方案概览详细实现步骤1. 创建容器启动脚本2. 创建系统服务3. 配置自动登录和显示设置常见问题解决方案1. 程序无法显示(X11权限问题)2. 分辨率设置不生效3. 服务启动失败安全注意事项结语附录:完整文…...

Python训练营打卡Day40(2025.5.30)

知识点回顾: 彩色和灰度图片测试和训练的规范写法:封装在函数中展平操作:除第一个维度batchsize外全部展平dropout操作:训练阶段随机丢弃神经元,测试阶段eval模式关闭dropout # 先继续之前的代码 import torch import …...

SpringBoot+vue+SSE+Nginx实现消息实时推送

一、背景 项目中消息推送,简单的有短轮询、长轮询,还有SSE(Server-Sent Events)、以及最强大复杂的WebSocket。 至于技术选型,SSE和WebSocket区别,网上有很多,我也不整理了,大佬的链…...

python中使用高并发分布式队列库celery的那些坑

python中使用高并发分布式队列库celery的那些坑 🌟 简单理解🛠️ 核心功能🚀 工作机制📦 示例代码(使用 Redis 作为 broker)🔗 常见搭配📦 我的环境📦第一个问题&#x1…...

哈工大计算机系统大作业 程序人生-Hello’s P2P

计算机系统 大作业 题 目 程序人生-Hello’s P2P 专 业 计算机与电子通信 学   号 2023111772 班   级 23L0503 学 生 张哲瑞     指 导 教 师 …...

计算机一次取数过程分析

计算机一次取数过程分析 1 取址过程 CPU由运算器和控制器组成,其中控制器中的程序计数器(PC)保存的是下一条指令的虚拟地址,经过内存管理单元(MMU),将虚拟地址转换为物理地址,之后交给主存地址寄存器(MAR),从主存中取…...

Halcon联合QT ROI绘制

文章目录 Halcon 操纵界面代码窗口代码 Halcon 操纵界面代码 #pragma once#include <QLabel>#include <halconcpp/HalconCpp.h> #include <qtimer.h> #include <qevent.h> using namespace HalconCpp;#pragma execution_character_set("utf-8&qu…...

力扣面试150题--二叉树的右视图

Day 53 题目描述 思路 采取层序遍历&#xff0c;利用一个high的队列来保存每个节点的高度&#xff0c;highb和y记录上一个节点的高度和节点&#xff0c;在队列中&#xff0c;如果队列中顶部元素的高度大于上一个节点的高度&#xff0c;说明上一个节点就是上一层中最右边的元素…...

数据绑定页面的完整的原理、逻辑关系、实现路径是什么?页面、表格、字段、属性、值、按钮、事件、模型、脚本、服务编排、连接器等之间的关系又是什么?

目录 一、核心概念:什么是数据绑定页面? 二、涉及的组件及其逻辑关系 页面(Page): 表格(Table): 字段(Field): 属性(Property): 值(Value): 按钮(Button): 事件(Event): 模型(Model): 脚本(Script): 服务(Service): 服务编排(Se…...

江西某石灰石矿边坡自动化监测

1. 项目简介 该矿为露天矿山&#xff0c;开采矿种为水泥用石灰岩&#xff0c;许可生产规模200万t/a&#xff0c;矿区面积为1.2264km2&#xff0c;许可开采深度为422m&#xff5e;250m。矿区地形为东西一北东东向带状分布&#xff0c;北高南低&#xff0c;北部为由浅变质岩系组…...

《Python 应用中的蓝绿部署与滚动更新:持续集成中的实践与优化》

《Python 应用中的蓝绿部署与滚动更新:持续集成中的实践与优化》 引言 在现代软件开发中,持续集成与持续部署(CI/CD)已成为标准实践。面对频繁发布与升级需求,蓝绿部署和滚动更新两种策略为 Python 应用提供了稳定、安全的发布方式。本文将深入探讨这两种策略的原理、适…...

C# 类和继承(所有类都派生自object类)

所有类都派生自object类 除了特殊的类object&#xff0c;所有的类都是派生类&#xff0c;即使它们没有基类规格说明。类object是唯 一的非派生类&#xff0c;因为它是继承层次结构的基础。 没有基类规格说明的类隐式地直接派生自类object。不加基类规格说明只是指定object为 基…...

02业务流程的定义

1.要想用好业务流程&#xff0c;首先必须得了解流程与认识流程&#xff0c;什么是业务流程。在认识流程之前&#xff0c;首先要理清两个基本概念&#xff0c;业务和流程。 业务指的是&#xff1a;个人的或者摸个机构的专业工作。流程&#xff0c;原本指的是水的路程&#xff0…...

cursor rules设置:让cursor按执行步骤处理(分析需求和上下文、方案对比、确定方案、执行、总结)

写在前面的话&#xff1a; 直接在cursor rules中设置一下内容&#xff1a; RIPER-5 MULTIDIMENSIONAL THINKING AGENT EXECUTION PROTOCOL 目录 RIPER-5 MULTIDIMENSIONAL THINKING AGENT EXECUTION PROTOCOL 目录 上下文与设置 核心思维原则 模式详解 模式1: RESEARCH…...

Linux操作系统之进程(四):命令行参数与环境变量

目录 前言&#xff1a; 什么是命令行参数 什么是环境变量 认识环境变量 PATH环境变量 HOME USER OLDPWD 本地变量 本地变量与环境变量的差异 核心要点回顾 结语&#xff1a; 前言&#xff1a; 大家好&#xff0c;今天给大家带来的是一个非常简单&#xff0c;但也十…...

Typora-macOS 风格代码块

效果&#xff1a; 替换 Typora安装目录中 themes 文件夹下的 base.user.css 文件&#xff0c;直接替换即可&#xff0c;建议先备份。 css&#xff1a; /* 语法高亮配色 */ .CodeMirror-line .cm-number { color: #b5cea8; } /* 数字 - 浅绿色 */ .CodeMirror-line .…...