香橙派5Plus使用rkmpp硬件解码的速度优化与输出格式更改

一、前言

        最近在做图像解码的硬件加速,开发板使用的香橙派 5Plus,CPU为 RK3588。

        问题一:手动编译了新的 ffmpeg-rockchip 后,解码速度提升了近一倍!

        问题二:使用 h264_rkmpp 解码器的默认输出格式为 RK_FORMAT_YCbCr_420_P(Planar),但是 RK 官方的 demo 默认都是使用 RK_FORMAT_YCbCr_420_SP(Semi-Planar),也就是 nv12。具体的细节可以看这篇文章:

YUV422 YUV420 Planar Semi-Planar详解_yuv420semiplanar-优快云博客https://blog.youkuaiyun.com/qq_25005909/article/details/79480935https://blog.youkuaiyun.com/qq_25005909/article/details/79480935

二、解码速度和像素格式对比

        具体的编译流程见这篇文章:

编译支持 RKmpp 和 RGA 的 ffmpeg 源码_rk3588手动编译ffmpeg源码-优快云博客https://blog.youkuaiyun.com/plmm__/article/details/146188927?spm=1001.2014.3001.5501https://blog.youkuaiyun.com/plmm__/article/details/146188927?spm=1001.2014.3001.5501

出厂系统

测试解码:

ffmpeg -c:v h264_rkmpp -i 720p60hz.mp4 -f null -

这里的测试视频我使用1280*720的像素,解码过程中,使用另一个会话查看 vpu 的使用情况:

cat /proc/mpp_service/sessions-summary

可以看到是正常调用的:

可以看到输出的格式为 yuv420p,对应枚举类型 RK_FORMAT_YCbCr_420_P(Planar)。

此时速度为11.1倍:

手动编译

解码情况:

可以看到输出的格式为 nv12,对应枚举类型 RK_FORMAT_YCbCr_420_SP(Semi-Planar)。

查看vpu:

       此时速度为24.8倍:

三、解码器对比

        使用下面的方式查看:

ffmpeg -h decoder=h264_rkmpp

出厂系统

手动编译

        可以看到,它们支持的硬件设备不同,像素格式也不同,我怀疑出场系统的 ffmpeg 虽然使用了rkmpp解码,但是可能更多的还是依赖cpu,具体原因香橙派客服选择拒绝我的问题,假装没看见。

        通过解码速度可以看出,手动编译的确实更适合实时传输的场景,例如我正在做的 YOLO 加速引擎,视频的解码就是一个需要优化的因素。

四、其他

        关于 RGA 加速库的使用,目前还在开发和探索,RGA 也是可以编译进 ffmpeg-rockchip 的,目前我是直接操作 rga 的接口,相对更便捷一些。

