概述
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:msys2etcpacman.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:msys2usrbinlink.exe 改为 D:msys2usrbinlink.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的书(建议看这个)
最后
以上就是谦让小蝴蝶为你收集整理的win10 编译 FFmpeg (MSYS2 + MSVC 64 )win10编译FFmpeg1.安装编译环境2.编译第三方库3.下载和编译ffmpeg4.window cmd5.参考:的全部内容,希望文章能够帮你解决win10 编译 FFmpeg (MSYS2 + MSVC 64 )win10编译FFmpeg1.安装编译环境2.编译第三方库3.下载和编译ffmpeg4.window cmd5.参考:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复