我们尝试使用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:
在ENABLE变量
--enable-libfdk-aac
获取依赖关系:download https://github.com/mstorsjo/fdk-aac/tarball/master fdk-aac.tar.gz
打开包装:tar -xzvf ../fdk-aac.tar.gz
安装它:
cd ../mstorsjo-fdk-aac*
autoreconf -fiv
./configure --prefix=$INSTALL_PATH --disable-shared --with-pic
make -j $MAKEJ
make install
我在macosx平台上运行所有这些。
这个过程似乎没问题,我可以用maven正确编译项目,但是当我调用编解码器" libfdk_aac"时它就不起作用了。 我想知道我是否做错了什么,或者还有其他地方我需要注册这个编解码器吗? (特别是因为这是一个外部库)
非常感谢
答案 0 :(得分:0)
最后,ffmpeg的javacpp预设没有任何问题。我们在预设中添加libfdk的方式(正如我在问题帖子中描述的那样)是正确的。
然而,在Javacv的FFmpegFrameGrabber类中,我们错过了一个强制"强制"解码媒体时的音频编解码器。 我们修改了这个类来添加一个setAudioCodecName方法,现在它正常工作。 然后,我们可以设置libfdk_aac(或任何其他编解码器)来解码音频,或使用FFmpegFrameRecorder对其进行编码。