App下载 微信公众号

Cygwin安装与配置 - Windows下编译安装FFmpeg【音视频】

技术 · 移动开发 · 其他移动端开发/ 作者【吾非言】/ 发布于2020-8-11/ 1.91k次浏览
2020 8/11 11:22
摘要: 本篇文章主要讲解在Windows系统上Cygwin的安装与配置,以及利用Cygwin实现在Windows环境下编译安装FFmpeg。众所周知,在Linux/Mac下编译 FFmpeg是非常方便的,但要在 Windows下编译 FFmpeg还真要花点时间,那么如何利用Cygwin实现编译FFmpeg呢?

一、Cygwin安装与配置

Cygwin的安装与配置还是相对比较简单的一个过程。

首先需要去Cygwin官网下载安装包,根据自己电脑系统选择32位还是64位。

图片描述

我这里以64位为例,setup-x86_64.exe,双击下载好的安装包,如下图所示:

图片描述

图片描述

三种安装模式:
①Install from Internet,这种模式直接从Internet安装,适合网速较快的情况;
②Download Without Installing,这种模式只从网上下载Cygwin的组件包,但不安装;
③Install from Local Directory,这种模式与上面第二种模式对应,当你的Cygwin组件包已经下载到本地,则可以使用此模式从本地安装Cygwin;

图片描述

设置Root路径,我这里放在E:/FFmpeg/cygwin64目录下。

图片描述

设置组件包路径,我这里放在E:/FFmpeg/Local目录下。

图片描述

这一步是选择连接的方式,选择你的连接方式,然后点击下一步。

①Use System Proxy Settings 使用系统的代理设置;
②Direct Connection 一般多数用户都是这种直接连接的网络,所以都是直接使用默认设置即可;
③Use HTTP/FTP Proxy 使用HTTP或FTP类型的代理。如果有需要,自己选择此项后,设置对应的代理地址和端口,即可;

图片描述

图片描述

选择下载站点:

不同的镜像存放了不同的包,为了获得最快的下载速度,可以添加网易开源镜像http://mirrors.163.com/cygwin/ 或者 阿里云镜像http://mirrors.aliyun.com/cygwin/。

图片描述

图片描述

选择需要下载安装的组件包:

此处,对于安装Cygwin来说,就是安装各种各样的模块而已。最核心的,记住一定要安装Devel这个部分的模块,其中包含了各种开发所用到的工具或模块。

如果是编译FFmpeg的话主要下载以下几个组件包:

01. gcc
02. g++
03. make
04. cmake
05. automake
06. gdb
07. nasm
08. yasm
09. wget
10. git
11. tar
12. bzip2
13. gawk

图片描述

图片描述

图片描述

图片描述

图片描述

图片描述

图片描述

图片描述

图片描述

图片描述

图片描述

确认改变,进行安装。

图片描述

图片描述

安装完成,创建桌面快捷方式。

到这儿基本上Cygwin算是完全安装完成了,可以通过以下方式进行验证是否完成安装。

找到安装目录下Cygwin.bat文件,即E:\FFmpeg\cygwin64\Cygwin.bat。或者找到桌面上Cygwin的快捷方式,点击运行,输入一下内容:

cygcheck -c cygwin

Enter键运行:

图片描述

验证gcc组件是否安装成功:

图片描述

验证g++组件是否安装成功:

图片描述

最后分享一下这几个安装包的地址(如果你嫌弃官网下载太慢的话):
链接: https://pan.baidu.com/s/17BrGFAjjEz_EJ5c6Q8arcQ 提取码: h1jq

二、编译FFmpeg

在编译FFmpeg之前,也有人推荐安装apt-cyg。

虽然我们上面安装好了 Cygwin,但还是很不方便,为什么呢?主要是因为 Cygwin目前设计的还不是很人性化。如果我们安装好Cygwin后,如果缺少了某个包想安装的话就特别麻烦。还需要重新安装 Cygwin才能解决,为了更加方便解决这一问题,所以推荐apt-cyg。

