我是靠谱客的博主 仁爱网络,最近开发中收集的这篇文章主要介绍ffmpeg 安装bzlib_FFmpeg和x264的windows版本编译安装记录,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

网上有各种版本的介绍,建议优先参考ffmpeg官网的说明,因为更新时间关系,可能细节有差异,但差异不大:https://trac.ffmpeg.org/wiki/CompilationGuide/MSVC

1. 下载和安装YASM

这一步好像已经不必要,最新版的代码中已经使用nasm来代替yasm。

YASM下载地址:http://yasm.tortall.net/Download.html,下载其64位版本Win64 .exe (64 位 Windows 通用),即页面中的Win64 .exe (for general use on 64-bit Windows)。

下载后,将下载回来的yasm-1.3.0-win64.exe 改名为yasm.exe,并放置于 MSYS2 安装目录:/msys64/usr/bin/ 中。

2、下载msys64并安装,下一步操作即可;

3、进入msys2安装必须要的编译环境工具;

C:msys64usr>cd ..

C:msys64>msys2_shell.cmd -mingw32 后

更新其他包

john@LIYIZHANG-PC MINGW64 ~

分别安装32位版本和64位版本的工具链

$ pacman -S mingw-w64-i686-gcc

$ pacman -S mingw-w64-x86_64-gcc

$ pacman -S libtool

$ pacman -S autoconf

$ pacman -S automake

$ pacman -S awk

$ pacman -S base-devel

如果安装失败,请搜索修改pacman的源到国内的地址,一定要安装成功,失败了可以多重试几次;

下载完成后,重命名msys64/usr/bin/link.exe 为msys64/usr/bin/link.bak, 避免和MSVC 的link.exe抵触;

4、先修改文件msys2_shell.cmd:注释掉set MSYS2_PATH_TYPE=inherit前面的; 然后在开始菜单中输入: vs 2017就会出现列表,选择打开适用于 VS 2017 的 x64 本机工具命令提示,在窗口中输入进入msys64所在目录后

启动mingw;

64位的启动:

c:msys64>msys2_shell.cmd –mingw64

32位的启动:

c:msys64>msys2_shell.cmd –mingw32

5、编译安装x264,注意32位和64位的编译的不同:

如果是编译32位版本的x264,请打开MSYS2 MinGW 32-bit,然后执行以下命令:

c:msys64>msys2_shell.cmd -mingw32

./configure --prefix=/usr/local/ --host=i686-w64-mingw32 --enable-shared  --extra-ldflags=-Wl,--output-def=libx264.def

如果是编译64位版本的x264,请打开MSYS2 MinGW 64-bit,然后执行以下命令:

./configure --prefix=../build --host=x86_64-w64-mingw32 --enable-shared  --extra-ldflags=-Wl,--output-def=libx264.def

将DEF文件转换为Lib文件

打开Visual Studio的VC/Bin目录,下面有个lib工具可以用来生成Lib文件

32位版本Lib文件生成:

VC/Bin/Lib /DEF:libx264.def /machine:x86

64位版本Lib文件生成:

VC/Bin/amd64/Lib /DEF:libx264.def /machine:x64

6、配置编译ffmpeg,在开始菜单中输入: vs 2017就会出现列表,选择打开适用于 VS 2017 的 x64 本机工具命令(32位的请选择 适用于 VS 2017 的 x64_x86 本机工具命令)提示,在窗口中输入进入msys64所在目录后,启动mingw64:

c:msys64>msys2_shell.cmd –mingw64

64位的:

./configure --target-os=win64 --arch=x86_64 --toolchain=msvc --enable-asm --enable-yasm --disable-avdevice  --disable-doc --disable-ffplay --disable-ffprobe --enable-cross-compile --enable-shared  --enable-static --disable-bzlib --disable-libopenjpeg --disable-encoders --disable-iconv --disable-zlib --prefix=../ffmpeg_build_x86 --enable-gpl --enable-nonfree  --enable-encoder=libx264 --enable-encoder=mjpeg  --enable-libx264  --extra-cflags="-I/usr/local/include"  --extra-ldflags="-LIBPATH:/usr/local/lib"

32位的:

./configure  --target-os=win32 --arch=i386 --toolchain=msvc  --enable-asm --enable-yasm --disable-avdevice  --disable-doc --disable-ffplay --disable-ffprobe --enable-cross-compile --enable-shared  --enable-static --disable-bzlib --disable-libopenjpeg --disable-encoders --disable-iconv --disable-zlib --prefix=../ffmpeg_build_x86 --enable-gpl --enable-nonfree  --enable-encoder=libx264 --enable-encoder=mjpeg  --enable-libx264  --extra-cflags="-I/usr/local/include"  --extra-ldflags="-LIBPATH:/usr/local/lib"

注意--extra-ldflags和--extra-cflags配置的x264中,必须区分引用的是32位的x264还是64位的,否则会一直出现找不到libx264错误的情况;

配置完成后,记得修改项目根目录下生成config.h文件,这个文件虽然说不建议编辑,但是要进行一次编辑的,打包保存为utf-8编码,默认是GBK编码,编译会不断弹出编码警告,如果不嫌烦可以不管;

不能使用make -j4并行编译,虽然很快,但可能会出现 Could not create temporary library的错误,另外,也有可能是--prefix所在路径不存在或者磁盘空间不够了导致的。

本文为呱牛笔记原创文章,转载无需和我联系,但请注明来自呱牛笔记 ,it3q.com

最后

以上就是仁爱网络为你收集整理的ffmpeg 安装bzlib_FFmpeg和x264的windows版本编译安装记录的全部内容,希望文章能够帮你解决ffmpeg 安装bzlib_FFmpeg和x264的windows版本编译安装记录所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部