FFMPEG Windows 下编译

        最近有个项目需要用到传屏,看了一些文章后,决定使用ffmpeg库实现功能(录屏,H264 解编码),在编译FFMPEG时遇到了很多坑,还好都一 一化解,最后成功的在Windows 下编译出支持X264编码的ffmpeg库,将经验总结如下:


1. mingw windows安装,目前的版本自动在线安装容易失败,会对后面的编译造成影响,如果自动安装失败时,建议从“离线安装”突破。


 2. yasm、sdl、x264库的安装,参照“https://www.cnblogs.com/dwdxdy/p/3625766.html”这篇文章可实现顺利编译和安装。


 3. ffmpeg 编译时,如果使用上面文章的命令会出现错误,下面按错误进行说明:


      错误1: "libx264 Not Found"错误,此时是因为找不到libx264的文件,导致报错。

      方法:重新打开mingw命令行


      命令更改为下面:

export PATH="$PATH:/usr/local/yasm/bin"

export PATH="$PATH:/usr/local/SDL/bin"
export C_INCLUDE_PATH="$C_INCLUDE_PATH:/usr/local/SDL/include/SDL2"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/SDL/lib"


export PATH="$PATH:/usr/local/x264/bin"
export C_INCLUDE_PATH="$C_INCLUDE_PATH:/usr/local/x264/include"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/x264/lib"

./configure --enable-shared --disable-static --extra-cflags=-I/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib --enable-libx264 --enable-gpl --prefix=/usr/local/ffmpeg4.0

进行上面操作后,如果仍提示相同错误,此时可能是x264编译安装的dll文件名上有版本号,将版本号去掉,重新试一下。

 

 

 错误2:make 命令时“missing separator.Stop.”错误。

            参考文章https://blog.csdn.net/hutianyou123/article/details/77054091 解决,内容如下:

当我们从gitlab或github中克隆ffmpeg, 配置完成后执行make时,会遇到下面的错误:

common.mak:159: *** missing separator.  Stop.
1
那是因为本地git配置中的一个叫做autocrlf的参数打开了,解决方法: 
打开git bash, 执行:

git config --global core.autocrlf false
1
接下来,删除当前的ffmpeg文件夹,使用命令:

git rm --cached -r ffmpeg/
1
如果本地git仓库没有修改,直接删除本地的ffmpeg文件夹即可。

rm -rf ffmpeg/
1
最后,从gitlab中获取ffmpeg镜像,比如:

git clone git@gitlab/ffmpeg  (此处是比如,之前怎么下载的,还怎么下)
1
再重新执行命令,错误就消失了。

./configure --enable-shared
make && make install

 

 

错误3:undeclared 'ERROR_NOT_ENOUGH_MEMORY'错误

参考文章https://stackoverflow.com/questions/49572350/a-strange-error-undeclared-error-not-enough-memory-occurred-while-i-compling解决,内容如下:

Add winerror.h header in your os_support.h will solve the problem.//注这两个头文件都在mingw安装路径中,可以使用搜索确定

至此,make、make install 命令应该可以成功运行,生成的编译文件就在local文件夹下。

 

 

4. 生成的库文件,没有lib文件,而是def文件。vs开发,需要将def文件生成lib文件,需要参考文章:

https://blog.csdn.net/leixiaohua1020/article/details/42069383,关键内容如下

使用VC自带的lib生成工具“LIB”,生成“libx264.lib”文件。使用“Visual Studio command prompt”,切换至x264源代码目录,输入以下命令:
LIB /DEF:libx264.def

然后根据上面的方法,生成自己需要的lib文件,至此ffmpeg windows开发用的库编译完成。

注:ffmpeg windows 下使用的库,官网有编译好的,个人建议最好使用自己编译的库。

 

你可能感兴趣的:(ffmpeg)