找回密码
 立即注册
首页 业界区 安全 逆天Qt/在嵌入式板子上同时播放4路8K视频/硬解码GPU绘制 ...

逆天Qt/在嵌入式板子上同时播放4路8K视频/硬解码GPU绘制/RK3588性能太凶残

胆饬 3 天前
说来也奇怪,最近RK3588的用户扎堆,近期连续远程了七八个板子都是3588,有firefly的,有野火鲁班猫的,有正点原子的等,总体都大差不差,通过各种性能对比测试,鲁班猫性能更突出。在我们普通的PC机器电脑,播放一个8K,直接GPU干满,除非显卡强劲,普通的显卡一般就只能支撑1路265格式的8K播放,以为这就是极限了,没想到在小小的嵌入式板子上,播放8K也是这么的流畅,不愧是专有的RKMPP硬解方案,这还不是极限,开了4路8K,居然也行,绝对的震惊,颠覆了我的认知,这才几百块的核心板,这么凶残吗?
1.jpeg

2.jpeg

3.jpeg

下面是一个使用纯 Qt 和 FFmpeg 实现 Rockchip MPP (RKMPP) 硬件解码的示例代码。这个示例展示了如何初始化 FFmpeg 并使用 RKMPP 进行硬件解码。
准备工作


  • 确保已安装 FFmpeg 并启用了 RKMPP 支持
  • 确保 Qt 开发环境已配置好
  • 需要在 Rockchip 平台上运行(如 RK3399, RK3588 等)
完整代码实现

[code]#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() codecpar->codec_id == AV_CODEC_ID_HEVC) {            decoder = avcodec_find_decoder_by_name("hevc_rkmpp");        } else if (video_stream->codecpar->codec_id == AV_CODEC_ID_VP9) {            decoder = avcodec_find_decoder_by_name("vp9_rkmpp");        }        if (!decoder) {            qWarning() codec_id);            return false;        }        // 创建解码器上下文        video_dec_ctx = avcodec_alloc_context3(decoder);        if (!video_dec_ctx) {            qWarning() codecpar) < 0) {            qWarning()
您需要登录后才可以回帖 登录 | 立即注册