...
| 异常现象 | 可能原因 | 排查方法 |
|---|---|---|
| 终端提示 “No such device” | /dev/video0 节点不存在 | 1.检查 HDMI IN 驱动是否加载:lsmod grep rk_hdmirx
|
| 显示屏无播放窗口 | DISPLAY 环境变量配置错误 | 执行 echo $DISPLAY 确认值为 :0.0,或切换到本地终端执行命令 |
| 画面卡顿 / 花屏 | 信号源分辨率不兼容 | 将 HDMI 信号源输出分辨率调整为 1080P@60Hz 后重新测试 |
3.视频硬解码性能测试
MMP视频解码器规格:
...
| language | shell |
|---|---|
| title | bash |
...
1.测试环境(MPP 视频硬解码设备)
基于 Rockchip MPP(Media Process Platform)框架的硬解码工具信息:
| 项目 | 详情 |
|---|---|
| 工具名称 | ppvidedec |
| 工具版本 | 1.14.4 |
...
| 依赖库路径 | /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstrockchipmpp.so |
...
| 支持编码格式 | HEVC/H. |
...
| 265、AVC/H.264、VP8、VP9 | |
| 解码类型 | 硬件加速解码 |
| 最大解码能力 | 8K 10-bit 视频解码,支持 8K 60Hz 视频输出 |
2.测试步骤:
2.测试步骤:
1.准备测试视频:
| 代码块 | ||||
|---|---|---|---|---|
| ||||
#假设视频路径:#1.本地测试视频路径: C:\Users\Administrator\Desktop\test_video\4K_60fps.mp4 # 将视频文件推送到开发板的/tmp目录2.通过 ADB 将视频推送至开发板: adb push "C:\Users\Administrator\Desktop\boot\4K_60fps.mp4" /tmp/ |
执行硬解码测试: 2.2.执行硬解码测试(以 H.264 格式为例)
| 代码块 | ||||
|---|---|---|---|---|
| ||||
# 验证硬解码功能(以H.264格式视频为例)使用gst-launch-1.0调用 MPP 硬解码工具,验证解码功能: gst-launch-1.0 filesrc location=/tmp/4K_60fps.mp4 ! \ qtdemux ! \ h264parse ! \ mppvideodec ! \ videoconvert ! \ autovideosink |
执行命令后显示屏会出现解码视频:
...
2.3.测试验证要点
| 代码块 | ||||
|---|---|---|---|---|
| ||||
#Setting 窗口2:查看整体系统状态 adbpipeline shellto "top -bn1 | head -20" |
系统整体状态:
| 代码块 | ||||
|---|---|---|---|---|
| ||||
CPU使用率:用户态5.0% + 系统态5.0% = 总10%,空闲89.9%
内存:8GB总内存,仅使用731MB,空闲6GB
硬件解码工作正常:CPU占用率仅5.9%,远低软件解码
性能优秀:系统整体很空闲,解码4K视频无压力
内存使用低:仅占用26MB内存,硬件解码不占用大量内存 |
PAUSED ...
Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Prerolled, waiting for async message to finish...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
#日志逐行说明:
#Setting pipeline to PAUSED ...:GStreamer 管道进入暂停状态,开始初始化音视频解码组件(如 MPP 硬解码器),无报错代表组件加载初始化无异常;
#Pipeline is PREROLLING ...:管道进入预滚动阶段,开始读取视频文件并解析码流,为硬解码做数据准备;
#Pipeline is PREROLLED ...:预滚动完成,视频码流解析成功,RK3566 的 MPP 硬解码单元已获取有效数据;
#Prerolled, waiting for async message to finish...:预滚动完成后等待异步消息确认,是 GStreamer 适配嵌入式设备的正常等待流程,无异常;
#Setting pipeline to PLAYING ...:管道切换至播放状态,硬解码开始输出视频帧至显示设备;
#New clock: GstSystemClock:系统时钟同步完成,音视频时序匹配,无卡顿、音画不同步风险。 |
(注:配图为视频正常播放时的界面示例,可直观验证画面无畸变、显示正常)
3.开启第二个终端进行cpu占用率监控
3.1操作步骤
| 代码块 | ||||
|---|---|---|---|---|
| ||||
# 操作说明:通过ADB远程执行top命令,查看系统资源占用(取前20行关键信息)
adb shell "top -n1 | head -20" |
3.2系统状态输出示例(终端执行后输出如下,红框为核心监控项)
| 代码块 | ||||
|---|---|---|---|---|
| ||||
#
top - 06:01:06 up 17:57, 1 user, load average: 2.10, 2.61, 2.56
Tasks: 276 total, 2 running, 274 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.8 us, 6.0 sy, 0.0 ni, 90.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 3899.3 total, 91.5 free, 822.6 used, 2985.2 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 1694.6 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1981 root 20 0 4747336 266284 215960 R 50.0 6.7 877:37.20 Xorg
2456 blueber+ 20 0 1839264 74872 56884 S 12.5 1.9 60:46.06 xfwm4
2513 blueber+ 20 0 314400 39220 29936 S 12.5 1.0 44:54.98 xfce4-p+
38043 root 20 0 529528 23188 11316 S 12.5 0.6 0:13.87 gst-lau+
38263 root 20 0 9048 3400 2712 R 6.2 0.1 0:00.02 top
1 root 20 0 165012 9932 7220 S 0.0 0.2 5:17.56 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.45 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par+
8 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_perc+
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_tas+
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_tas+
11 root 20 0 0 0 0 S 0.0 0.0 0:04.57 ksoftir+ |
3.3状态分析
| 监控项 | 结果 | 说明 |
|---|---|---|
| CPU 整体负载 | 用户 3.8% + 系统 6.0% + 空闲 90.2% | 空闲占比超 90%,CPU 资源冗余充足;当前高占比进程为桌面服务(Xorg、xfwm4),属于系统基础负载 |
| 内存状态 | 总 3899MB,已用 829MB,可用 2968MB | 内存剩余充足,无内存不足风险 |
| 关键进程 CPU 占比 | 桌面服务(Xorg)占 50%,终端(tilda)占 12.5% | 若此时运行视频播放进程,需重点关注其 % CPU 值(硬解码生效时通常<10%) |
| 内存占用 | 已用 829MB,缓存占 2864MB | 内存缓存占比高,系统数据读写效率有保障 |
3.4测试结论:视频功能播放正常,无卡顿、花屏现象;CPU 占用率低(硬解码加速生效),系统资源负载符合预期。测试结果:视频能流畅播放,无卡顿、花屏现象,CPU 占用率低(硬件加速生效
四、音频接口测试
...


