windows下msvc编译x264 + ffmpeg静态库

记录下windows编译x264+ffmpeg

准备环境:

1.安装msys2 下载地址
2.vs2017
3.下载yasm 下载地址
4.gas-preprocessor 下载地址
5.ffmpeg源代码 下载地址
6.x264源代码 下载地址


一、编译步骤

1.修改 C:\msys64\msys2_shell.cmd 中的 rem set MSYS2_PATH_TYPE=inherit,去掉rem,取消这⼀句的注释。使MSYS2的环境变量继承当前CMD的窗口的环境变量。

替换yasm
将下载的yasm-**-win64.exe改成yasm.exe,替换msys安装目录C:\msys64\usr\bin\yasm.exe,可以做个备份把原来的改成yasm.bak

安装gas-preprocessor
将下载的gas-preprocessor.pl放到msys2安装目录下面C:\msys64\usr\bin\gas-preprocessor.pl

2.重命名 C:/msys64/usr/bin/link.exe 为 C:/msys64/usr/bin/link.bak , 避免和MSVC 的link.exe抵触。

3
菜单中打开vs2017 x64本机工具命令提示(编译64位静态库)

在这里插入图片描述

4.检查环境

echo %lib%

在这里插入图片描述

5.输入命令启动msys2命令行窗口

C:\msys64\msys2_shell.cmd -mingw64 -full-path

在这里插入图片描述

6.安装依赖项

# 安装mingw工具链
pacman -S mingw-w64-x86_64-toolchain

# 安装linux base-devel
pacman -S base-devel

# 安装汇编工具,gcc等
pacman -S yasm nasm gcc

7.检查环境

Administrator@DESKTOP-IJ6JB8N MINGW64 ~
# which cl
/c/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/cl

Administrator@DESKTOP-IJ6JB8N MINGW64 ~
# which link
/c/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/link

Administrator@DESKTOP-IJ6JB8N MINGW64 ~
# which yasm
/usr/bin/yasm

Administrator@DESKTOP-IJ6JB8N MINGW64 ~
# which cpp
/mingw64/bin/cpp

Administrator@DESKTOP-IJ6JB8N MINGW64 ~
# which gas-preprocessor.pl
/usr/bin/gas-preprocessor.pl

8.下载ffmpeg和x264源代码,并解压到C:\msys64\home\Administrator目录下,新建buildx264.sh和buildffmpeg.sh

buildx264.h
CC=cl: msvc环境,可生成x264.lib,如果不添加,则会生成x264.a文件,后面msvc环境编译ffmpeg可能会找不到

basepath=$(cd `dirname $0`;pwd)
 
echo ${basepath}
 

cd ${basepath}/x264-master
pwd
 
CC=cl ./configure --prefix=${basepath}/x264_install \
--disable-shared=no --disable-asm --enable-static 

make clean   
make -j6
make install

buildffmpeg.sh

basepath=$(cd `dirname $0`;pwd)
 
echo ${basepath}
 

cd ${basepath}/FFmpeg-n4.4.1
pwd

./configure --prefix=${basepath}/ffmpeg_4.4install \
      --toolchain=msvc \
      --enable-gpl \
      --enable-nonfree \
      --enable-static \
      --disable-shared \
      --cc=cl \
      --cxx=cl \
      --disable-programs \
      --enable-encoder=libx264 \
      --enable-libx264 \
      --extra-cflags=-I/home/Administrator/x264_install/include \
      --extra-ldflags=-LIBPATH:/home/Administrator/x264_install/lib 

make clean
make -j6
make install

9.msys2进到C:\msys64\home\Administrator目录,编译x264

sh buildx264.sh

编译完x264后会在x264_install下生成编译后的x264库

10.生成x264_install文件夹include中找到x264.h并打开,找到X264_API,屏蔽原有的,新增#define X264_API ,如果不做这一步,编译出的ffmpeg库在vs下使用,会有x264库函数的链接错误

#define X264_API 

/*
#ifdef X264_API_IMPORTS
#   define X264_API X264_DLL_IMPORT
#else
#   ifdef X264_API_EXPORTS
#       define X264_API X264_DLL_EXPORT
#   else
#       define X264_API
#   endif
#endif
*/

11.编译ffmpeg

sh buildffmpeg.sh

所需时间较长,编译完后会在ffmpeg_4.4install / lib文件夹生成.a文件,.a文件可在VS下直接使用,
使用时需要将之前编译的x264.lib搭配一起使用

在这里插入图片描述

编译完成的x264+ffmpeg4.4静态库下载链接

参考文章:
添加链接描述
添加链接描述
添加链接描述
添加链接描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值