2016-05-03 64 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對其進行編碼音頻。