RK3588 Opencv-ffmpeg-rkmpp-rkrga編譯與測試
- 硬件背景說明
- 編譯環境準備
- 1. 編譯MPP(媒體處理平臺)
- 2. 編譯RGA(圖形加速庫)
- 3. 構建支持硬件加速的FFmpeg
- 重要代碼修改說明
- 4. 驗證安裝
- 5.FFmpeg轉碼測試
- OpenCV編譯集成
- Python OpenCV+FFmpeg測試
硬件背景說明
RK3588是瑞芯微推出的旗艦級ARM處理器,具備6TOPS NPU和8K視頻編解碼能力。其特有的硬件加速模塊包括:
- MPP (Media Process Platform):視頻編解碼硬件加速模塊
- RGA (Raster Graphic Acceleration):2D圖像處理加速模塊
- NPU (Neural Processing Unit):神經網絡加速單元
通過結合這些硬件加速模塊,可大幅提升視頻處理效率。例如在1080P視頻縮放場景,RGA加速相比CPU處理可提升30倍性能。
編譯環境準備
1. 編譯MPP(媒體處理平臺)
# 卸載舊版MPP防止版本沖突
dpkg --purge --force-all librockchip-mpp-dev librockchip-mpp1 rockchip-mpp-demos# 獲取指定版本源碼(1.0.9版已驗證兼容性)
git clone https://github.com/rockchip-linux/mpp.git
cd mpp
git checkout 1.0.9# 配置編譯選項
mkdir build
cd build
cmake \-DCMAKE_INSTALL_PREFIX=/usr/local \-DCMAKE_BUILD_TYPE=Release \-DBUILD_SHARED_LIBS=ON \-DBUILD_TEST=OFF ..
make -j4
make install
關鍵參數說明:
BUILD_SHARED_LIBS=ON
:生成動態鏈接庫(.so文件),方便其他程序調用CMAKE_INSTALL_PREFIX
:指定頭文件和庫的安裝路徑,避免污染系統目錄
2. 編譯RGA(圖形加速庫)
# 使用特定分支的RGA實現
git clone -b jellyfin-rga --depth=1 https://github.com/nyanmisaka/rk-mirrors.git rkrga
cd rkrga# 配置Meson構建系統
mkdir install rkrga_build
meson setup . rkrga_build \--prefix=/usr/local \--libdir=lib \--buildtype=release \--default-library=shared \-Dcpp_args=-fpermissive \-Dlibdrm=false \-Dlibrga_demo=false
meson configure rkrga_build
ninja -C rkrga_build install
3. 構建支持硬件加速的FFmpeg
# 獲取定制版FFmpeg源碼
git clone https://github.com/nyanmisaka/ffmpeg-rockchip.git
cd ffmpeg-rockchip
git checkout 57d5befee96f229b05fa09334a4d7a6f95a324bd # 指定兼容性驗證的提交# 安裝依賴庫
apt install libdrm-dev -y # DRM顯示驅動開發包# 配置編譯參數
./configure --prefix=/usr/local --enable-gpl --enable-version3 \--enable-pic --enable-shared --disable-static \--enable-libdrm --enable-rkmpp --enable-rkrga
make -j4
make install
重要代碼修改說明
修改rkrga_common.c
文件:
diff --git a/libavfilter/rkrga_common.c b/libavfilter/rkrga_common.c
index 7ca88ccae9..8f80ee4fe4