最近想着研究一下ffmpeg,虽然用Java这么多年,但是还是对c/c++的热爱不减,很久没有写过c/c++的代码了,这方面也是菜鸟。好了废话不多说,先说一下我的编译环境:mac os+android studio 2.2.2+ffmpeg 3.2。
自己看别人写的文章瞎搞了两天终于对ffmpeg有一些眉目了,在这里分享一下我的心得。
1.首先去ffmpeg官网http://ffmpeg.org/把这个开源库下载下来,然后解压
2.编写ffmpeg的编译脚本,这个脚本比较多,自己可以去网上搜搜,我用的脚本如下:
#!/bin/bash
cd ffmpeg-3.2
NDK=/Users/xhp/Library/Android/sdk/ndk-bundle
SYSROOT=$NDK/platforms/android-23/arch-arm/
TOOLCHAIN=/Users/xhp/Library/Android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
CPU=arm
PREFIX=/Users/xhp/Documents/ffmpeg_study/buildandroid
ADDI_CFLAGS="-marm"
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 \
--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="$A