我是靠谱客的博主 谦让小蝴蝶,最近开发中收集的这篇文章主要介绍win10 编译 FFmpeg (MSYS2 + MSVC 64 )win10编译FFmpeg1.安装编译环境2.编译第三方库3.下载和编译ffmpeg4.window cmd5.参考:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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.参考:所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部