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:msys64mingw64bin。

2)下载32bit工具

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

解压 pkg-config.exe to E:msys64mingw32bin。

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

1)cd C:msys64mingw32bin

2)cp libintl-8.dll intl.dll

3)cd C:msys64mingw64bin

4)cp libintl-8.dll intl.dll

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

五、下载源代码并编译

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

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

3). cd C:mycodeffmepg;

4) 执行./configure (根据需要调整配置);

5)、make 即可

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

1)编译64bit

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

b) ./ffmpeg-build-win release 64。

1)编译32bit

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

b) ./ffmpeg-build-win release 32

图片编译成功,还算比较顺利。

七、总结

 在编译ffmpeg之前的要完成依赖库编译,也是同样方法的./configure,make,基本思想可以理解msys2环境是一个Linux环境,minGW工具链就是该Linux默认的编译工具链,按照Linux编译思路编译即可。

作者: 江海细流 | 来源:公众号——音视频技术充电营

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论