win10 Ubuntu 子系统下编译ffmpeg 和 x264

该博客详细介绍了如何在Windows 10的Ubuntu子系统中编译x264和ffmpeg,并将它们导入Android项目。首先,下载并安装x264源码及yasm,修改configure文件后运行编译脚本。接着,编译ffmpeg,安装pkg-config,更新环境变量,并解决编译过程中遇到的问题。最后,将编译生成的库和头文件复制到Android项目中进行集成。
摘要由CSDN通过智能技术生成

编译x264

  • 下载x264源码
  • 下载 并安装 yasm
  • 在源码文件的根目录下传建android_build.sh文件,内容如下:
export ANDROID_NDK=~/linux_station/android-ndk-r21e ##linux 版ndk的路径
export TOOLCHAIN=${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64
export PATH=$TOOLCHAIN/bin:$PATH ##将toolchain 下的bin 添加到系统变量中
export SYSROOT=${TOOLCHAIN}/sysroot
export AR=$TOOLCHAIN/bin/aarch64-linux-android-ar
export CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang
export CXX=$TOOLCHAIN/bin/aarch64-linux-android21-clang++
export LD=$TOOLCHAIN/bin/aarch64-linux-android-ld
export RANLIB=$TOOLCHAIN/bin/aarch64-linux-android-ranlib
export STRIP=$TOOLCHAIN/bin/aarch64-linux-android-strip

./configure \
   ## --prefix=./so  \ ## 指定生成的lib和include 文件的路径,若不设置,则默认生成在usr/local下
    --sysroot=${SYSROOT} \
    --enable-shared \
    --enable-pic \
    --host=aarch64-linux-android ##这里指定host的版本,根据需要可以选择 arm 还是arm64(aarch),x86

make clean
make 
make install

  • 修改x264 configure 文件中的SONAME 命名的code,$API是x264的版本号,如157 否则导入到Android项目中后 编译apk时,.so.157的文件不会加载到apk的lib中

    echo "SONAME=libx264.so.$API" >> config.mak 修改为 echo "SONAME=libx264.so" >> config.mak

  • 在terminal 中执行 sudo ./android_build.sh,编译完成后,terminal中会打印生成的 lib 和 include 的路径

编译ffmpeg

  • 下载ffmpeg的源码
  • 在源码文件的根目录下传建android_build.sh文件,内容如下:

NDK=~/linux_station/android-ndk-r21e

TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
SYSROOT=${TOOLCHAIN}/sysroot
PLATFORMS=$NDK/platforms
AR=$TOOLCHAIN/bin/aarch64-linux-android-ar
AS=$TOOLCHAIN/bin/aarch64-linux-android-as
CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang
CXX=$TOOLCHAIN/bin/aarch64-linux-android21
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值