2018-11-06 Mac 下编译FFMPEG3.3 添加X264编码器

FFMPEG3.3的项目是不支持X264编码器的。之前在操作264.h文件的时候一直会提示错误。所以,一番搜索,发现需要编译x264到ffmpeg进行支持。
1.X264 官方下载地址:http://www.videolan.org/developers/x264.html
2.FFMPEG官方下载地址:http://ffmpeg.org/download.html#releases

一、首先操作X264,这里类似我之前写的一篇FFMPEG编译脚本
x264编译前修改一下configure文件:(反正不修改的话,Android无法正常使用)
找到所有的

 libx264.so.$API修改为 libx264-$API.so

二、编写X264 shell脚本(网上找的,亲测可用正常编译)build_x264.sh
=====卧槽,我终于发现MarkDown的语法规则了。。。。=======

#这里的路径需要修改为你自己的ndk路径
NDK=/Users/yaganglian/Documents/android-ndk-r13b
#注意android-9文件夹的版本号,替换好自己的版本号
SYSROOT=$NDK/platforms/android-16/arch-arm/
#把这里的路径替换好自己的版本
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
function build_one
{
  ./configure \
--prefix=$PREFIX \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--sysroot=$SYSROOT \
--host=arm-linux \
--enable-pic \
--enable-shared \
--enable-static \
--disable-cli
make
make install

}
CPU=arm
PREFIX=$(pwd)/android_ndk_x264/$CPU
build_one

三、终端进入X264文件下,执行命令./build_x264.sh, 等待一会,可在android_ndk_x264看到生成的文件,ok,264的脚本编译就到这里了。

接下来就是FFMEPG的编译了,上一篇写过了,我这里再重新梳理下,毕竟现在知道怎么把格式弄好看点了

一、进入FFMPEG文件下。找到config文件

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

二、编写ffmpeg脚本shell build_ffmpeg.sh

#!/bin/bash
#这里的路径需要修改为你自己的ndk路径
NDK=/Users/yaganglian/Documents/android-ndk-r13b
#注意android-9文件夹的版本号,替换好自己的版本号
SYSROOT=$NDK/platforms/android-16/arch-arm/
#把这里的路径替换好自己的版本
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-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 \
--enable-gpl \
--enable-libx264 \
--enable-protocols \
--enable-muxer=mp4 \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=linux \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic -I/usr/local/include $ADDI_CFLAGS" \
--extra-ldflags="-L/usr/local/lib $ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
}
CPU=arm
PREFIX=$(pwd)/android_ndk_x264/$CPU
ADDI_CFLAGS="-marm"
build_one

然后终端进入ffmpeg文件下,怒编./build_ffmpeg.sh
好了等待一会,搞定,直接拿过来用了。x264啥的都直接用起来~

你可能感兴趣的:(2018-11-06 Mac 下编译FFMPEG3.3 添加X264编码器)