ubuntu 下 编译ffmpeg 3.1.1

1,下载ggmpeg源码:http://ffmpeg.org/download.html

2.下载ndk ,百度

3.配置环境

3.1

编译FFMPEG时,出现了 ffmpeg yasm not found, use --disable-yasm for a crippled build,是因为 FFMPEG了提高编译速度,使用了汇编指令,如果系统中没有yasm指令的话,就会出现上述的问题。

解决办法是:

A 如果是Windows系统, 从网上下载一个 yasm.exe 并安装在mingw/bin下面,重新编译,就不会出现该错误了;

B 如果是Linux系统,则更简单,直接在终端输入 sudo apt-get install yasm ,安装好后,重新编译就 OK了

3.2

修改ffmpeg目录下的configure文件

将如下内容:

 

SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'

SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'

替换为
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'

LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'

SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'

SLIB_INSTALL_LINKS='$(SLIBNAME)'


3.3
新建文件build-android.sh
内容为:
#!/bin/bash
#下面三个路径要修改为自己真实路径
NDK=$home/zoff/work/android-ndk-r10b
SYSROOT=$NDK/platforms/android-L/arch-arm/  
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64

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

    --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

 

4.编译

sudo ./build-android.sh

等待编译结束

参考:

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

http://blog.csdn.net/ranxiedao/article/details/16359183

http://ffmpeg.org/download.html

sudo apt-get install ia32-libs  提示没有文件或者文件夹的时候运行下此命令

posted @ 2016-07-14 13:43  江湖小郎中  阅读(1007)  评论(0编辑  收藏  举报