Win10编译FFmpeg-64位动态库

4 篇文章 0 订阅
3 篇文章 0 订阅

在win10上编译FFmpeg
提供两种方法

1.利用Cygwin编译FFmpeg

通过安装Linux虚拟开发环境Cygwin然后在虚拟开发环境中编译FFmpeg。
1、首先,到 Cygwin官网下载 Cygwin 的可执行程序 setup-x86_64.exe。

2、第二步安装Cygwin。安装 Cygwin的操作非常简单,就是下一步,下一步。但需要注意一点,在安装的时候我们需要将必须的包安装上。主要有下面几个包:

gcc
g++
make
cmake
automake
gdb
nasm
yasm
wget

在安装好Cygwin后就可以使用wget命令进行网络资源的命令行下载。

3、编译安装ffmpeg

编译yasm

wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make && make install

编译 fdk-aac

wget https://jaist.dl.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-0.1.6.tar.gz
tar xvf fdk-aac-0.1.6.tar.gz
cd fdk-aac-0.1.6
./configure
make && make install

在编译ffmpeg时,有可能会报找不到fdk_aac库的错误。此时我们应该设置一下 PKG_CONFIG_PATH,指定ffmpeg到哪里找我们安装好的库。上面通过源码安装的库,默认地址为/usr/local/lib下面,当然你可以通过./configure 中的–prefix参数改变这个目录。如果使用默认路径的话,可以通过下面的命令来指定编译时去哪里找库export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig 如果你改变了默认路径,则将后面的 /usr/local/lib/pkgconfig修改为你变更后的路径/xxx/…/lib/pkgconfig即可。

编译lame

wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar -xzf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure
make && make install

问题一:
在Cygwin下安装 lame的时候遇到执行 ./configure 失败的情况。如 “error: cannot guess build type; you must sepcify one”,对这个问题可以通过下面的步骤来解决:
安装automake。可以通过 which automake来确认automake 是否已经安装。如果没有安装,可以通使用 apt-cyg install automake进行安装。
确认automake当前版本。可执行autuomake --version获取当前automake的版本号。
将 lame目录下的 config.guess文件替换为 /usr/share/automake-version下的config.guess 文件。
此时,再执行./configure进就可以下成功了。
问题二:
make时出现 "error: ‘_O_BINARY’ undeclared (first use in this function)"的错误,解决办法如下:
打开出错文件 vi ./frontend/lametime.c
将下面这段代码注释掉

/*
#elif defined __CYGWIN
setmod(fileno(fp), _O_BINARY);
*/

再执行make就可以成功了。

编译nasm

wget https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.gz
tar xvf nasm-2.13.03.tar.gz
cd nasm-2.13.03
./configure
make && make install

编译x264

wget http://mirror.yandex.ru/mirrors/ftp.videolan.org/x264/snapshots/last_x264.tar.bz2
bunzip2 last_x264.tar.bz2
tar -vxf last_x264.tar
./configure --enable-static --enable-shared --disable-asm --disable-avs
make && make install

安装ffmpeg

wget -c https://ffmpeg.org/releases/ffmpeg-4.0.2.tar.bz2
bunzip2 ffmpeg-4.0.2.tar.bz2
cd ffmpeg-4.0.2.tar.bz2
./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-small --arch=x86_64 --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-filter=delogo --enable-debug --disable-optimizations --enable-shared
make && make install

4、编译ffmpeg成功
把ffmpeg.exe 所在路径配置为环境变量,然后打开 cmd 窗口 运行ffmpeg -version,可能会报库找不到的异常,然后我们把对应库复制到usr\local\ffmpeg\bin这个目录下。例如:cygfdk-aac-1.dll ,libx264-157.dll。

2.使用MinGW-W64编译FFmpeg-64

下载MinGW-W64并解压
MinGW-W64 GCC-8.1.0下载地址
下载FFMPEG源码并解压
ffmpeg-4.2.2下载地址
下载msys并解压
msys集成版下载地址
下载yasm,下载后为vsyasm-1.3.0-win64.exe,改名为yasm.exe,复制到C:\mingw64\msys\bin目录下(根据你安装MinGW的位置改变),将文件路径C:\mingw64\msys\bin添加到环境变量中
yasm-Win64下载地址
配置C:\mingw64\msys,右击后点击“编辑”,在此文件的最前面(@echo off之后)添加一行如下内容: (依VS2017实际安装路径修改路径)

Call“C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat”

重命名 C:\mingw64\msys\bin\link.exe 为link_renamed.exe (依实际安装选择路径),这一步是防止这个link.exe与VC的link.exe发生冲突,编译完成后可修改回来。
下载pkg-config-0.23-2.zip及glib_2.18.4-1_win32.zip,把pkg-config.exe和libglib-2.0-0.dll解压到C:\mingw64\bin下。
pkg-config-0.23-2.zip下载地址
glib_2.18.4-1_win32.zip下载地址
配置pkg-config,用vscode打开C:\mingw64\msys\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=C:/mingw64/bin/pkg-config.exe
fi
#(C:/mingw64/bin/pkg-config.exe这个地址改成你的MinGW安装位置)
if [ -z “$PKG_CONFIG_PATH” ]; then
export PKG_CONFIG_PATH=mingw64/lib/pkgconfig:/usr/local/lib/pkgconfig
fi

配置编译,双击C:\mingw64\msys中的msys.bat,此时会打开一个命令行页面,最上面显示MinGW32,命令行输入cd C:\mingw64\ffmpeg-4.2.2(转至你FFmpeg-4.2.2源码文件夹)
输入命令:./configure --enable-shared --prefix=./vs2017_build本例动态库编译,将编译好的动态链接放置新建vs2017_build文件夹中
编译,输入命令:make all
安装,输入命令:make install
编译完成后的文件在C:\mingw64\ffmpeg-4.2.2\vs2017_build

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值