标题:逆天Qt/在嵌入式板子上同时播放4路8K视频/硬解码GPU绘制/RK3588性能太凶残
作者:liudianwu
日期:2025-07-24 11:28
内容:
说来也奇怪,最近RK3588的用户扎堆,近期连续远程了七八个板子都是3588,有firefly的,有野火鲁班猫的,有正点原子的等,总体都大差不差,通过各种性能对比测试,鲁班猫性能更突出。在我们普通的PC机器电脑,播放一个8K,直接GPU干满,除非显卡强劲,普通的显卡一般就只能支撑1路265格式的8K播放,以为这就是极限了,没想到在小小的嵌入式板子上,播放8K也是这么的流畅,不愧是专有的RKMPP硬解方案,这还不是极限,开了4路8K,居然也行,绝对的震惊,颠覆了我的认知,这才几百块的核心板,这么凶残吗?
下面是一个使用纯 Qt 和 FFmpeg 实现 Rockchip MPP (RKMPP) 硬件解码的示例代码。这个示例展示了如何初始化 FFmpeg 并使用 RKMPP 进行硬件解码。
## 准备工作
1. 确保已安装 FFmpeg 并启用了 RKMPP 支持
2. 确保 Qt 开发环境已配置好
3. 需要在 Rockchip 平台上运行(如 RK3399, RK3588 等)
## 完整代码实现
```cpp
#include
#include
#include
#include
extern "C" {
#include
#include
#include
#include
#include
#include
}
class RKMPPDecoder {
public:
RKMPPDecoder() : fmt_ctx(nullptr), video_dec_ctx(nullptr), hw_device_ctx(nullptr) {}
~RKMPPDecoder() { cleanup(); }
bool init(const QString &filePath) {
// 注册所有 FFmpeg 组件
avformat_network_init();
avdevice_register_all();
// 打开输入文件
if (avformat_open_input(&fmt_ctx, filePath.toUtf8().constData(), nullptr, nullptr) < 0) {
qWarning()