Javacpp:无法将libfdk_aac添加到ffmpeg预设中

时间:2016-05-03 18:12:56

标签: java maven ffmpeg javacv javacpp

我们尝试使用javacpp重新编译ffmpeg项目并启用--enable-libfdk-aac,构建工作正常,但我们无法使用libfdk_aac解码audio_stream。

我们正在呼叫:avcodec_find_decoder_by_name("libfdk_aac")并获得以下结果:

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

我们通过以下方式修改了ffmpeg目录中的ccpbuild.sh:

  1. 在ENABLE变量

  2. 中添加指令:--enable-libfdk-aac
  3. 获取依赖关系:download https://github.com/mstorsjo/fdk-aac/tarball/master fdk-aac.tar.gz

  4. 打开包装:tar -xzvf ../fdk-aac.tar.gz

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

  6. 我在macosx平台上运行所有这些。

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

    非常感谢

1 个答案:

答案 0 :(得分:0)

最后,ffmpeg的javacpp预设没有任何问题。我们在预设中添加libfdk的方式(正如我在问题帖子中描述的那样)是正确的。

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