2016-03-02 98 views
0

我試圖編譯包含所有可能的編解碼器的ubuntu下的FFMPEG庫。 我跟着本教程http://www.roman10.net/2013/08/18/how-to-build-ffmpeg-with-ndk-r9/。 但是當我執行./build_android.sh它給了我這個錯誤:錯誤:在編譯FFMPEG庫時找不到libfaac

[email protected]:/home/rango/Desktop/android-ndk-r10e/sources/ffmpeg-3.0# ./build_android.sh ERROR: libfaac not found

If you think configure made a mistake, make sure you are using the latest version from Git. If the latest version fails, report the problem to the [email protected] mailing list or IRC#ffmpeg on irc.freenode.net. Include the log file "config.log" produced by configure as this will help solve the problem.

這裏是我的build_android.sh內容:

#!/bin/bash 
NDK=/home/rango/Desktop/android-ndk-r10e 
SYSROOT=$NDK/platforms/android-19/arch-arm/ 
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86 

function build_one 
{ 
./configure \ 
    --prefix=$PREFIX \ 
    --enable-shared \ 
    --disable-static \ 
    --disable-doc \ 
    --disable-ffmpeg \ 
    --disable-ffplay \ 
    --disable-ffprobe \ 
    --disable-ffserver \ 
    --disable-avdevice \ 
    --disable-doc \ 
    --disable-symver \ 
    --enable-gpl \ 
    --enable-version3 \ 
    --enable-nonfree \ 
    --enable-shared \ 
    --enable-libopencore-amrnb \ 
    --enable-libopencore-amrwb \ 
    --enable-libfaac \ 
    --enable-libgsm \ 
    --enable-libmp3lame \ 
    --enable-libtheora \ 
    --enable-libvorbis \ 
    --enable-libx264 \ 
    --enable-libxvid \ 
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ 
    --target-os=linux \ 
    --arch=arm \ 
    --enable-cross-compile \ 
    --sysroot=$SYSROOT \ 
    --extra-cflags="-Os -fpic $ADDI_CFLAGS" \ 
    --extra-ldflags="$ADDI_LDFLAGS" \ 
    $ADDITIONAL_CONFIGURE_FLAG 
make clean 
make -j4 
make install 
} 

CPU=arm 
PREFIX=$(pwd)/android/$CPU 
ADDI_CFLAGS="-marm" 

build_one 
+0

你確定makefiles有一條規則來做'libfaac'嗎? – Shark

+0

我不知道,你的意思是一個規則。請你多解釋一下。如果可以幫助,我可以添加Makefile。謝謝 – SaidTagnit

+0

我從這裏下載了這個庫https://www.ffmpeg.org/ – SaidTagnit

回答

0

最後我得到它的工作。問題是它無法找到lib的位置。 我輸入了這個命令:locate libfaac。從輸出我意識到,它在「/ usr/lib目錄/ I386-Linux的GNU /」:

/usr/lib/i386-linux-gnu/libfaac.a

/usr/lib/i386-linux-gnu/libfaac.so

/usr/lib/i386-linux-gnu/libfaac.so.0

/usr/lib/i386-linux-gnu/libfaac.so.0.0.0

因此,我所做接下來加入這行來「./build_android.sh」,告訴它看看有:

--extra-ldflags=-L/usr/lib/i386-linux-gnu/

,使該腳本變爲:

#!/bin/bash 
NDK=/home/rango/Desktop/android-ndk-r10e 
SYSROOT=$NDK/platforms/android-19/arch-arm/ 
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86 

function build_one 
{ 
echo $PREFIX 
./configure \ 
--prefix=$PREFIX \ 
--enable-shared \ 
--disable-static \ 
--disable-doc \ 
--disable-ffmpeg \ 
--disable-ffplay \ 
--disable-ffprobe \ 
--disable-ffserver \ 
--disable-avdevice \ 
--disable-doc \ 
--enable-nonfree \ 
--disable-symver \ 
--enable-gpl \ 
--enable-version3 \ 
--enable-shared \ 
--enable-libmp3lame \ 
--enable-libopencore-amrnb \ 
--enable-libopencore-amrwb \ 
--enable-libtheora \ 
--enable-libvorbis \ 
--enable-libx264 \ 
--enable-libxvid \ 
--enable-libgsm \ 
--enable-libfaac \ 
--extra-ldflags=-L/usr/lib/i386-linux-gnu/ 
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ 
--target-os=linux \ 
--arch=arm \ 
--enable-cross-compile \ 
--sysroot=$SYSROOT \ 
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \ 
--extra-ldflags="$ADDI_LDFLAGS" \ 
$ADDITIONAL_CONFIGURE_FLAG 
make clean 
make -j4 
make install 
} 

CPU=arm 
PREFIX=$(pwd)/android/$CPU 
ADDI_CFLAGS="-marm" 

build_one 
1

libfaac sucks。刪除--enable-libfaac--enable-nonfree。您可以使用原生FFmpeg AAC編碼器,而不需要額外的外部庫來使用它。

+0

謝謝你的回覆FFmpeg有默認的AAC編碼器嗎?我想我應該用它編譯它。 – SaidTagnit

+0

@SaidTagnit是的。 FFmpeg有它自己的AAC編碼器:'-c:aac'。 – LordNeckbeard

0

安裝FAAC-1.26-1.el6.rf.x86_64.rpm和FAAC-devel的-1.26-1.el6.rf。從下面的鏈接x86_64.rpm。

http://pkgs.repoforge.org/faac/