User:Fireflyteam/FFMedia
| 您提交的内容很可能并不适合维基百科。在2025年8月13日由Talimu0518 (留言)审阅。 在2025年8月13日由Talimu0518 (留言)审阅。最后由Talimu0518于3個月前编辑。 |
FFMedia是一个基于Rockchip MPP/RGA库的多媒体处理框架,由Firefly团队开发,主要用于音视频编解码、封装转换及流媒体处理。
功能
[编辑]该框架针对RK3588系列芯片进行了优化。RK3588芯片具备较强的视频编解码能力,支持多路视频并发处理。框架提供了硬件加速方案,包含以下主要组件:
输入单元
支持rtsp、rtmp、whep、camera、file等输入单元
包含硬件解码、编码、图像处理及推理单元等支持硬件加速的处理单元;
支持rtsp、rtmp、whip、drm display、gb28181、file等输出单元。
技术架构
[编辑]核心架构
- 模块化架构:整个框架采用 Productor / Consumer 模型,将各个单元都抽象为 ModuleMedia 类;
- 高效内存管理技术:单元之间及硬件的数据交互均使用零拷贝实现。
媒体处理能力
- 格式支持:支持 mp4 / mkv / flv / ts 等主流容器格式及 rtsp / rtmp / gb28181 / webrtc 等主流协议的解析与封装;
- 转码和处理:支持视频转码、裁剪、拼接、水印添加等处理;
- 流媒体处理:支持从摄像头、网络流等源拉取媒体流进行实时处理、转发和存储等处理。
性能优化
- 低负载和低延迟性:深度优化数据流处理及传递,与 GStreamer 和 FFmpeg 相比,CPU 占用更低,且具备更高的数据实时性;
- 高效 Python 模块:通过 pybind11 实现 C++ 和 Python 之间的无缝互操作性;
- 统一接口:屏蔽和优化复杂的底层操作,为使用者提供高效、统一的接口。
平台兼容性
- 芯片级适配:支持 Firefly 平台下所有瑞芯微芯片机器版型;
- 系统支持:支持 Buildroot / Ubuntu / Debian 等不同版本系统。
性能测试
[编辑]在ITX-3588J平台上的测试数据:
实时流播放测试
测试播放 H265 的 1080p@30fps 的 RTSP 实时流,使用相关模块:
RTSP客户端耗时:约0.03毫秒/帧
MPP解码耗时:约1.2毫秒/帧
DRM显示耗时:0.9-16.667毫秒/帧
可计算出直播一路 H265(p帧系列为顺序方式)、1080P 延迟:数据流从网络到解码成 YUV 裸流延迟在1.3 毫秒左右,画面显示还受到屏幕刷新率影响。如 60fps 的屏幕刷新间隔为 16.667 毫秒,可得出显示延迟在 0.9~16.667 毫秒之间。综上,直播一路 1080P 视频的最低延迟为 2.4 毫秒左右。
测试命令示例:./demo rtsp://xxx -d 0
视频转码测试
测试将 H265 的 1080p@30fps 的 RTSP 实时流转码成 H264 的 RTSP 流,使用相关模块:
RTSP客户端耗时:0.03毫秒/帧
MPP解码耗时:1.2毫秒/帧
MPP编码耗时:4.8毫秒/帧
RTSP服务端耗时:约0.1毫秒/帧
可初步估计视频帧从取流、转码最后推流理论耗时为6.3毫秒左右。
测试命令示例:./demo rtsp://xxx -e h264 -p 8554
参考资料
[编辑]引用
- ^ Firefly. 【Firefly自研】高性能全流程视频处理框架:FFMedia. 微信公众平台. [2025-08-13].
- ^ 1. 介绍 — Firefly Wiki. wiki.t-firefly.com. [2025-08-13].
- ^ Firefly开源团队自研|高性能全流程视频处理框架,释放RK3588编解码潜力!. 中关村. [2025-08-13].
- ^ Firefly开源FFMedia框架,高效处理瑞芯微平台音视频. 中关村. [2025-08-13].
