下载
git clone --depth=1 https://github.com/nyanmisaka/ffmpeg-rockchip.git ffmpeg
准备 sysroot
将 QuarkPi-CA2_SDK_v1.0 生成的 rootfs.img 挂载 mnt 目录
创建目录
mkdir ~/mnt
挂载
sudo mount -o loop rootfs.img ~/mnt
修正 libm.so 软链接
sudo ln -sf libm.so.6 ~/mnt/usr/lib/aarch64-linux-gnu/libm.so
设置 pkg-config 相关环境变量
使用主机上的 pkg-config,到 sysroot 下查找 libdrm、rkmpp、rkrga 库
export PKG_CONFIG_SYSROOT_DIR=/home/lingke/mnt
export PKG_CONFIG_PATH=/home/lingke/mnt/usr/lib/aarch64-linux-gnu/pkgconfig
配置
./configure \
--prefix=/home/lingke/projects/rk3588s_install_path/ffmpeg \
--enable-gpl \
--enable-version3 \
--enable-libdrm \
--enable-rkmpp \
--enable-rkrga \
--enable-libv4l2 \
--enable-cross-compile \
--target-os=linux \
--arch=aarch64 \
--cross-prefix=aarch64-rockchip1031-linux-gnu- \
--enable-static \
--enable-shared \
--pkg-config=/usr/bin/pkg-config \
--sysroot=/home/lingke/mnt \
--extra-cflags="-I/home/lingke/mnt/usr/include/aarch64-linux-gnu" \
--extra-ldflags="-B/home/lingke/mnt/usr/lib/aarch64-linux-gnu -Wl,-rpath-link=/home/lingke/mnt/usr/lib/aarch64-linux-gnu"
编译
make -j
安装
make install
将编译好的 ffmpeg 复制到根文件系统
(base) lingke@yjzx:~/projects/rk3588s/debian11_sdk$ tree -L 2 .
.
├── QuarkPi-CA2_SDK_v1.0
│ ├── build.sh
│ ├── debian
│ ├── device
│ ├── external
│ ├── kernel
│ ├── out
│ ├── prebuilts
│ ├── rkbin
│ ├── rkpacktools
│ └── u-boot
└── QuarkPi-CA2_SDK_v1.0.tar.xz
10 directories, 2 files
复制到 QuarkPi-CA2_SDK_v1.0/debian/overlay 目录下
(base) lingke@yjzx:~/projects/rk3588s/debian11_sdk/QuarkPi-CA2_SDK_v1.0$ tree -L 1 ./debian/
./debian/
├── binary
├── linaro-bullseye-alip-20250206-1.tar.gz
├── linaro-rootfs.img
├── mk-base-debian.sh
├── mk-image.sh
├── mk-rootfs-bullseye.sh
├── overlay
├── packages
├── post-build.sh
├── readme.md
└── ubuntu-build-service
4 directories, 7 files
(base) lingke@yjzx:~/projects/rk3588s/debian11_sdk/QuarkPi-CA2_SDK_v1.0/debian$ tree -L 2 ./overlay/
./overlay/
├── etc
│ ├── init.d
│ ├── NetworkManager
│ ├── profile
│ ├── profile.d
│ ├── pulse
│ ├── systemd
│ ├── udev
│ ├── X11
│ └── xdg
└── usr
├── bin
├── lib
└── share
13 directories, 1 file
到 ffmpeg 安装目录下
cd /home/lingke/projects/rk3588s_install_path/ffmpeg
拷贝 include
cp -r ./include/ /home/lingke/projects/rk3588s/debian11_sdk/QuarkPi-CA2_SDK_v1.0/debian/overlay/usr
拷贝 lib
# 创建 aarch64-linux-gnu 目录
mkdir /home/lingke/projects/rk3588s/debian11_sdk/QuarkPi-CA2_SDK_v1.0/debian/overlay/usr/lib/aarch64-linux-gnu
# 到 lib 目录下
cd /home/lingke/projects/rk3588s_install_path/ffmpeg/lib
# 拷贝
cp -r ./* /home/lingke/projects/rk3588s/debian11_sdk/QuarkPi-CA2_SDK_v1.0/debian/overlay/usr/lib/aarch64-linux-gnu
拷贝 bin
# 到 bin 目录下
cd /home/lingke/projects/rk3588s_install_path/ffmpeg/bin
# 拷贝
cp ./* /home/lingke/projects/rk3588s/debian11_sdk/QuarkPi-CA2_SDK_v1.0/debian/overlay/usr/bin