RK3568 ffmpeg 视频推流验证:软编码性能分析与优化建议

前言

在嵌入式视频监控、直播推流等应用场景中,RK3568 作为一款高性能 ARM 处理器,其视频处理能力备受关注。本文通过实际测试,验证 RK3568 在 Ubuntu22 系统下使用 ffmpeg 进行视频推流的性能表现,重点分析 CPU 和内存占用情况,为后续优化提供参考依据。

测试环境

  • 硬件平台:飞凌 RK3568 开发板
  • 处理器:RK3568(4 核 Cortex-A55)
  • 操作系统:Ubuntu22
  • 推流工具:ffmpeg
  • 编码方式:H.264 软编码

一、ffmpeg 启动

首先,我们使用 ffmpeg 进行视频推流测试。启动命令如下:

在这里插入图片描述

从截图可以看到 ffmpeg 推流进程已成功启动,正在进行视频编码和推流操作。

二、拉流结果

使用播放器拉流后,观察推流效果:

在这里插入图片描述

测试结果:

  • 推流成功,视频画面正常
  • 延时 10s 以上,存在明显的延迟问题

延时较大是软编码推流的典型特征之一,后续需要通过硬件编码优化来解决。

三、资源占用

通过 top 命令监控系统资源占用情况:

在这里插入图片描述

从截图可以直观看到,ffmpeg 进程占用了大量系统资源。下面我们详细分析 CPU 和内存的占用情况。

四、RK3568 ffmpeg 资源占用分析

4.1 CPU 占用(最关键)

CPU 占用是本次测试的核心关注点,数据如下:

总 CPU 负载:

  • 4 核满载,总占用:65.6% + 62.2% + 85.3% + 70.3% ≈ 283%
  • 4 核满负载是 400%,当前已占用约 70% 的总算力

ffmpeg 进程 CPU 占用:

  • 主进程 PID 2202:261%(几乎占满 3 核)
  • 子线程合计:58.0% + 47.0% + 39.3% + 35.4% + 29.0% + 24.5% + 18.7% ≈ 251.9%

结论:纯软编码(h264),CPU 跑满,严重吃满算力

关键发现:

  1. RK3568 搭载 4 核 Cortex-A55,软编 1080P30 推流时,CPU 占用 250%+ 是典型特征
  2. 如果使用硬件编码(h264_rkmpp),正常占用应 < 10%,当前软编码占用是硬编的 30 倍以上

4.2 内存占用

内存占用相对较低,软编码对内存的需求不大,主要瓶颈在于 CPU 算力。

五、总结与优化建议

5.1 测试结论

指标测试结果评价
推流稳定性正常可用
延时10s+较大,需优化
CPU 占用250%+过高,吃满算力
内存占用较低正常

5.2 优化建议

  1. 启用硬件编码:使用 h264_rkmpp 硬件编码器替代软编码,CPU 占用可降至 10% 以下
  2. 降低分辨率/帧率:如果必须使用软编码,可适当降低视频参数减轻 CPU 负担
  3. 优化编码参数:调整 preset、profile 等参数,在质量和性能之间取得平衡

5.3 后续计划

下一阶段将测试 ffmpeg 编译 RK3568 版本(mmp 硬件加速),验证硬件编码的性能表现,届时 CPU 占用有望大幅降低。


作者:李江军
日期:2026-04-07
GitHub:LJJ931026
公众号:ALONE_WORK

本文为原创文章,转载请注明出处。如有问题欢迎在评论区留言讨论。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