Ubuntu编译ffmpeg3.3.7方法

zhuangzai : https://www.2cto.com/kf/201805/745055.html



编译ffmpeg,Ubuntu中需要装gcc和g++,要保持它俩的版本一致,否则有可能会出问题。
我下载的是ffmpeg3.3.7,选择用ndk14进行编译。
Ubuntu编译ffmpeg3.3.7方法_第1张图片
这里写图片描述
需要修改ffmpeg3.3.7根目录中的configure文件。

?
1
2
3
4
5
6
7
8
9
#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)'

Ubuntu编译ffmpeg3.3.7方法_第2张图片
写一个sh文件用来引导编译ffmpeg并生成so动态库。可以生成arm和x86的so。将sh文件引入到ffmpeg3.3.7根目录中,在这里我匿名为build_android.sh
Ubuntu编译ffmpeg3.3.7方法_第3张图片

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/bash
export NDK_HOME=/home/xuyan/ffmpeg/android-ndk-r14b
export PLATFORM_VERSION=android- 9
function build
{
     echo "start build ffmpeg for $ARCH"
     ./configure --target-os=linux \
     --prefix=$PREFIX --arch=$ARCH \
     --disable-doc \
     --enable-shared \
     --disable- static \
     --disable-yasm \
     --disable-asm \
     --disable-symver \
     --enable-gpl \
     --disable-ffmpeg \
     --disable-ffplay \
     --disable-ffprobe \
     --disable-ffserver \
     --cross-prefix=$CROSS_COMPILE \
     --enable-cross-compile \
     --sysroot=$SYSROOT \
     --enable-small \
     --extra-cflags= "-Os -fpic $ADDI_CFLAGS" \
     --extra-ldflags= "$ADDI_LDFLAGS" \
     $ADDITIONAL_CONFIGURE_FLAG
     make clean
     make
     make install
     echo "build ffmpeg for $ARCH finished"
}
 
#arm
ARCH=arm
CPU=arm
PREFIX=$(pwd)/android/$ARCH
TOOLCHAIN=$NDK_HOME/toolchains/arm-linux-androideabi- 4.9 /prebuilt/linux-x86_64
CROSS_COMPILE=$TOOLCHAIN/bin/arm-linux-androideabi-
ADDI_CFLAGS= "-marm"
SYSROOT=$NDK_HOME/platforms/$PLATFORM_VERSION/arch-$ARCH/
build
 
#x86
ARCH=x86
CPU=x86
PREFIX=$(pwd)/android/$ARCH
TOOLCHAIN=$NDK_HOME/toolchains/x86- 4.9 /prebuilt/linux-x86_64
CROSS_COMPILE=$TOOLCHAIN/bin/i686-linux-android-
ADDI_CFLAGS= "-march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32"
SYSROOT=$NDK_HOME/platforms/$PLATFORM_VERSION/arch-$ARCH/
build

先执行./configure,结束之后,再执行./build_android,此后大概需要10-20分钟的编译时间,完成之后会在ffmpeg3.3.7根目录中生成一个android目录,android目录中就会包含有so动态库和头文件。
Ubuntu编译ffmpeg3.3.7方法_第4张图片

你可能感兴趣的:(系统技巧,FFmpeg)