1 Star 5 Fork 0

wexiangis / ffmpeg5-build

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Linux 编译

0. 编译系统相关工具安装(能安装尽量安装)

sudo apt-get install yasm gperf autogen autoconf automake libtool

1. 准备好编译器,尤其是交叉编译器注意配置好环境变量

2. 编译目标平台的 ffmpeg

可选平台名称见 platform 文件夹内配置文件名

目前 PLAT 支持 x64,arm,aarch64,mips64,loongarch64,armv7,arm64-v8a

make PLAT=x64 base ffmpeg5

3. 整理生成 shared 和 static 文件夹

生成 install_xxx_shared 和 install_xxx_static 两个目录

其中 install_xxx_shared/lib/libffmpeg.so 是多合一集成动态库,如不需要可以不拷贝

make PLAT=x64 install

4. android ndk版编译,注意自行调整 armv7.mk 或者 arm64-v8a.mk 中的 AS_NDK_XX 定义

Windows 编译

1. 下载安装 msys2

https://www.msys2.org/

2. 运行 msys2.exe 打开命令行窗口,使用下列指令安装x64、x86工具链以及编译过程需要的工具

pacman -S mingw-w64-x86_64-toolchain mingw-w64-i686-toolchain base-devel
pacman -S mingw-w64-x86_64-nasm mingw-w64-i686-nasm nasm unzip
pacman -S mingw-w64-x86_64-yasm mingw-w64-i686-yasm

## 如过程出现安装失败,可用下面指令升级安装包数据库
pacman -Sy archlinux-keyring && pacman -Su

3. 按需要运行下列对应版本的命令窗口程序

编译x64版本时使用 mingw64.exe 命令行窗口
编译x86版本时使用 mingw32.exe 命令行窗口

4. 在命令行通过cd指令进入到工程所在目录

例如:
cd /c/xxx 进入C盘目录
cd /d/xxx 进入D盘目录

5. 使用脚本自动编译,最终安装内容在 install_x64 和 install_x86 目录

mingw64.exe 命令窗口使用 make -f win_x64.mk base ffmpeg
mingw32.exe 命令窗口使用 make -f win_x86.mk base ffmpeg

macOS 编译

1. 安装必要工具 pkg-config

## 安装成功后环境变量不会立即生效,关闭重开终端即可
brew install pkg-config yasm

2. 编译

## x86_64 cpu
make -f macos_x86_64.mk base ffmpeg5
make -f macos_x86_64.mk install

## m1 cpu
make -f macos_arm64.mk base ffmpeg5
make -f macos_arm64.mk install

iOS 编译

1. 安装必要工具 pkg-config

## 安装成功后环境变量不会立即生效,关闭重开终端即可
brew install pkg-config yasm

2. 编译

## arm64 cpu
make -f ios_arm64.mk base ffmpeg5
make -f ios_arm64.mk install

## 其它cpu参考上面两行指令,对应改用ios_armv7.mk、ios_x86_64.mk(x86_64模拟器)

OpenHarmony 编译(ubuntu20环境下)

0. 前言

1. 类似安卓,使用llvm+sysroot目录的方式来编译目标文件。交叉编译器用来通过configure阶段,之后将替换为clang(llvm);
2. 目前(3.2Beta版)支持三种架构:arm(armeabi-v7a)、aarch64(arm64-v8a)、x86_64 在编译时通过"clang --target=aarch64-linux-ohos"来指定架构类型.

1. "llvm + sysroot + 交叉编译器"准备

1. llvm和交叉编译器可以从OpenHarmony的全量源码里取得
    prebuilts/clang/ohos/linux-x86_64/llvm
    prebuilts/gcc/linux-x86/arm/gcc-linaro-7.5.0-arm-linux-gnueabi (arm/armeabi-v7a)
    prebuilts/gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu (aarch64/arm64-v8a)

2. sysroot文件夹在安装deveco studio并下载native sdk之后,在native目录内取得,从windows拷贝到ubuntu20;

3. 把 llvm/bin 和交叉编译器的 bin 目录添加到 PATH 环境变量

4. 检查
    clang --help
    aarch64-linux-gnu-gcc -v
    arm-linux-gnueabi-gcc -v

5. 修改 platform 目录下 ohos-xxx.mk 里面的 LLVM 和 SYSROOT 指向自己的路径

2. 编译(生成文件到libs目录)

## aarch64(arm64-v8a)版本
make -f ohos.mk PLAT=aarch64 base ffmpeg5
make -f ohos.mk PLAT=aarch64 install

## arm(armeabi-v7a)版本
make -f ohos.mk PLAT=arm base ffmpeg5
make -f ohos.mk PLAT=arm install

3. 其它提示

不要被arm、armeabi-v7a、arm64-v8a、arm64、aarch64、armv7这些符号绕晕,他们大致的一个等价关系:
arm ~ armv7 ~ armeabi ~ armeabi-v7a
arm64 ~ aarch64 ~ arm64-v8a
amd64 ~ x86_64

所以看到前面配置写 arm64-v8a 后面又写作 aarch64 时不必奇怪,他们都是同一个架构类型,至少在当前工程如此

空文件

简介

ffmpeg5全平台移植: Linux(Android)、Windows、macOS、iOS、OpenHarmony 展开 收起
Makefile 等 4 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/wexiangis/ffmpeg5-build.git
git@gitee.com:wexiangis/ffmpeg5-build.git
wexiangis
ffmpeg5-build
ffmpeg5-build
master

搜索帮助