香橙派环境

依赖:

bash 复制代码
apt update
apt install -y \
  build-essential git cmake meson ninja-build pkg-config \
  libdrm-dev libx11-dev libxext-dev libxrender-dev libxrandr-dev \
  libasound2-dev libpulse-dev libv4l-dev

rkmmp:

bash 复制代码
git clone -b jellyfin-mpp --depth=1 https://github.com/nyanmisaka/mpp.git rkmpp
cd rkmpp
mkdir build && cd build
cmake .. \
  -DCMAKE_INSTALL_PREFIX=/usr \
  -DCMAKE_BUILD_TYPE=Release \
  -DBUILD_SHARED_LIBS=ON \
  -DBUILD_TEST=OFF
make -j$(nproc)
make install
cd ../..

rga:

bash 复制代码
git clone -b jellyfin-rga --depth=1 https://github.com/nyanmisaka/rga.git rkrga
meson setup rkrga rkrga_build \
  --prefix=/usr \
  --libdir=lib \
  --buildtype=release \
  -Dlibdrm=false \
  -Dlibrga_demo=false
ninja -C rkrga_build install

rkffmpeg:

bash 复制代码
git clone https://github.com/nyanmisaka/ffmpeg-rockchip.git
cd ffmpeg-rockchip
git checkout 57d5befee96f229b05fa09334a4d7a6f95a324bd


sed -i '/#include "rkrga_common.h"/a #define imsync(x) IM_STATUS_SUCCESS' libavfilter/rkrga_common.c
sed -i 's/RGA_BLIT_ASYNC/RGA_BLIT_SYNC/' libavfilter/rkrga_common.c

./configure \
  --prefix=/usr/local \
  --enable-gpl \
  --enable-version3 \
  --enable-pic \
  --enable-shared \
  --disable-static \
  --enable-libdrm \
  --enable-rkmpp \
  --enable-rkrga

make -j4
make install
ldconfig

验证:

bash 复制代码
# 查看编码器
ffmpeg -encoders | grep rkmpp
# 查看解码器
ffmpeg -decoders | grep rkmpp
# 查看 RGA 滤镜
ffmpeg -filters | grep rkrga

opencv:

bash 复制代码
cd /home/orangepi/huanjing

# 下载 OpenCV
git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 4.10.0
cd ..

# 下载 contrib
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout 4.10.0
cd ..





cd opencv
mkdir build
cd build

cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=/home/orangepi/huanjing/opencv_contrib/modules \
-D WITH_LIBV4L=ON \
-D WITH_FFMPEG=ON \
-D FFMPEG_INCLUDE_DIR=/usr/local/ffmpeg/include \
-D FFMPEG_LIBRARIES=/usr/local/ffmpeg/lib \
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_GENERATE_PKGCONFIG=YES \
-D ENABLE_PRECOMPILED_HEADERS=OFF \
-D BUILD_JAVA=OFF \
-D WITH_JAVA=OFF \
-D BUILD_opencv_java=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_EXAMPLES=OFF ..



make -j4
sudo make install
sudo ldconfig

opencv

1. 先编译了 FFmpeg 60 + rkmpp 硬件解码

  • 路径:/usr/local/ffmpeg
  • 开启了瑞芯微硬解:--enable-rkmpp
  • 这是你视频硬解的核心

2. 备份 + 移走系统旧版 FFmpeg 58

复制代码
sudo mv /usr/lib/aarch64-linux-gnu/libav* /opt/ffmpeg58_backup/

目的:不让 OpenCV 再找到旧版 58!

3. 移走 pkgconfig 配置文件(最关键一步)

复制代码
sudo mv /usr/lib/aarch64-linux-gnu/pkgconfig/libav*.pc /opt/ffmpeg58_pc_backup/

4. 告诉系统去哪里找 FFmpeg 60

复制代码
export PKG_CONFIG_PATH=/usr/local/ffmpeg/lib/pkgconfig:$PKG_CONFIG_PATH
sudo ldconfig

5. 执行 最终版 CMake

强制指定 FFmpeg 60 的路径:

复制代码
-D FFMPEG_INCLUDE_DIRS=/usr/local/ffmpeg/include
-D FFMPEG_LIBRARIES=/usr/local/ffmpeg/lib/...

6. 编译安装

复制代码
make -j$(nproc)
sudo make install
相关推荐
戴为沐20 小时前
Linux内存扩容指南
linux
zylyehuo1 天前
Linux 彻底且安全地删除文件
linux
用户805533698032 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297912 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
Web3探索者4 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo4 天前
Linux系统中网线与USB网络共享冲突
linux
Sokach10155 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
AlfredZhao5 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3107 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode7 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