什么是FFMedia?
RK3588 系列芯片擁有超強的視頻編解碼能力,尤其在多路視頻并發處理上表現優異。然而我們在視頻處理應用開發時,經常面對 gstreamer、ffmpeg 等通用框架未能充分發揮芯片性能、官方原始 api 太靠近底層、學習成本高、周期長、開發工作量大等問題。
為此,Firefly 基于 Rockchip MPP/RGA 庫,開發了一套性能高效、接口簡潔、功能完善的視頻處理框架——FFMedia。它完整支持市面上主流容器、協議的媒體數據前處理和后處理,同時還支持媒體數據從內存、管道及文件描述符等方式輸入和輸出,方便對接其他應用和編程語言。
各單元主要組件如下:
輸入單元
包含 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 等不同版本系統。
下載源碼
拉取源碼
gitclonehttps://github.com/Firefly-rk-linux-utils/ffmedia_release.git
編譯測試
參考:編譯與運行
開發接口
所有接口支持 C++ 與 Python 調用。
C++ 語言范式
autortsp_c =make_shared("rtsp://xxx");autoret = rtsp_c->init()
Python 語言范式
rtsp_c= ff_pymedia.ModuleRtspClient("rtsp://xxx")ret= rtsp_c.init()
典型場景與性能測試
測試環境:ITX-3588J
低延遲實時流播放
測試播放 H265 的 1080p@30fps 的 RTSP 實時流,使用相關模塊:
- RTSP 客戶端:
采用自實現的輕量級 RTSP 客戶端模塊;取流一幀耗時 0.03 毫秒左右;
- MPP 解碼:
基于 MPP 實現的解碼模塊;解碼一幀耗時 1.2 毫秒(多通道模式可低至0.7)左右;
- DRM 顯示:
基于 DRM 框架實現的顯示模塊;送顯一幀耗時 0.9 毫秒左右。
可計算出直播一路 H265(p幀系列為順序方式)、1080P 延遲:數據流從網絡到解碼成 YUV 裸流延遲在1.3 毫秒左右,畫面顯示還受到屏幕刷新率影響。如 60fps 的屏幕刷新間隔為 16.667 毫秒,可得出顯示延遲在 0.9~16.667 毫秒之間。綜上,直播一路 1080P 視頻的最低延遲為 2.4 毫秒左右。
性能指標如下表所示:

簡單測試命令如下:
./demo rtsp://xxx -d 0
測試播放 32 路 H265 的 1080p@30fps rtsp 實時流性能指標如下表所示:

簡單測試命令如下:
./demo rtsp://xxx -d 0 -c 32
實時視頻流轉碼轉播
測試將 H265 的 1080p@30fps 的 RTSP 實時流轉碼成 H264 的 RTSP 流,使用相關模塊:
- RTSP 客戶端:
輕量級 RTSP 客戶端模塊;取流一幀耗時 0.03 毫秒左右;
- MPP 解碼:
基于 MPP 實現的解碼模塊;解碼一幀耗時 1.2 毫秒(多通道模式可低至0.7)左右;
- MPP 編碼:
基于 MPP 實現的編碼模塊;編碼一幀耗時 4.8 毫秒(多通道模式可低至 2.5)左右;
- RTSP 服務端:
輕量級 RTSP 服務端模塊;推流一幀耗時 0.1 毫秒左右。
可初步估計視頻幀從取流、轉碼最后推流理論耗時為6.3毫秒左右。
性能指標如下表所示:

簡單測試命令如下:
./demo rtsp://xxx -e h264 -p 8554# 可用demo或其他軟件拉取轉碼后的rtsp流:rtsp://ip:8554/live/0
-
芯片
+關注
關注
463文章
54181瀏覽量
467806 -
視頻編解
+關注
關注
0文章
3瀏覽量
6327 -
Firefly
+關注
關注
2文章
547瀏覽量
9141
發布評論請先 登錄
軟通動力基于OpenClaw開源框架深度自研端側智能體平臺
憶聯正式推出面向PCIe 5.0的自研M.2 SLT測試系統
LMH1981多格式視頻同步分離器:高性能視頻應用的理想之選
國產高性能ONFI IP解決方案全解析
季豐電子自研PCB管理系統的簡單介紹
數據全復用高性能池化層設計思路分享
全志A733:高性能八核AI處理器,智能終端優選
速騰聚創全棧自研數字激光雷達芯片通過AEC-Q認證
國產真自研高性能圖形 GPU 重磅發布:跑分超 RTX4060,暢玩《黑神話?悟空》
睿思芯科攜靈羽處理器亮相2025 RISC-V中國峰會
又一顆國產GPU芯片成功點亮!6nm制程,自研TrueGPU架構
高端芯片自研,服務器芯片傳來好消息!
迅為iTOP-RK3576開發板/核心板視頻編解碼能力強高性能低功耗的應用處理芯片
國內首款自研ASIC芯片通用網卡 填補25G以上高性能網卡市場空白
【Firefly自研】高性能全流程視頻處理框架:FFMedia
評論