You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从源码编译FFmpeg时如何启用avresample?适配aarch64平台供OpenCV使用

问题原因

FFmpeg 5.0及以上版本已经正式移除了废弃已久的avresample模块,仅保留官方推荐的swresample作为重采样组件。你当前使用的FFmpeg版本对应核心库版本号为59.x,属于5.x版本分支,因此--enable-avresample参数已经不被支持,会触发参数不识别报错。

解决方法

下面提供两种可行的适配方案:

方案1:降级FFmpeg到4.x版本

选择4.4.x这类仍保留avresample模块的LTS版本FFmpeg,重新交叉编译:

  • 下载FFmpeg 4.4.x版本源码
  • 编译配置时添加--enable-avresample参数,同时确保交叉编译配置正确,示例配置片段如下:
./configure \
--cross-prefix=aarch64-none-linux-gnu- \
--arch=aarch64 \
--target-os=linux \
--prefix=<你的FFmpeg安装路径> \
--enable-shared \
--enable-gpl \
--enable-avresample \
# 其余你需要的自定义参数
  • 完成FFmpeg的编译安装后,重新配置OpenCV的编译选项即可识别到avresample。

方案2:修改OpenCV编译配置,适配高版本FFmpeg

不需要降级FFmpeg,调整OpenCV的编译参数,让其使用swresample替代avresample:

  • 配置OpenCV的cmake参数时添加如下选项:
-DOPENCV_FFMPEG_USE_FIND_PACKAGE=ON \
-DOPENCV_FFMPEG_SKIP_BUILD_CHECK=OFF
  • 也可以直接修改OpenCV源码中对应FFmpeg的检测cmake脚本,删除对avresample的依赖判断,改为依赖swresample,配置完成后重新编译OpenCV,即可正常识别5.x版本的FFmpeg,VideoIO模块的FFmpeg总项会显示为YES。
额外注意事项
  • 交叉编译OpenCV前,需要提前将FFmpeg安装路径下的lib/pkgconfig目录加入PKG_CONFIG_PATH环境变量,确保cmake能正确找到所有FFmpeg相关的库文件和头文件。

内容的提问来源于stack exchange,提问作者ChrisZZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 16:24:06