2016-05-03 2 views
0

Мы пытаемся перекомпилировать проект ffmpeg с использованием javacpp, а с включенным --enable-libfdk-aac, сборка работает, но мы не можем использовать libfdk_aac для декодирования аудио_потока.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-libfdk-aac в переменной ENABLE

  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 в пресет (как я описал его в своем вопросе), было правильным.

Однако в классе FFmpegFrameGrabber в Javacv нам не хватало метода «принудительного» аудиокодека при декодировании носителя. Мы модифицировали этот класс, чтобы добавить метод setAudioCodecName, и теперь он работает правильно. Затем мы можем установить libfdk_aac (или любой другой кодек) для декодирования звука или кодирования звука с помощью FFmpegFrameRecorder.

Смежные вопросы