Android NDK 交叉编译FFmpeg 3.4

一、准备工作

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中

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 简介 1.FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或...
    佟小胆胆小阅读 4,545评论 0 1
  • 《基于ARM的多终端自助打印系统》是以前和控制工程学院的建斌同学和仪器与电子学院的培松同学一起做的一个创新项目。 ...
    free_will阅读 8,242评论 1 2
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 9,464评论 0 5
  • 老浦识字昨天在讲"夫"字时说了个故事,他的一个聪明过顶的初中同学因管束不了自己,上学时被学校开除,多年后总结自己并...
    花草姐姐阅读 1,801评论 0 0
  • 郝军,你好! 刚刚接手高一,想要改变自己的班主任思路,改变是一个痛的过程,更何况你还有根深蒂固的思维和做事...
    郝说郝道阅读 2,939评论 0 2

友情链接更多精彩内容