编译Windows平台下使用的ffmpeg

ffmpeg官网只提供了ffmpeg源码,在Linux下可以比较方便的编译,如果使用的是centos操作系统可以参考"http://trac.ffmpeg.org/wiki/CompilationGuide/Centos"

但是Windows的编译比较扯淡,主要原因在于Windows编译动态库的时候需要增加一些非标准c++的语法,ffmpeg并没有对其做适配,所以一般情况下我们有两种方式可以编译生成Windows平台使用的ffmpeg:

第一种:在Linux下安装mingw进行交叉编译;
第二种:在Windows下安装mingw编译;

本篇博文我们介绍第二种方案。

准备

1、ffmpeg源码
2、MSYS2
3、Mingw-w64(mini gnu for windows)

ffmpeg源码我们可以从ffmpeg官网上下载,此处我们介绍一下MSYS2(Minimal SYStem 2),他在windows平台上提供了一个Linux仿终端,几乎可以使用Linux下的全部命令,软件安装包使用pacman,源于Arch Linux。

Mingw-w64:作用是Windows版gcc。我们不用在Windows环境下安装,直接在MSYS2中通过pacman命令安装,其实msys2中已经有了自己的gcc,但是通过msys2 自带的gcc编译出来的库文件vs 中的编译器无法使用,而通过Mingw-w64(或Mingw-w32)中的gcc编译生成的库文件vs可以直接使用。

更改msys2源:参考“https://www.cnblogs.com/flyinggod/p/10841291.html”,目的是使msys2中安装软件更迅速。

环境安装

MSYS2我们直接从其官网:“https://www.msys2.org/ 下载最新的安装包默认安装。

Mingw-w64(gcc)安装

我们通过下面命令查看哪些gcc已经安装:

pacman -Sl | grep "gcc"

我们可以看到mingw32 版gcc已经安装(第一行),注:此处一定要在后面提示[已安装],才表明已经安装,不是列出来就代表已经安装。

如果没有安装使用如下命令进行安装:

pacman -S mingw-w64-i686-gcc 
pacman -S mingw-w64-x86_64-gcc 

安装好后通过gcc -v命令查看当前默认环境是不是mingw32版gcc:

编译

在ffmpeg源码路径下通过如下命令编译

PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
  --prefix="$HOME/ffmpeg_build" \
  --extra-cflags="-I$HOME/ffmpeg_build/include" \
  --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  --extra-libs=-lpthread \
  --extra-libs=-lm \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-nonfree \
  --enable-shared \
  --enable-decoder=h264 \
  --enable-parser=h264 \
  --arch=x86_32

make
make install

 

 

参考:https://www.cnblogs.com/haibindev/archive/2011/12/01/2270126.html

参考:https://blog.csdn.net/u014552102/article/details/104400885(主要参考)

终极解决方案

使用vs编译器,不用安装mingw,只需在msys2中安装make和configure就可以,参考:

http://ffmpeg.org/platform.html#Windows

步骤

1、设置LIB环境变量

2、设置INCLUDE环境变量

3、编译

./configure --enable-shared --enable-small --disable-all --disable-autodetect --enable-avcodec --enable-decoder=h264 --enable-dxva2 --enable-hwaccel=h264_dxva2 --toolchain=msvc --prefix=host

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

heibao111728

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值