您现在的位置是:首页 > 技术文章网站首页技术文章

[FFmpeg]Win编译FFmpeg动态库

  • WangYe
  • 2020-12-05 13:52:36
  • 262 次阅读
在Windows编译FFmpeg依赖库

1. FFmpeg 源码

    下载地址:点击下载


2. MinGW+MSYS环境安装

    下载地址:点击下载

运行安装,直接将MinGW安装在D:/MinGW目录下了,也可自由选择其他目录。

运行界面勾选如下项,然后菜单Installation中Apply Changes去下载安装相应的包,完成安装,其中就包含msys环境.

1607143740882976.png


3.yasm 汇编工具

yasm是汇编编译器,因为ffmpeg中为了提高效率用到了汇编指令,比如MMX和SSE。因此需要安装这个工具。

    下载地址:点击下载

下载好此汇编工具后,解压出来为vsyasm.exe,需要改名为yasm.exe,并移动到 D:/MinGW/msys/1.0/bin目录下


4. pkg-config 及 glib

pkg-config是一个辅助的配置、链接工具,可以方便的支持gcc自动配置。

    下载地址:点击下载

pkg-config 解压后,将 pkg-config.exe 拷贝到 D:/MinGW/bin/

glib 解压后,将 libglib-2.0-0.dll 拷贝到D:/MinGW/bin/


5. 下载 SDL 库

ffmpeg中的ffplay依赖于SDL库,因此,如果需要编译ffplay.exe的话,这个是必要的库。

下载SDL: https://www.libsdl.org/release/SDL2-devel-2.0.8-mingw.tar.gz

解压之后,把目录下lib,bin,include,share下面的内容拷贝到D:\MinGW\msys\1.0的对应目录下,注意是全部


6. 下载 nasm

    下载地址:点击下载

将nasm.exe拷贝到 D:\MinGW\msys\1.0\bin 下面。


7. 修改配置文件

    7.1 配置 msys.bat

    编辑 D:\MinGW\msys\1.0\msys.bat 在此文件的最前面(@echo off之后)添加一行如下内容:

Call "D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat"

    (具体的路依VS2013实际安装路径来修改)


    7.2 重命名link.exe

    重命名 D:/MinGW/msys/1.0/bin/link.exe 为link_renamed.exe (依实际安装选择路径),这一步是防止这个link.exe与VC的link.exe发生冲突,编译完成后可修改回来。


    7.3 配置 pkg-config

    使用 VsCode 编辑 D:\MinGW\msys\1.0\etc\profile 在

if [ $MSYSTEM == MINGW32 ]; then
  export PATH=".:/usr/local/bin:/mingw/bin:/bin:$PATH"
else
  export PATH=".:/usr/local/bin:/bin:/mingw/bin:$PATH"
fi

之后添加环境变量设置 如下:

if [ -z “$PKG_CONFIG” ]; then
export PKG_CONFIG=D:/MinGW/bin/pkg-config.exe
fi

if [ -z “$PKG_CONFIG_PATH” ]; then

export PKG_CONFIG_PATH=MinGW/lib/pkgconfig:/usr/local/lib/pkgconfig
fi


8. 配置编译

(1) 双击 D:\mingw64\msys 中的 msys.bat , 输入 cd 转至你FFmpeg-4.2.2源码文件夹

(2) 配置 输入 :

./configure --enable-shared --prefix=./vs2019_build

注释:
    本例动态库编译,将编译好的动态链接放置新建vs2019_build文件夹中

(3) 编译 输入命令 : make all

(4) 安装 输入命令 : make install


编译完成后的文件在D:\Test\ffmpeg\vs2019_build (在 ffmpeg 源码文件夹里 vs2019_build 文件夹)

图片.png

文章评论 (0)



Top