Android音视频开发—编译FFmpeg源码(Windows环境)

Windows环境下编译FFmpeg源码

由于最近需要学习Android音视频开发方面的知识,也就开始了FFmpeg方面的学习,往后的学习都会写成博客更新。

要想在Android开发中使用FFmpeg,首先当然是需要编译FFmpeg源码

首先,网上很多编译环境大都是Linux、Mac,而我电脑是windows,不免觉得会有很多坑要踩,果不其然,花了我很多时间。

流程如下:

  1. 由于windows没有相应的编译环境,我们则需要安装相应的环境——MinGw
  2. 安装NDK(建议r14b,不要使用最新版,同时需要在project structure中配置好)
  3. 下载FFmpeg源码(建议3.3.9(Hilbert)),并进行相应的配置
  4. 编写build_android.sh脚本
  5. 执行脚本进行编译

安装MinGw

  1. 下载最新版MinGw

  2. 勾选图中所有的项,再点击Installation中的Apply changes

  3. 配置环境变量Path
    C:\MinGW\bin
    C:\MinGW\msys\1.0\bin

  4. 检测是否配置成功
    cmd执行gcc -v

安装NDK

不要安装最新的,否则可能会编译不成功,安装r14b即可。

  1. NDK目录添加到环境变量Path
    检验是否成功
  2. 在项目的project structure中配置相应的NDK

FFmpeg源码相关

  1. 修改configure文件(3305-3308行)
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)'
  1. 编写build_android.sh文件(脚本文件网上也挺多的,需求不同配置也不同)
#!/bin/bash
#自己修改对应的路径,要配置到环境变量中去
NDK=C:/Users/ikata/Desktop/VideoDevelopment/android-ndk-r14b
SYSROOT=$NDK/platforms/android-18/arch-arm
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64
 
function build_one
{
./configure \
    --prefix=$PREFIX \
    --enable-shared \
    --disable-static \
    --disable-doc \
	--enable-cross-compile \
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
    --target-os=linux \
    --arch=arm \
    --sysroot=$SYSROOT \
    --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
    --extra-ldflags="$ADDI_LDFLAGS" \
    $ADDITIONAL_CONFIGURE_FLAG
}
CPU=arm
#编译后的文件夹,自己先创建一个
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one
 
read -p "Press any key to continue."
  1. ffmpeg目录下创建文件夹android/arm用于存储编译后的文件

编译(编译耗时较长,耐心等待吧)

  1. 打开MinGw/msys/1.0目录下的msys.bat文件
  2. 进入build_android.sh目录并执行该脚本
    .\build_android.sh或bash build_android.sh


3. 执行make命令
4. 执行make install命令
5. 编译完成(可能某些细节问题导致编译不成功,建议认真按照步骤进行,实在不行推倒重来吧!)

全部评论

相关推荐

投递阿里巴巴控股集团等公司7个岗位 >
点赞 评论 收藏
转发
头像
不愿透露姓名的神秘牛友
03-20 10:18
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务