FFmpegWindows环境配置
在Windows环境下编译FFmpeg需要搭建类Linux环境,可以使用的类Linux有两种,分别是MinGW和Cygwin,FFmpeg在Windows下环境配置相比较Linux比较繁琐。
MinGW环境配置比较复杂,很多软件需要手动安装配置,并且配置好环境后编译完FFmpeg完成时没有ffserver可执行文件。根据网上资料和建议,编译ffserver需要的依赖很多,并且需要脚本,相对繁琐,选择Cygwin环境就会简单很多,所以下文描述的是用Cygwin环境编译FFmpeg。
1 Cygwin安装
安装Cygwin首先去官网https://cygwin.com/index.html下载安转器setup-x86.exe或setup-x86_64.exe,具体根据自己的系统位数决定,剩下的步骤就是运行安装器,根据安装器的提示安装Cygwin环境。
Cygwin安装需要注意两个点:镜像的选择和安装步骤。
1.1 镜像源选择
安转器其中一个步骤是选择下载软件的镜像,最好选国内镜像源,原因是速度快,一般选择163,当下载或安装失败时可以换其他源(比如http://mirrors.kernel.org)。
安装器默认是没有163镜像的,需要手动添加,在镜像选择界面添加163镜像,地址是http://mirrors.163.com/cygwin/,如下图1.1.1所示:
图1.1.1 Cygwin添加镜像
然后点击“Add”按钮即可,此时163镜像源就在列表中了,就可以选择并点击“下一步”使用,添加后如下图1.1.2所示:
图1.1.2 使用163镜像源
1.2 Cygwin安装及软件安转
根据本人安装经验,第一次安装不要自行选择任何软件安装,直接一直下一步,安转完成后只有类Linux环境,即只有基本的Linux命令,没有gcc和make等命令,这些软件等以后再安装,首先保证类Linux环境安装完成。第一次安装不要自行选择任何软件安装即在第一次安装Cygwin时,在选在安装软件界面时不要选择,用默认配置,如下图1.2.1所示,直接下一步即可。
1.2.1 选择安转软件界面
安装完Linux环境后就熟悉了Cygwin安装器的使用步骤,软件安转就简单了,只需要在选择安转软件界面(图1.2.1)搜索需要安装的软件名,如gcc安装,如下图1.2.2所示:
图1.2.2 搜索软件(GCC)界面
此时就会出现搜索到的软件,需要安装时点击对应软件前的符号,如果不知道搜索到的软件的相互依赖,可以点击最上边的“ALL”后的符号,使“ALL”后的“Default”变为“Install”全部安装,此时可能安装一些不需要的软件包,需要的时间可能会很长(与网速有关),如下图1.2.3所示:
图1.2.3 GCC安装
配置友好环境,修改/etc/profile文件,添加:
alias ls="ls --color=tty --show-control-chars" alias ll="ls -l" alias la="ls -a" |
2 FFmpeg编译
搭建好类Linux环境后实际上就可以编译FFmpeg了,只是此时编译的FFmpeg可能没有ffplay或不能使用ffplay,因为缺少一些依赖库,比如SDL库,要完整的编译FFmpeg,需要安装这些依赖,安装方法与安装GCC一样,参考1.2节,此处不再赘述。
此处编译的FFmpeg版本是3.1,可以在官网或Git上下载。
安装Cygwin后会在桌面或开始菜单生成CygwinTerminal图标,Cygwin Terminal类似Linux下的Shell,下文中的指令均在Cygwin Terminal中执行。
2.1 FFmpeg编译
编译FFmpeg只需要两步:configure和make。编译FFmpeg步骤在官网及网络上都有很多资料,很详细,此处主要说明遇到的问题及处理方法。
在FFmpeg源码目录下执行如下命令:
$ ./configure --disable-yasm --enable-nonfree --enable-filters --enable-avresample |
此时如果出错,根据提示解决问题,比如下面的一些问题。
缺少SDL库,此时编译的文件中没有ffplay,如下图2.1.1所示,此时需要安装SDL,方法见1.2节。
图2.1.1 缺少SDL库信息
缺少pkg-config软件,如下图2.1.2所示,此时可以用1.2节的方法安装,也可以忽略,因为在安装SDL库时会自动安装pkg-config,如果最后还提示再单独安装。如果SDL已经安装可能就不会有此警告。
图2.1.2 缺少pkg-config警告
Configure执行完后执行make指令:
$ make |
等待执行结束,查看编译的可执行文件。
2.2 安装FFmpeg
如果上一步2.1节完成,可以执行以下指令安装FFmpeg到系统中(类Linux系统中,非Windows系统)。
$ make install |
此时由于configure没有指定安装目录,所以FFmpeg安装到/usr/local目录下,如果为了系统安全,可在configure通过--prefix选项指定安装目录,configure指令更新为:
$ ./configure --prefix=/home/0001/install/bin --disable-yasm --enable-nonfree --enable-filters --enable-avresample |
此时需要重新make,再执行make install,此时FFmpeg将安装在/home/0001/install/bin目录,此目录可自行指定,然后将该目录添加到系统路径中,如修改/etc/profile文件,添加:
export PATH=$PATH:${HOME}/install/bin |