NDK编译FFMpeg[Linux]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NDK编译FFMpeg[Linux]相关的知识,希望对你有一定的参考价值。
最近在研究视频直播相关的技术,了解到了FFmpeg,就在网上查看如何将FFmpeg移植到android中,查了几天,看的东西不少,就是没有一个可以完全移植成功的,最后通过产看各种资料,结合网上的资料,终于把FFmpeg给搞定了。在此记录一下。
整体构思:
在Centos7.5下搭建NDk编译环境,编译FFmpeg库,生成Android所需要的库文件,然后在Android中使用
准备工作:
1、在虚拟机中安装Centos系统
2、下载NDK
linux 32 bit
http://dl.google.com/android/ndk/android-ndk-r10d-linux-x86.bin
linux 64 bit
http://dl.google.com/android/ndk/android-ndk-r10d-linux-x86_64.bin
3、下载FFmpeg源码
下载地址:http://www.ffmpeg.org/download.html
在Centos /usr/local下新建文件夹ndk,将android-ndk-r10d-linux-x86_64.bin和FFmpeg源码上传改该文件夹。
一、安装
1、安装NDK
[[email protected] /]# cd /usr/local/ndk
[[email protected] ndk]# chmod a+x android-ndk-r10d-linux-x86_64.bin
执行上面操作,设置为可执行文件,然后执行./android-ndk-r10d-linux-x86_64.bin安装NDK
安装完成后会在当前目录生成对应的文件夹
2、安装dos2unix
yum install dos2unix
dos2unix **.sh
如果不安装dos2unix,编译时会报下面的错误:
$‘\\r‘: 未找到命令
未预期的符号 `$‘{\\r‘‘ 附近有语法错误
3、安装gcc及c++
yum install gcc-c++
如果不安装会报下面截图的错误
4、 安装yasm
# wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
# tar zxvf yasm-1.3.0.tar.gz
# cd yasm-1.3.0
# ./configure
# make && make install
经过以上步骤,环境就配置好了,下面就开始编译FFmpeg
5、 编译FFmpeg
[[email protected] ffmpeg]# cd /usr/local/ndk/ffmpeg
[[email protected] ffmpeg]# vi config_android.sh
将下面的脚本复制进去
NDK=/usr/ndk/android-ndk-r10d SYSROOT=$NDK/platforms/android-9/arch-arm/ TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.6/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 |
NDK为NDK的安装路径
编译FFmpeg
[[email protected] ffmpeg]# chmod a+x *
[[email protected] ffmpeg]# ./config_android.sh
这个过程如果不报错,就会等很长一段时间,等待结束后ffmpeg文件夹下会多出一个android文件夹,里面包含了ffmpeg的.so文件和头文件
我们只需要把android这个文件夹拷贝到windows环境下即可!
至此,ffmpeg已经编译完成
下一篇主要记录下在android开发中如何使用
以上是关于NDK编译FFMpeg[Linux]的主要内容,如果未能解决你的问题,请参考以下文章