平台具体信息
- Developer Documentation
开发者概述
- Git How-To
Git
- FFmpeg Automated Testing Enviroment
FFmpeg自动化测试环境。
2. 在Windows10、NDK r20下编译FFmpeg
================================================================================================
在Windows下编译FFmpeg需要准备工具 MSYS2
和 Yasm
MSYS2集成了 Pacman、MinGW-w64的Cygwin
升级版,下载地址在:MSYS2下载地址
Yasm是一个汇编器。在地址在:Yasm下载地址,下载对应的 .exe
文件,下载完后放入到 Windows\System32文件夹下就行了。
关于安装完MSYS2后,需要配置一些东西,重点去看这个blog:msys2在windows10下编译安装ffmpeg+x265
至于265的可以考虑先装。
在这个地方(使用WIN10编译)我踩坑无数,花了几天的休息时间终于编译出来了。
这里先列出我所有踩过的坑:
- 书上、网上的编译方法过于老旧
书上、网上所使用的的FFmpeg、ndk都是比较旧的,比如FFmpeg是3.xx,ndk是r12或者r10
而新版本的ndk是r20,ffmpeg是4.2
他们的区别是 旧版本使用gcc编译,新版本必须使用clang编译。
- 关于msys2
它是一个命令行工具,可以使用 ./
来执行文件,它的作用和linux的终端一样,功能非常强大
我们要用其来编译ffmpeg。
- 使用clang时,要去改configure文件,旧版本也要,但是新旧的改法已经完全不同了。
这里就不多探究为什么要怎么怎么改。具体的可以参考这篇文章(完全ok):编译 FFmpeg 之 clang
先说下目的:ffmpeg4之后使用clang编译器进行编译,但是它并没有专门为clang声明一套方案,这导致如果我们不在其配置文件下加入clang的一些声明,会导致后期我们编译ffmpeg不成功。
首先在ffmpeg的文件下找到configure,用文本打开。
找到 --cross-prefix=PREFIX use PREFIX for compilation tools [$cross_prefix]
在其下面加一行:
–corss-prefix-clang=PREFIX use PREFIX for compilation clang tools [$cross_prefix]
接着找到 CMDLINE_SET="..... corss_prefix
在其下面添加一行:
cross_prefix_clang
接着找到
set_default target_os
if test “$target_os” = android; then
cc_default=“clang”
fi
ar_default=“ c r o s s p r e f i x {cross_prefix} crossprefix{ar_default}”
cc_default=“ c r o s s p r e f i x {cross_prefix}