arm平台编译mpp、ffmpeg和xfreerdp

先下载,再解压

sh 复制代码
unzip -q ~/Downloads/FFmpeg-n6.1.zip
unzip -q ~/Downloads/FreeRDP-3.10.3.zip
unzip -q ~/Downloads/mpp.zip (用develop分支就行)

mpp

编译方法

sh 复制代码
cmake -S . -B build -G Ninja \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_INSTALL_PREFIX=/opt/mpp-rk
ninja -C build
sudo ninja -C build install

FFmpeg-n6.1

编译方法

sh 复制代码
export PKG_CONFIG_PATH=/opt/mpp-rk/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=/opt/mpp-rk/lib:$LD_LIBRARY_PATH
./configure \
  --prefix=/opt/ffmpeg-rk \
  --enable-gpl --enable-version3 --enable-nonfree \
  --enable-shared \
  --enable-libdrm \
  --enable-rkmpp
make -j"$(nproc)"
sudo make install

FreeRDP-3.10.3

编译方法

sh 复制代码
cmake -S . -B build -G Ninja \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_INSTALL_PREFIX=/opt/freerdp-rk \
  -DCMAKE_INSTALL_RPATH=/opt/ffmpeg-rk/lib:/opt/mpp-rk/lib \
  -DCMAKE_BUILD_RPATH=/opt/ffmpeg-rk/lib:/opt/mpp-rk/lib \
  -DWITH_CLIENT=X11 \
  -DWITH_SERVER=OFF \
  -DWITH_FFMPEG=ON \
  -DWITH_GFX_H264=ON \
  -DWITH_OPENH264=ON \
  -DWITH_CLIENT_SDL=OFF \
  -DWITH_OPENSSL=ON \
  -DWITH_INTERNAL_MD4=ON \
  -DWITH_INTERNAL_RC4=ON
ninja -C build
sudo ninja -C build install

编译后验证

sh 复制代码
/opt/freerdp-rk/bin/xfreerdp /buildconfig | grep -Ei 'WITH_INTERNAL_MD4|WITH_INTERNAL_RC4|WITH_OPENSSL|WITH_FFMPEG|WITH_GFX_H264'
/opt/freerdp-rk/bin/xfreerdp /version

固化环境变量(防止新终端失效)

sh 复制代码
cat <<'EOF' >> ~/.bashrc
export PATH=/opt/freerdp-rk/bin:/opt/ffmpeg-rk/bin:$PATH
export LD_LIBRARY_PATH=/opt/ffmpeg-rk/lib:/opt/mpp-rk/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/opt/ffmpeg-rk/lib/pkgconfig:/opt/mpp-rk/lib/pkgconfig:$PKG_CONFIG_PATH
EOF
source ~/.bashrc
hash -r

验证新版本

sh 复制代码
which ffmpeg
ffmpeg -version | head -n 2
ffmpeg -hide_banner -decoders | awk '{print $2}' | grep -Fx h264_rkmpp
which xfreerdp
xfreerdp /version
xfreerdp /buildconfig | grep -Ei 'WITH_FFMPEG|WITH_GFX_H264|WITH_OPENH264'
ldd /opt/freerdp-rk/bin/xfreerdp | grep -Ei 'libavcodec|libavutil|libavformat'

验证硬解链路

sh 复制代码
ffmpeg -v verbose -c:v h264_rkmpp -i /userdata/video.mp4 -an -f null -
相关推荐
secondyoung1 小时前
I2C通信协议详解
arm开发·驱动开发·stm32·单片机·嵌入式硬件·mcu·51单片机
奔跑的架构师3 小时前
[A-50]ARMv9/v8-DVFS系统架构
linux·arm开发·架构·系统架构·arm
零依赖极客10 小时前
Day 8·1 自注意力机制:Q·K^T/softmax/V的在线计算
c语言·arm开发·人工智能·llama
T1mzhou14 小时前
ARM64 Linux 6.10 内核驱动(14):drivers/base/platform.c:板级设备主战场
linux·c语言·开发语言·arm开发
工具派1 天前
口播视频怎么自动剪掉冷场?视频静音删除的阈值实测
ffmpeg·音视频·视频
❀͜͡傀儡师1 天前
移动端 360° 商品展示方案:从 20MB 雪碧图到 800KB 丝滑视频
ffmpeg·webgl·sprite
零依赖极客1 天前
《30 天手搓 ARM 架构零依赖纯 C 推理引擎》课程介绍与大纲
c语言·开发语言·arm开发·人工智能·嵌入式硬件·ai编程
新时代牛马2 天前
ATF/ TEE / REE 与ARM 异常级别EL 安全体系完整篇:TrustZone硬件到 SMC 进OP-TEE的全链路
arm开发·python·安全
T1mzhou2 天前
ARM64 Linux 6.10 内核驱动(13):bus.c / driver.c 总线两张表,驱动怎么挂上去
linux·服务器·c语言·arm开发·arm
2501_930472442 天前
深度复盘|数据库迁移实战(上):腾讯云助手解析慢查询日志,定位索引缺失与语法不兼容
数据库·阿里云·ffmpeg·云计算·腾讯云·aws