Windows中的FFMPEG for android无法成功编译

时间:2014-08-05 07:19:41

标签: android bash shell android-ndk ffmpeg

我正在尝试在Windows 8.1中为Android编译FFMPEG,但我在build_android.sh中的32行出错

./ build_android.sh:line 32:语法错误:意外的文件结尾

当我在cygwin中执行命令时

chmod + x build_android.sh

./ build_android.sh

如果你知道在windows中编译ffmpeg for android的步骤以及如何在android中使用ffmpeg那么请求回复我。

我正在引用。 http://www.packtpub.com/sites/default/files/downloads/Developing_Multimedia_Applications_with_NDK.pdf

https://trac.ffmpeg.org/wiki/CompilationGuide/Android

http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9

build_android.sh

#!/bin/bash
NDK=E:/android-ndk-r9d
SYSROOT=$NDK/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/windows
function build_one { ./configure \
--prefix=$PREFIX \
--disable-shared \
--enable-static \
--disable-doc \
--enable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--enable-avdevice \
--disable-doc \
--disable-symver \
--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
make install }
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one

3 个答案:

答案 0 :(得分:1)

更改

make instal }

make install
}

make install; }

因为这样,你就是}作为make的第二个参数,而你的函数build_one并没有关闭}

修改

你能试试吗?

NDK=E:/android-ndk-r9d
SYSROOT=$NDK/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/windows
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
./configure \
--prefix=$PREFIX \
--disable-shared \
--enable-static \
--disable-doc \
--enable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--enable-avdevice \
--disable-doc \
--disable-symver \
--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
make install

答案 1 :(得分:1)

你可以使用它作为build_android.sh我测试它并且它与我合作

#!/bin/bash
NDK=D:/android/ndk/android-ndk-r10d
SYSROOT=$NDK/platforms/android-8/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/windows
function build_one
{
./configure \
--prefix=$PREFIX \
--disable-shared \
--enable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avdevice \
--disable-doc \
--disable-symver \
--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
make install
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one

您还需要运行此命令:

dos2unix build_android.sh
chmod +x build_android.sh
./build_android.sh

答案 2 :(得分:0)

  1. 检查行尾(使用dos2unix进行修复)
  2. $ ADDITIONAL_CONFIGURE_FLAG-检查此变量是否不包含未封闭的配额/括号。