【问题标题】:libavcodec/libfdk-aacenc.c error while compiling ffmpeg编译 ffmpeg 时出现 libavcodec/libfdk-aacenc.c 错误
【发布时间】:2019-08-28 01:53:06
【问题描述】:

我正在尝试按照以下步骤在我的 Raspeberry 上安装 FFMPEG:https://gist.github.com/adddog/d82581faf10d666d35b9771eaa65d5ac

在执行此步骤时:

sudo apt-get install -y xserver-xorg-dev libxext-dev build-essential libxi-dev libglu1-mesa-dev libglew-dev
wget http://www.ijg.org/files/jpegsrc.v9c.tar.gz
tar xvfz jpegsrc*
cd jpeg-9c
./configure --enable-shared --prefix=$CONFIGURE_PREFIX
make -j4
sudo make install

我在编译时遇到这个错误:

libavcodec/libfdk-aacenc.c:289:34: error: ‘AACENC_InfoStruct {aka struct <anonymous>}’ has no member named ‘encoderDelay’; did you mean ‘nDelay’?

你能帮帮我吗?如果不解决这个问题,我根本无法安装 FFMPEG。

谢谢, 克劳迪奥

【问题讨论】:

    标签: ffmpeg


    【解决方案1】:

    怎么了

    您正在尝试使用新的 master 分支中的 libfdk-aacenc 安装旧的 FFmpeg 3.4。

    似乎有一个从 libfdk-aac v2 开始的 API 中断。自 FFmpeg 4.0 起已修复,但未向后移植到 FFmpeg 3.4。

    如何解决

    使用 master 分支中的 FFmpeg,或者至少尝试使用 FFmpeg 4.2。或者,如果您无法使用 FFmpeg 3.4,请使用旧的 libfdk-aac 版本。

    删除旧的 ffmpeg

    由于您删除了 ffmpeg 源代码目录,和/或因为您没有将安装集成到您的包管理系统中(例如使用 checkinstall),您将不得不手动卸载 ffmpeg 文件。一种方法是重新运行 ffmpeg 指令,然后运行sudo make uninstall

    git clone --depth 1 -b release/3.4 https://github.com/FFmpeg/FFmpeg.git ffmpeg
    cd ffmpeg
    ./configure --arch=armel --target-os=linux  --enable-libfdk-aac  --enable-libmp3lame --enable-libvorbis --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-mmal --enable-omx --enable-omx-rpi --enable-decoder=h264_mmal --enable-decoder=mpeg2_mmal --enable-encoder=h264_omx --enable-encoder=h264_omx  --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3 --enable-gpl --enable-pthreads  --enable-runtime-cpudetect  --enable-openssl --bindir="/usr/local/bin"
    make -j3
    sudo make uninstall
    

    安装新的 ffmpeg

    您可以下载一个简单的快照,因为您不需要下载完整的 git 历史记录,这会浪费时间和带宽(或将 --depth 1 添加到您的 git 命令中):

    wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
    tar xjvf ffmpeg-snapshot.tar.bz2
    cd ffmpeg
    

    然后继续使用您的./configuremakesudo make install 等。

    【讨论】:

    • 知道 ffmpeg 3.4.8 使用哪个版本的 libfdk-aac 吗?
    • @Connor 我猜是 fdk-aac 0.1.6。但是为什么要使用 FFmpeg 3.4.8 而不是旧的呢?
    • 因为不旧的东西还不够老,无法在我坚持使用的旧操作系统版本上工作
    猜你喜欢
    • 2014-11-23
    • 1970-01-01
    • 2012-04-02
    • 2014-02-23
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 2012-03-08
    • 2012-03-28
    相关资源
    最近更新 更多