编译支持 rkmpp 的 ffmpeg 实现硬解视频

青雨紫峰 7天前 ⋅ 45 阅读
  • 安装编译相关工具

      # 下载开源项目源码用
      sudo apt-get install -y git
      # 常用的编译工具
      sudo apt-get install -y gcc g++ cmake make
      # 编译libva时需要
      sudo apt-get install pkg-config  
      # 构建工具
      sudo apt-get install meson
      # 部分依赖的库
      sudo apt install libdrm-dev libdav1d-dev libx264-dev libx265-dev 
    
  • 开源项目地址:https://github.com/nyanmisaka/ffmpeg-rockchip

    按照wiki文档说明进行编译安装即可

    wiki:https://github.com/nyanmisaka/ffmpeg-rockchip/wiki/Compilation

# Native compilation on ARM/ARM64 host

# Build MPP
mkdir -p ~/dev && cd ~/dev
git clone -b jellyfin-mpp --depth=1 https://github.com/nyanmisaka/mpp.git rkmpp
pushd rkmpp
mkdir rkmpp_build
pushd rkmpp_build
cmake \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_BUILD_TYPE=Release \
    -DBUILD_SHARED_LIBS=ON \
    -DBUILD_TEST=OFF \
    ..
make -j $(nproc)
make install


# Build RGA
mkdir -p ~/dev && cd ~/dev
git clone -b jellyfin-rga --depth=1 https://github.com/nyanmisaka/rk-mirrors.git rkrga
meson setup rkrga rkrga_build \
    --prefix=/usr \
    --libdir=lib \
    --buildtype=release \
    --default-library=shared \
    -Dcpp_args=-fpermissive \
    -Dlibdrm=false \
    -Dlibrga_demo=false
meson configure rkrga_build
ninja -C rkrga_build install


# Build the minimal FFmpeg (You can customize the configure and install prefix)
mkdir -p ~/dev && cd ~/dev
git clone --depth=1 https://github.com/nyanmisaka/ffmpeg-rockchip.git ffmpeg
cd ffmpeg
./configure --prefix=/usr --enable-gpl --enable-version3 --enable-libdav1d --enable-libx264 --enable-libx265 --enable-libdrm --enable-rkmpp --enable-rkrga
make -j$(nproc)

# Try the compiled FFmpeg without installation
./ffmpeg -decoders | grep rkmpp
./ffmpeg -encoders | grep rkmpp
./ffmpeg -filters | grep rkrga

# Install FFmpeg to the prefix path
make install

安装完成后查询当前FFmpeg可以调动的硬件

ffmpeg -hwaccels