win10 编译 FFmpeg (MSYS2 + MSVC 64 )

win10编译FFmpeg

MSYS2 + MSVC 64

1.安装编译环境

1.1安装MSYS2

下载官网:https://www.msys2.org/

安装完成后,打开安装目录,修改 msys2_shell.cmd 文件

rem set MSYS2_PATH_TYPE=inherit
#改为
set MSYS2_PATH_TYPE=inherit

1.1.1修改pacman为国内源

进入msys2安装目录下的,如:

D:\msys2\etc\pacman.d

修改 mirrorlist.mingw32 ,在 ## Primary 下第一行添加

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686/ 
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/

修改 mirrorlist.mingw64

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/ 
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/

修改 mirrorlist.msys

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch/ 
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/

1.1.2 打开msys2更新pacman软件包

管理员模式打开适用于 VS 2017 的 x64 本机工具命令提示 进入msys2安装目录,输入以下命令 打开msys2

32

msys2_shell.cmd -mingw32

64

msys2_shell.cmd -mingw64

在msys2控制台中输入以下命令,更新软件包

pacman -Sy

1.2安装mingw-w64

全部回车默认安装即可,编译64位之前编译过32位的环境,请先卸载32位的环境

32

pacman -S mingw-w64-i686-toolchain
pacman -S base-devel

64

pacman -S mingw-w64-x86_64-toolchain

1.3安装make等工具

pacman -S make
pacman -S automake
pacman -S autoconf
pacman -S perl
pacman -S libtool
pacman -S mingw-w64-i686-cmake
pacman -S pkg-config 
#如果需要编译出ffplayer的话,还需要安装SDL 
pacman -S mingw-w64-x86_64-SDL2

1.4安装YASM

安装yasm之前,需要把msys2安装目录中

D:\msys2\usr\bin\link.exe 改为 D:\msys2\usr\bin\link.bak

用的是 msvc 的编译模式,因为需要避免与MSVC的link.exe冲突.如果使用的是mingw编译则不需要改

MSYS2+ MinGW 跟 MSYS2 + MSVC 这两种编译方式。 MinGW 用的 gcc.exe 编译器。MSVC 才是 cl.exe 编译器。

pacman -S yasm

1.5安装NASM

pacman -S nasm

1.6检查安装完整性

没有出现no基本就OK了

which cl link yasm cpp

1.7安装git

安装就行,因为需要克隆项目

2.编译第三方库

打开适用于 VS 2017 的 x64 本机工具命令提示 进入msys2安装目录,输入以下命令 打开msys2

32

msys2_shell.cmd -mingw32

64

msys2_shell.cmd -mingw64

2.1下载和编译x264

x264是一个开源的[H.264/MPEG-4 AVC](https://baike.baidu.com/item/H.264%2FMPEG-4 AVC)视频编码函数库,是最好的有损视频编码器之一。

码云中clone下来

git clone https://gitee.com/mirrors_addons/x264.git

cd 进入x264文件夹中,执行,注意以下,prefix的参数记得改成你需要生在在的目录(注意空格–注意空格–注意空格)

32

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

64

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

之后make

make -j

之后install

make install

进入install目录(将.a文件转成.lib文件,需要libx264.def)
make install 之后发现lib目录下没有libx264.def,应该在源码目录下。

cd /home/admin/ffmpeg/build/libx264/lib

#若要⽣成64位lib⽂件则输⼊如下命令: 
lib /machine:X64 /def:libx264.def 
#若要⽣成32位lib⽂件则输⼊如下命令: 
lib /machine:i386 /def:libx264.def

lib的描述:https://www.cnblogs.com/lovesaber/archive/2012/11/27/2790297.html

3.下载和编译ffmpeg

官网中clone下来

git clone git://source.ffmpeg.org/ffmpeg.git
cd ffmpeg

#查看ffmpeg版本
git branch -a
#切换ffmpeg 4.2版本
git checkout remotes/origin/release/4.2

写一个编译脚本(注意extra-cflags路径和extra-ldflags路径)

build_ffmpeg.sh

./configure \
--prefix=/home/admin/ffmpeg/build/ffmepg-4.2 \
--arch=x86_64 \
--enable-shared \
--enable-gpl \
--enable-nonfree \
--disable-lzma	\
--disable-zlib	\
--enable-libx264 \
--extra-cflags="-I/home/admin/build/libx264/include" \
--extra-ldflags="-L/home/admin/build/libx264/lib" 

我在./configure的时候,disable了lzma和zlib,我好像没有用到这两个库,不写disable会默认依赖这个库的。

执行脚本

sh build_ffmpeg.sh
make -j
make install

编译中出现 xxx not found using pkg-config

在编译前,export PKG_CONFIG_PATH=库.pc的目录

4.window cmd

# 查看依赖什么库
dumpbin /dependents avcodec-58.dll
# 查看dll 32或64
dumpbin /headers xxx.dll

5.参考:

实战经验:在Windows平台编译x264

Linux编译安装各种坑,FFmpeg&libx264编译安装遇到的各种坑

window10_ffmpeg调试环境搭建

大佬编写ffmpeg的书(建议看这个)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用MSYS2和VS2015编译FFmpeg,你可以按照以下步骤进行操作: 1. 首先,你需要下载并安装MSYS2。你可以从官方网站https://www.msys2.org/下载MSYS2安装程序。 2. 安装完成后,打开MSYS2的命令行界面,并运行以下命令来安装必要的工具:pacman -S make gcc diffutils 3. 为了避免和MSVC的link.exe程序冲突,你需要将C:\msys64\usr\bin\link.exe重命名为C:\msys64\usr\bin\link_orig.exe。 4. 下载YASM(The Yasm Modular Assembler),你可以从官方网站https://www.tortall.net/projects/yasm/wiki/Download下载YASM。将下载的yasm--win64.exe重命名为yasm.exe,并将其拷贝至MSYS2的安装目录(比如C:\msys64)。 5. 现在你可以下载FFmpeg的源代码。你可以从官方GitHub仓库https://github.com/FFmpeg/FFmpeg下载FFmpeg的源码。 6. 打开MSYS2的命令行界面,并切换到FFmpeg源码所在的目录。 7. 运行以下命令来配置FFmpeg编译选项:./configure --toolchain=msvc --arch=x86_64 --enable-yasm --enable-asm --enable-shared --disable-static 8. 配置完成后,你可以运行make命令来开始编译FFmpeg。请注意,编译过程可能会比较耗时,请耐心等待。 9. 编译完成后,你可以使用编译好的库来进行你的项目开发。 总结一下,使用MSYS2和VS2015编译FFmpeg的步骤包括安装MSYS2、安装必要的工具、重命名link.exe、下载YASM、下载FFmpeg源码、配置编译选项、运行make命令进行编译。希望以上信息对你有帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [使用msys64+vs2019在编译ffmpeg](https://download.csdn.net/download/ihmhm12345/13116875)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [使用MSYS2 + VS2022编译FFmpeg](https://blog.csdn.net/powang2011/article/details/122724685)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值