Android NDK 交叉编译FFmpeg 3.4

2018-08-14  本文已影响49人  PuHJ

一、准备工作

1、需要在Linux下交叉编译,或者安装Linux虚拟机
2、安装常用工具
apt-get install openssh-server
apt-get install vim
3、下载XShell,通过SSH协议远程连接Linux
配置
4、建立共享工具
  命令:apt-get install samba

再打开:vim /etc/samba/smb.conf
尾部补上:

 [root]
  comment=root
 path=/root
 browseable = yes
 readonly = no

再添加权限命令:smbpasswd -a root
一切没问题后,在window控制台cmd打开 \192.168.1.174 (你的)即可。

5、下载编译工具和FFmpeg

创建ff目录,下载下列文件
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
wget http://ffmpeg.org/releases/ffmpeg-3.4.tar.bz2
解压编译ffmpeg: tar -xvf ffmpeg-3.4.tar.bz2

二、开始编译

1、编译脚本

#!/bin/bash
echo "进入编译FFmpeg脚本"
NDK = /root/ff/android-ndk-r14b
#5.0系统
PLATFORM = $NDK/platform/android-21/arch-arm
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
CPU=armv7-a
#输出路径
PREFIX=./android/$CPU
function buildFF
{
    echo "开始编译ffmpeg"
    ./configure \
    --prefix=$PREFIX \  //编译结果输出位置
    --target-os=android \
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
    --arch=arm \
    --cpu=$CPU  \
    --sysroot=$PLATFORM \
    --extra-cflags="$CFLAG" \
    --cc=$TOOLCHAIN/bin/arm-linux-androideabi-gcc \
    --nm=$TOOLCHAIN/bin/arm-linux-androideabi-nm \
    --enable-shared \
    --enable-runtime-cpudetect \
    --enable-gpl \
    --enable-small \
    --enable-cross-compile \
    --disable-debug \
    --disable-static \
    --disable-doc \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffprobe \
    --disable-ffserver \
    --disable-postproc \
    --disable-avdevice \
    --disable-symver \
    --disable-stripping \
    $ADD 
    make -j8
    make install
    echo "编译结束!"
}
###########################################################
echo "编译支持neon和硬解码"
CPU=armv7-a
PREFIX=./android/armv7-a-neon-hard
CFLAG="-I$PLATFORM/usr/include -fPIC -DANDROID -mfpu=neon -mfloat-abi=softfp "
ADD="--enable-asm \
    --enable-neon \
    --enable-jni \
    --enable-mediacodec \
    --enable-decoder=h264_mediacodec \
    --enable-hwaccel=h264_mediacodec "
buildFF

###########################################################
echo "编译不支持neon和硬解码"
CPU=armv7-a
PREFIX=./android/$CPU
CFLAG="-I$PLATFORM/usr/include -fPIC -DANDROID -mfpu=vfp -mfloat-abi=softfp "
ADD=
buildFF

通过bash执行这个shell脚本。编译结果存放在./android/armv7-a中

上一篇 下一篇

猜你喜欢

热点阅读