FFMPEG移植到Android

    xiaoxiao2026-08-13  10

    我是在window 7系统上开发的,总之问题多多,查了很多的博客,按照别人的一步一步来都不行,ndk试过r9的,没成功,后面换成了r10的,虽然步骤很简单 ,但是整整弄了三天,直到今天才编译出.so文件,真心有点小激动。 1.准备: (1) vmware 12.1.1.6932。 http://sw.bos.baidu.com/sw-search-sp/software/d34ff7ffac8/VMware-workstation_full_12.1.1.6932.exe

    (2)ubuntu-16.04-desktop-amd64。 http://cn.ubuntu.com/download/

    (3)android-ndk32-r10b-linux-x86_64.tar.bz2 http://wear.techbrood.com/tools/sdk/ndk/index.html

    (4)ffmpeg-3.1.2.tar.bz2 https://ffmpeg.org/download.html

    2.安装好vmware,创建虚拟机,不知道的可以网上查 ,很多相关教程。 进入到ubuntu系统下面,默认有个火狐浏览器,下载好nkd和ffmpeg压缩包文件。创建一个文件,把ndk和ffmpeg解压到改文件夹下面。 解压命令:

    tar jxvf FileName.tar.bz2

    解压后就是这样子的,解压有我把ffmpeg-3.1.2改成了ffmpeg,感觉等一下敲命令的时候可以容易点。

    3.打开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)'

    4.在ffmpeg文件下,新建一个build_android.sh文件,填写如下内容:

    #!/bin/bash NDK=/home/lwm/lwm/android-ndk-r10b SYSROOT=$NDK/platforms/android-L/arch-arm/ TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 CPU=arm PREFIX=../simplefflib ADDI_CFLAGS="-marm" function build_one { ./configure \ --prefix=$PREFIX \ --enable-shared \ --disable-static \ --disable-doc \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-doc \ --disable-symver \ --enable-small \ --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 } build_one

    其中需要改成你自己的NDK、SYSROOT和TOOLCHAIN路径,PREFIX是指生成的.so文件放在这里。编辑完后保存文件。

    5.通过命令窗口,进入到ffmpeg文件下,通过cd 命令来进入。然后给build_android.sh文件权限,命令为:

    sudo chmod +x build_android.sh

    输入密码后,执行build_andorid.sh文件,命令为:

    ./build_android.sh

    后面会等五分钟的样子,编译完后在ffmpeg同级目录下生成一个simplefflib文件,里面包括:一个include和lib。lib里面就是生成的.so文件。

    转载请注明原文地址: https://ju.6miu.com/read-1311142.html
    最新回复(0)