编译FFmpeg,ffmpeg3.3.9 一次从零开始的编译过程记录(1)

编译Android FFmpeg

XShell,XFTP社区版,下载

https://www.netsarang.com/zh/free-for-home-school/

安装Linux虚拟机,并且使用XShell连接虚拟机

虚拟机教程
https://download.csdn.net/download/yu540135101/11347989
在这里插入图片描述

下载NDK r14b Linux版

https://developer.android.google.cn/ndk/downloads/older_releases
https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip?hl=zh_cn

下载ffmpeg 3.3.9

http://www.ffmpeg.org/download.html#releases
http://ffmpeg.org/releases/ffmpeg-3.3.9.tar.gz

给与读写权限chmod 777 filename

将下载好的ndk和ffmpeg通过Xftp发送到Linux下

创建ffmpeg目录,并给予权限。chmod给过权限后,才可以用xftp上传到这个目录里
在这里插入图片描述
在这里插入图片描述

解压这两个压缩包

tar -zxvf ffmpeg-3.3.9.tar.gz
unzip android-ndk-r14b
在这里插入图片描述

替换ffmpeg里的configure文件,里面稍作了修改。

可以将Linux中的ffmpeg的configure文件移动到Windows上,删除Linux中的该文件,在Windows上修改后,再用xftp传回Linux

不同版本的configure是不同的,所以是不通用的。每次都要手动替换那几行

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

现在需要执行下./configure

例如
gcc -v 可以查看gcc版本,检查是否安装了gcc
yasm --version 查看yasm

需要先安装gcc yasm
sudo apt install gcc
sudo apt install yasm

如果安装过程出现,无法锁定管理目录(/var/lib/dpkg/)删除掉这个锁就可以了
#:sudo rm /var/cache/apt/archives/lock
#:sudo rm /var/lib/dpkg/lock

如果想卸载yasm
sudo apt-get remove yasm

给予权限,然后./configure执行成功后,会生成几个config文件
在这里插入图片描述

编译脚本(同configure位置一样)

正确写上自己的地址
export NDK=/home/zhangyu/ffmpeg/android-ndk-r14b

这里的4.9版本号,查看自己toolchains下的版本
export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64

#!/bin/bash
make clean
export NDK=/home/zhangyu/ffmpeg/android-ndk-r14b
export SYSROOT=$NDK/platforms/android-9/arch-arm/
export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
export CPU=armeabi-v7a
export PREFIX=$(pwd)/android/$CPU
export ADDI_CFLAGS="-march=armv7-a -mfloat-abi=softfp -mfpu=neon"
export ADDI_LDFLAGS="-Wl,--fix-cortex-a8"

./configure --target-os=android \
--prefix=$PREFIX --arch=arm \
--enable-shared \
--disable-static \
--disable-yasm \
--disable-symver \
--enable-gpl \
--enable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install

给予权限,然后执行编译脚本,需要提前安装好make

如果脚本报错:bash: ./build.sh: /bin/bash^M: 解释器错误: 没有那个文件或目录

则需要使用vim修改这个脚本的文件格式为unix,以下修改步骤,需要先安装vim

查看文件的属性
vim build.sh
:set

可以看到
fileformat=dos
则说明这个文件是Windows下的文件

修改文件格式
vim build.sh
:set ff=unix
:wq

即可

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值