<think>好的,我现在需要帮助用户解决如何在MPV播放器中配置RKMPP硬解以实现硬件加速播放的问题。首先,我得回顾一下用户的问题,确保我理解正确。用户之前可能已经提到了RK3328或RK3399的媒体脚本,或者相关引用中的内容,但根据当前的问题,用户直接询问的是MPV的配置方法。 首先,我需要确定用户的操作系统环境。通常,MPV在Linux系统下使用较多,尤其是像Armbian这样的嵌入式系统,比如Rock64或Renegade板子。但用户可能使用的是其他发行版,比如Ubuntu或Debian。不过,RKMPP主要支持的是Rockchip的处理器,所以用户可能是在使用基于Rockchip的设备,比如RK3399或RK3328的开发板。 接下来,我需要回忆MPV配置硬件加速的一般方法。MPV支持多种硬件加速后端,比如VAAPI、VDPAU等,而RKMPP是Rockchip的专有解决方案。根据引用中的信息,用户需要确保已经安装了支持RKMPPFFmpeg库,这可能是一个定制的版本,比如nyanmisaka的ffmpeg-rockchip仓库。因此,安装正确的FFmpeg版本是关键的第一步。 然后,MPV的配置文件通常位于~/.config/mpv/mpv.conf,用户需要在这个文件中添加相应的硬件解码选项。根据RKMPP的要求,可能需要设置hwdec=rkmpp来启用硬件解码。同时,输出方式可能需要调整,比如使用DRM或GBM后端,特别是在没有X11的环境下,比如使用KMS的情况。 另外,用户可能需要安装额外的依赖库,比如librga,这是Rockchip的RGA(Raster Graphic Acceleration)库,用于处理图像格式转换和后处理。如果用户的环境缺少这些库,硬件加速可能无法正常工作。 测试阶段,用户需要使用mpv命令播放视频,并添加--hwdec=rkmpp参数来强制使用RKMPP解码。同时,检查日志输出中的解码器状态,确认是否成功启用了硬件加速。如果出现错误,可能需要检查FFmpeg是否支持RKMPP,或者依赖库是否安装正确。 此外,引用中提到MPV、Gstreamer和Kodi都支持RKMPP,所以用户可能有其他播放器的需求,但当前问题集中在MPV上。需要确保提供的步骤涵盖所有必要的配置点,比如配置文件修改、依赖安装、测试命令等。 可能的问题包括:用户是否已经正确编译安装了支持RKMPPFFmpeg?系统是否有足够的权限访问硬件解码器?是否需要特定的内核模块加载?例如,Rockchip的VPU驱动可能需要内核中的相关模块,如mpp_vcodec等。不过,引用中提到的Armbian脚本可能已经处理了这些依赖,所以用户可能已经具备基本的环境,只需要配置MPV即可。 另外,用户可能需要调整视频输出驱动,比如使用--vo=gpu --gpu-context=drm的方式来直接使用DRM而非X11,这可能提高性能和兼容性。特别是在嵌入式设备上,X11可能不是最优选择。 总结步骤应该是: 1. 安装依赖库(librga、librockchip-mpp等)。 2. 确保FFmpeg支持RKMPP,可能需要从特定仓库编译安装。 3. 配置MPV的配置文件,启用rkmpp硬件解码。 4. 测试播放并验证是否使用硬件加速5. 处理可能的输出后端问题,如使用DRM或GBM。 同时,需要考虑到用户可能遇到的常见问题,比如解码失败、黑屏、性能不佳等,并提供相应的解决建议,比如检查日志、更新驱动或调整输出参数。 最后,根据用户的问题生成相关的问题,比如如何验证是否成功启用硬解、如何优化性能、其他硬解方案的比较等,以帮助用户进一步探索。</think>### MPV播放器配置RKMPP硬解教程 #### 环境准备 1. **系统要求**:需基于Rockchip芯片设备(如RK3399/RK3328)运行Armbian/Ubuntu等Linux系统[^3] 2. **安装依赖库**: ```bash sudo apt install librga-dev librockchip-mpp-dev ``` 3. **编译FFmpeg支持RKMPP**: ```bash git clone https://github.com/nyanmisaka/ffmpeg-rockchip cd ffmpeg-rockchip && ./configure --enable-rkmpp && make -j4 sudo make install ``` #### 配置步骤 1. **创建MPV配置文件**: ```bash mkdir -p ~/.config/mpv && nano ~/.config/mpv/mpv.conf ``` 2. **添加核心参数**: ```ini hwdec=rkmpp # 启用RKMPP硬解 vo=gpu # 使用GPU视频输出 gpu-context=drm # 推荐KMS显示模式[^3] profile=gpu-hq # 启用高质量渲染 ``` #### 验证方法 ```bash mpv --hwdec=rkmpp --vo=drm example.mp4 ``` 查看控制台输出应包含: ```log [ffmpeg/video] Using RKMPP decoder. [vo/gpu] HWACCEL: enabled via rkmpp ``` #### 常见问题处理 1. **黑屏问题**: - 尝试切换输出后端: ```ini vo=libmpv # X11环境使用 vo=gpu-wayland # Wayland环境 ``` 2. **解码失败**: - 检查FFmpeg支持性: ```bash ffmpeg -hwaccels | grep rkmpp ``` - 更新内核到5.10+版本(需包含`mpp_vcodec`模块) #### 性能对比 | 解码模式 | 4K HEVC 10bit | 功耗 | |---------|--------------|-----| | 软解 | 18fps | 5W | | RKMPP硬解| 60fps | 2W |
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

plmm烟酒僧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值