编译WINDOWS版FFmpeg,成功

  其实很简单。吾之所以费了这么大的事情,关键就在于,试图在WIN7虚拟机上编译,于是有各种莫名其妙的错误。

参考:https://www.jianshu.com/p/5f175dec9109

  • 环境准备

WIN10,VS2015。

  • 下载FFmpegInterop

https://github.com/microsoft/FFmpegInterop

  • 下载ffmpeg

下载、解压、改名ffmpeg,放在FFmpegInterop下。

  • 下载安装MSYS2

https://www.msys2.org/

下载x86_64;安装在c:\msys64

  • 配置

c:\msys64\usr\bin目录下,把link.exe改名为link.bak,这样可以调用VS的link。

编辑C:\msys64\msys2_shell.cmd:

rem set MSYS2_PATH_TYPE=inherit
改成
    set MSYS2_PATH_TYPE=inherit

编辑C:\msys64\home\XXXX\.bashrc

export PATH=/C/'Program Files (x86)'/'Microsoft Visual Studio 14.0'/VC/bin/amd64:${PATH}
  • 启动MSYS2
set MSYS2_BIN="C:\msys64\usr\bin\bash.exe"

cd  c:\msys64

msys2_shell.cmd -mingw64

右键,options,text,Character set改为UTF-8。

  • MSYS2安装软件

参考中建议使用MinGW-w64方式。

pacman -S mingw-w64-x86_64-toolchain
pacman -S nasm

# pacman -S make gcc diffutils pkg-config
  • 检查编译命令
$ which cl
/C/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl

$ which link
/C/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/link

$ which yasm
/usr/bin/yasm

$ which cpp
/mingw64/bin/cpp
  • 编译x264

下载,解压,编译。

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

make

make install

转换为dll

#若要生成64位lib文件则输入如下命令:
lib /machine:X64  /def:libx264.def

#若要生成32位lib文件则输入如下命令:
lib /machine:i386 /def:libx264.def
  • configure

修改FFmpegConfig.sh

--enable-gpl \
--enable-nonfree \
--enable-libx264 \
--extra-cflags="-I${BUILD_LIBS}/include" \
--extra-ldflags="-LIBPATH:${BUILD_LIBS}/lib"

执行:

./FFmpegConfig.sh Win10 x64

说是把新生成的config.h文件打开后转换为UTF-8格式。这样可以避免非常多的警告。

  • make
./BuildFFmpeg.bat win10 x64
  • 检查32位还是64位:
查看32位还是64位:
dumpbin /headers libx264.dll

查看符号清单(导出函数)
dumpbin /exports libx264.dll > libx264-exports.txt
发布了2654 篇原创文章 · 获赞 352 · 访问量 210万+

猜你喜欢

转载自blog.csdn.net/quantum7/article/details/105431904
今日推荐