2016-05-03 62 views
0

我们正在尝试使用javacpp重新编译ffmpeg项目,并且启用--enable-libfdk-aac后,构建工作,但我们无法使用libfdk_aac来解码audio_stream。Javacpp:无法设置将libfdk_aac添加到ffmpeg预设

我们呼吁:avcodec_find_decoder_by_name("libfdk_aac")并得到以下结果:

Exception: avcodec_find_decoder() error: Unsupported audio format or codec not found: 86018.

我们已经修改了ccpbuild.sh在以下方式中的ffmpeg目录:

  1. 添加指令:ENABLE变量中的--enable-libfdk-aac

  2. 获取相关性:download https://github.com/mstorsjo/fdk-aac/tarball/master fdk-aac.tar.gz

  3. 拆包:tar -xzvf ../fdk-aac.tar.gz

  4. 安装它: cd ../mstorsjo-fdk-aac* autoreconf -fiv ./configure --prefix=$INSTALL_PATH --disable-shared --with-pic make -j $MAKEJ make install

我跑这一切在MacOSX的平台。

该过程似乎没问题,我可以使用maven正确编译项目,但当我调用编解码器“libfdk_aac”时,它不起作用。 我想知道如果我做错了什么,或者是否有其他需要注册此编解码器的地方? (特别是因为这是一个外部库)

非常感谢

回答

0

到底有没有与javacpp预设的ffmpeg的任何问题。我们在预设中添加libfdk的方式(正如我在我的问题文章中所描述的那样)是正确的。

但是,在Javacv的FFmpegFrameGrabber类中,我们错过了在解码媒体时“强制”音频编解码器的方法。 我们修改了这个类来添加一个setAudioCodecName方法,现在这个方法正常工作。 然后,我们可以设置libfdk_aac(或任何其他编解码器)来解码音频,或使用FFmpegFrameRecorder对其进行编码音频。