FFMpeg-11、windows下编译ffmpeg(mscv的失败)

一、介绍

1、Auto工具

在这里插入图片描述

2、MSYS2

因为Autoconf是GNU下的工具,这个其实就是类似于cmake的,在cmake流行之前autoconf是应用十分广泛的,一些旧版本的库都是需要运行AUTOconf脚本的,到那时他是只能在linux环境下进行使用。因此需要在windows下进行编译那么需要有在windows下模拟或者中转成linux的工具就是MSYS2工具。
他就是一个windows系统下模拟linux的中转器,意思就是可以在将一些linux的命令和文件系统在windows下也可以使用,例如make命令,其实MSYS2就是将make命令的源码拿过来进行修改成可以在windows下运行的命令从而支持windows系统这样的原理,最终的效果于在linux下是一样的,但是实践的确是在windows下编译的,其他命令和文件系统也都是这样的,因此MSYS2不是虚拟机而只是一个中介器。

3、x264

ffmpeg下是没有x264源码的,但是编译ffmpeg是需要x264的,因此需单独下载。

二、安装

一般版本就是基于windows的微软的vc编译器,还有两个是MinGW的基于linuxgcc进行windows封装的32,64版本的编译器
MSYS2是有自己的软件源可以直接通过命令进行下载的;pacman -S命令

x264编译成静态库,因为这是要链接到ffmpeg库中的写的是路径,如果路径中既有动态库又有静态库那么就会默认选择动态库的。

相关链接和步骤

msys2官网 https://www.msys2.org/
ffmpeg  官网 http://ffmpeg.org/download.html
x264官网 https://www.videolan.org/developers/x264.html
SDL 官网 http://www.libsdl.org/download-2.0.php
ffmpegwindows下编译好的链接 但是我要找支持mp3编码的这个不支持 https://github.com/ShiftMediaProject/FFmpeg/releases/tag/4.3.r97930
**夏槽俊老师ffmpeg中文官网下载的目前需要的;http://www.ffmpeg.club/ffmpeg_download.html**
更新msys2的数据源地址 https://blog.csdn.net/happy_fb/article/details/108860829 重新打开
修改msys2启动的脚本 msys2_shell.cmd 加入call "D:\apps\VS\VC\bin\vcvars32.bat" 打开注释set MSYS2_PATH_TYPE=inherit  表示MSYS2可以是由winddows下的环境变量  重新打开
安装 pacman -S yasm make pkg-config diffutils
安装编译工具链mingw  pacman -S mingw-w64-x86_64-toolchain
安装mingw的一些外围工具 
pacman -S base-devel   
pacman -S nasm

编译windows下的x264的lib静态库

basepath=$(cd 'dirname $0'; pwd)

echo ${basepath}

#cd ${basepath}/x264-master
#pwd
#CC=cl ./configure --prefix=${basepath}/x264_VscInstall --enable-static
#make -j8
#make install

需要使用vs命令窗口打开msys2_shell.cmd 这个窗口并且在./configure之前指定CC=cl ;cl编译器(msvc)
https://blog.csdn.net/qq_26973089/article/details/82669348?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0.base&spm=1001.2101.3001.4242
在这里插入图片描述

libmp3lame下载配置
下载链接;https://sourceforge.net/projects/lame/files/lame/3.99/
不过msvc的配置不是配置configure的而是于SDL配置一样有sln工程进行配置的
在这里插入图片描述

sdl安装配置
下载链接 http://www.libsdl.org/download-2.0.php
不过msvc的配置不是配置configure的而是于SDL配置一样有sln工程进行配置的,
打开VisualC下的sln即可 编译SDL2: 动态库(.dll)、SDL2main: 静态库库(.lib)

freetype库配置编译
下载链接 https://download.savannah.gnu.org/releases/freetype/?C=N&O=A
不过msvc的配置不是配置configure的而是于SDL配置一样有sln工程进行配置的,

libmp3lame 和 sdl库是一样的 关于vs编译是提供了sln工程的打开进行编译就可以了,
而不是需要msys2进行模拟配置操作而x264就需要

最后就是进行ffmpeg的配置,先将上面编译好的lib库和头文件放到incude和lib下

编译ffmpeg
./configure --prefix=${basepath}/ffmpeg_VscInstall --toolchain=msvc --enable-yasm --enable-asm --enable-gpl --enable-libx264 \
--enable-static --enable-shared \
--enable-libfreetype --enable-libfontconfig --enable-libfribidi \
--enable-version3 --enable-sdl --enable-libmp3lame\
--extra-cflags=-I${basepath}/include --extra-ldflags=-LIBPATH:${basepath}/lib

报错 提示lib库找不到
在这里插入图片描述

报错原因:
是因为需要把msys2\usr\bin这个目录配置到环境变量中去,但是make的时候有一大推错误。

查看编译的ffmpeg支持的编解码器
在ffmpeg安装包目录下 ,通过./configure --list-encoders 和 ./configure --list-decoders 命令可以看到,ffmpeg只支持mp3解码,但是不支持mp3编码。

编译参考链接
Window下编译 64位ffmpeg 引入libx264及libmp3lame编码库;https://www.cnblogs.com/wanggang123/p/12174126.html
第三方依赖库 freetype 的安装;https://positive.blog.csdn.net/article/details/114579754
windows msys64 ffmpeg 编译libmp3lame错误解决思路;https://blog.csdn.net/passionkk/article/details/108263225
编译安装FFmpeg 要支持xvid、x264、mp3、ogg、amr、faac;https://www.cnblogs.com/canphp/p/4475418.html
ffmpeg支持MP3编码的方法;https://blog.csdn.net/xiaohuima_dong/article/details/110817086
window下通过msys2编译libx264.lib;https://blog.csdn.net/lifei092/article/details/71687049?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.base
SDL2库源代码在Visual Studio 2019编译 https://www.cnblogs.com/bluebeecoder/p/13737491.html

相关资源上传csdn资源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值