msys2+minGW方案编译ffmpeg的最佳实践

一、Win10 64bit编译环境的建立

1)从http://www.msys2.org/下载 msys2-x86_64-xxx.exe

2) 安装msys2到默认路径 C:\msys64\

3) 运行MSYS2 w64

4)执行 pacman -Syu 更新系统当出现提示时,选择y

5) 当窗口关闭时,重新打开msys2 w64 环境,如步骤3

6)再次执行 pacman -Su 当出现提示时,选择y

二、安装其他组件

1)pacman -S make //安装make命令工具

2)pacman -S diffutils //安装比较工具

3)pacman -S yasm //安装yasm汇编语言编译器,ffmpeg使用SIMD汇编指令进行加速

4)pacman -S mingw-w64-x86_64-gcc //64bit的mingw编译器

5)pacman -S mingw-w64-i686-gcc //32bit 的mingw编译器

6)pacman -S mingw-w64-x86_64-gtk3 //64bit的gtk库

7)pacman -S mingw-w64-i686-gtk3/32bit的gtk库

8)pacman -S nasm//安装汇编语言编译器,x264使用SIMD汇编指令进行加速

以上主要安装make工具,yasm,nasm汇编器(ffmpeg和x264使用了SIMD之类加速),gcc编译器,gtk图像框架。

三、下载pkg-config工具

pkg-config 工具在编译时可以根据xxx.pc查找对应的头文件和库。PC文件一般原理如下:

1. 把你的pc文件,直接放到/usr/lib/…默认路径下。

2. 把你的pc文件的路径写到PKG_CONFIG_PATH环境变量里。

比如,你可以在/etc/.bashrc的文件末尾添加:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/test/ffmpeg_build/lib/pkgconfig

export PKG_CONFIG_PATH

那么,pkg-config就会到/home/test/ffmpeg_build/lib/pkgconfig寻找*.pc文件

一般pkg-config 通过 pkg-config xxx –libs –cflags xxx就是你要找得库,通过xxx.pc可以分析该库头文件和库文件在哪个目录

比如查找 pkg-config libavcodec --libs --cflags

1)下载64bit工具

http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/pkg-config_0.23-2_win64.zip

解压 pkg-config.exe to C:\msys64\mingw64\bin

2)下载32bit工具

http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.26-1_win32.zip

解压 pkg-config.exe to E:\msys64\mingw32\bin

四、拷贝intl.dll到以下文件夹

1)cd C:\msys64\mingw32\bin

2)cp libintl-8.dll intl.dll

3)cd C:\msys64\mingw64\bin

4)cp libintl-8.dll intl.dll

intl.dll 库是Windows系统很重要库,缺少它可能软件运行会异常。

五、下载源代码并编译

1)从ffmpeg官网下载源代码到C:\mycode

2)从 C:\msys64\中运行msys2_shell.cmd -mingw64

3) cd C:\mycode\ffmepg

4)执行编译即可

六、本文为了方便,写了一个脚本。

1)编译64bit

a) 从 C:\msys64\中运行msys2_shell.cmd -mingw64

b) ./ffmpeg-build-win release 64

2)编译32bit

a) 从 C:\msys64\中运行msys2_shell.cmd -mingw32

b) ./ffmpeg-build-win release 32

如上图所示编译成功,非常顺利。使用VC编译器编译过程如下

1)运行VC64bit 环境命令行行提示符((x64-native-tools--for--xxx)

2) cd c:\msys64

3)运行C:\msys64\msys2_shell.cmd -mingw64 -use-full-path

4. cd c:\mycode

5. 执行 ./ffmpeg-build-win release 64 msvc

编译期间会出现以下报错

这是config.h头文件有中文字符所知,去掉中文即可,重新make即可

这是config.h头文件有中文字符所知,去掉中文即可,重新make即可

七、总结

在编译ffmpeg之前的要完成依赖库编译,也是同样方法的,基本思想可以理解msys2环境是一个Linux环境,minGW工具链就是该Linux默认的编译工具连,按照Linux编译思路编译即可。更多更新信息请关注公众号:AV_Chat

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江海细流

如该文章对你有帮助,请支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值