胆饬 发表于 6 天前

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

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



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


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

#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()
页: [1]
查看完整版本: 逆天Qt/在嵌入式板子上同时播放4路8K视频/硬解码GPU绘制/RK3588性能太凶残