apt-cyg是一个很好用的开源工具。它与 Ubuntu系统中的 apt一样特别好用,而且使用的方式与 apt也是一个样子的。

安装apt-cyg

apt-cyg就是一个脚本。我们只需要将这个脚本下载下来就OK了。可以通过wget来完成,执行命令如下:

apt-cyg Github地址

wget -c https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg

install apt-cyg /bin

当然如果你已经将apt-cyg下载到本地,则可以直接执行install apt-cyg /bin命令。例如:我已经将apt-cyg下载到E:\FFmpeg目录下载,执行如下图所示。

图片描述

也可以去配置apt-cyg的镜像源:

apt-cyg mirror http://mirrors.163.com/cygwin

以及更新源:

apt-cyg update

安装pkg-config工具

在Windows系统下,一般不会默认安装该工具,所以在Windows下做实验的同学大都会遇到明明已经装了某个库,但仍然找不到该库的情况。其原因就是没有安装 pkg-config这个工具。

首先确认是否已经将 pkg-config工具安装好了。可以执行下面的命令:

pkg-config

如果提示没有安装,则先将该工具安装好,安装命令如下:

apt-cyg install pkg-config

下面再介绍几个常常与FFmpeg一起使用的组件。

编译 yasm(汇编编译器)

很简单,运行Cygwin,依次执行如下命令即可:

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

fdk-aac是用来处理音频AAC的一个开源库。

同样,运行Cygwin,依次执行如下命令即可:

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

安装 lame

lame是用来处理音频mp3的一个开源库。

同样,运行Cygwin,依次执行如下命令即可:

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

安装lame-3.99.5可能会报一些错误,如下:

问题一:

在Cygwin下安装 lame的时候遇到执行 ./configure 失败的情况。如 "error: cannot guess build type; you must sepcify one",对这个问题可以通过下面的步骤来解决:

解决办法:

确认automake当前版本。可执行automake --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就可以成功了。

当然对于lame也可以选择其他版本,例如3.100版:

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

安装 nasm

如果不安装nasm,后面使用到的x264有可能无法正常安装。

NASM全称The Netwide Assembler,是一款基于80x86和x86-64平台的汇编语言编译程序,其设计初衷是为了实现编译器程序跨平台和模块化的特性。

同样,运行Cygwin,依次执行如下命令即可:

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

或者使用nasm-2.13.03版本:

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

x264是用来处理视频H.264的一个开源库。

同样,运行Cygwin,依次执行如下命令即可:

wget https://code.videolan.org/videolan/x264/-/archive/master/x264-master.tar.bz2
bunzip2 x264-master.tar.bz2
tar -vxf x264-master.tar
cd x264-master
./configure --enable-static --enable-shared --disable-asm --disable-avs
make
make install

安装 ffmpeg

最后到本文的重头戏FFmpeg,它的安装也非常简单,运行Cygwin,依次执行如下命令即可:

wget -c https://ffmpeg.org/releases/ffmpeg-4.0.2.tar.bz2
bunzip2 ffmpeg-4.0.2.tar.bz2
tar -vxf ffmpeg-4.0.2.tar
cd ffmpeg-4.0.2
./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

但是FFmpeg在编译过程中,可能存在一些问题,如NOT FOUND fdk-aac,即找不到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即可。

图片描述

这样就完成了FFmpeg的编译,并且将一些开源库插入FFmpeg中。

图片描述

这时候双击ffmpeg.exe或者ffprobe.exe的时候可能会报出,一些dll文件找不到的错误,如下图:

图片描述

对于这种错误处理其实也很简单,只需要在Cygwin\bin目录下,找到cygwin1.dll文件,放入电脑Windows目录下即可。如果遇到其他类似问题也同样以这种方式进行解决。

最后就是使用,有两个方式:第一种配置环境变量。第二种是直接切换到可执行目录,执行相关命令,如:

图片描述

感谢您使用伴职平台,如有侵权,请投诉删除!

全部评价

最新
查看更多评论 加载

猜你喜欢

换一批