在Windows7/10上通过VS2013编译FFmpeg 4.1.3源码操作步骤
多年前在https://blog.csdn.net/fengbingchun/article/details/40951403 中对FFmpeg在windows下的编译过程做过说明,那时FFmpeg版本用的2.4.3, VS是2010,现在FFmpeg最新稳定版为4.1.3,通过VS2013进行编译,较之前有了些不同,这里再次介绍下:
一、编译x86库:
1. 从https://osdn.net/projects/mingw/releases/ 下载mingw-get-setup.exe,更新日期为2017年9月6日;点击右键以管理员身份安装到C:/MinGW,安装的Package有mingw-developer-toolkit-bin, mingw32-base-bin, mingw32-gcc-g++-bin, msys-base-bin;
2. 从http://yasm.tortall.net/Download.html 下载yasm-1.3.0-win64.exe,注意一定不要下载vsyasm-1.3.0-win64.zip,否则后面make的时候会有error,并拷贝到C:\MinGW\msys\1.0\bin并重命名为yasm.exe;
3. 下载pkg-config,处理” WARNING: pkg-config not found, library detection may fail.”,从http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/ 下载pkg-config_0.26-1_win32.zip,解压缩并将pkg-config.exe拷贝到C:\MinGW\bin目录下;从http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.28/ 下载pkg-config的依赖库glib_2.28.8-1_win32.zip,解压缩并将libglib-2.0-0.dll拷贝到C:\MinGW\bin目录下;从http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/ 下载gettext-runtime_0.18.1.1-2_win32.zip,解压缩并将intl.dll拷贝到C:\MinGW\bin目录下;注意:此步可省略;
4. 将目录C:\MinGW\bin和C:\MinGW\msys\1.0\bin添加到系统环境变量PATH中;
5. 将C:\MinGW\msys\1.0下的msys.bat复制一份并改名为msys_vs2013.bat,并在msys_vs2013.bat的开头加上一句” call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat"”;
6. 重命名C:\MinGW\msys\1.0\bin下的link.exe为link_msys.exe,这是为了防止此link.exe与vs2013中的link.exe发生冲突,编译完FFmpeg后可再次修改回来;
7. 从https://github.com/FFmpeg/FFmpeg/releases 下载FFmpeg-n4.1.3.zip并解压缩到E:\FFmpeg-n4.1.3;
8. Fix error C2440: libavcodec/dxva2.c<524>, “初始化”:无法从”GUID”转换为”unsigned long”:将libavcodec/dxva2.c的第519行由.DecodeProfile = decoder_guid,调整为.DecodeProfile = decoder_guid.Data1,;
9. 双击运行msys_vs2013.bat,使用cd命令将其定位到E:\FFmpeg-n4.1.3\build_x86_release目录下,此build_x86_release目录需要自己手动创建,执行如下命令:
.././configure --prefix=./install --toolchain=msvc
make -j4
make install
二、编译x86_64位库:
1. 如果还没有配置好环境,则需先按照上面编译x86库中的步骤1,2,3,4,6,7,8操作一遍;
2. 将以上第5步中的” call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat"”调整为” call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\vcvars64.bat"”
3. 双击运行msys_vs2013.bat,使用cd命令将其定位到E:\FFmpeg-n4.1.3\build_x86_64_release目录下,此build_x86_64_release目录需要自己手动创建,执行如下命令:
.././configure --prefix=./install --target-os=win64 --arch=x86_64 --toolchain=msvc
make -j4
make install
执行完make install后install目录下会产生4个目录,分别为:bin、include、lib、share:
1. bin目录下有ffmpeg.exe和ffprobe.exe两个文件,通过命令提示符执行:ffmpeg.exe --help结果如下:
2. lib目录下有libavcodec.a, libavdevice.a, libavfilter.a, libavformat.a, libavutil.a, libswresample.a, libswscale.a七个静态库;
3. include目录下包含了对应上面七个静态库的头文件;
4. share目录下有一些samples。
三、说明:
1. configure文件中的编译选项较多,可通过执行:$ .././configure --help > help.txt 来查看编译选项说明;
2. 默认编译的是静态库,若编译动态库,可增加编译选项参数--enable-shared --disable-static;
3. 默认编译的是release库,若编译debug库,可增加编译选项参数--enable-debug;
4. 如果不想自己通过源码编译,也可以直接从https://ffmpeg.zeranoe.com/builds/# 下载现成的库和执行文件。
GitHub: https://github.com/fengbingchun/OpenCV_Test
在Windows7/10上通过VS2013编译FFmpeg 4.1.3源码操作步骤相关推荐
- Ubuntu14.04上编译指定版本的protobuf源码操作步骤
Google Protobuf的介绍可以参考 http://blog.csdn.net/fengbingchun/article/details/49977903 ,这里介绍在Ubuntu14.04上 ...
- 在Windows和Linux上编译gRPC源码操作步骤(C++)
gRPC最新发布版本为v1.23.0,下面以此版本为例说明在Windows和Linux下编译过程. Windows7/10 vs2103编译gRPC源码操作步骤: 1. 需要本机已安装Git.CMak ...
- Windows10上使用VS2017编译MXNet源码操作步骤(C++)
MXNet是一种开源的深度学习框架,核心代码是由C++实现.MXNet官网推荐使用VS2015或VS2017编译,因为源码中使用了一些C++14的特性,VS2013是不支持的.这里通过VS2017编译 ...
- 海思3559A上编译Valgrind源码操作步骤
注:按照以下步骤可以在海思板子上正常编译valgrind源码并生成valgrind可执行文件,但可能还不能在海思板子上正常使用. 1. 从http://valgrind.org/downloads/? ...
- 海思3559A上编译OpenCV4.1.0源码操作步骤
1. 从https://github.com/opencv/opencv/releases 下载opencv源码opencv-4.1.0.zip并解压缩: 2. 修改最顶层的CMakeLists.tx ...
- Ubuntu 14.04上使用CMake编译MXNet源码操作步骤(Python)
MXNet源码版本号为1.3.0,其它依赖库的版本号可参考:https://blog.csdn.net/fengbingchun/article/details/84997490 . 为了通过编译源码 ...
- Ubuntu 14.04上使用CMake编译MXNet源码操作步骤(C++)
MXNet源码版本号为1.3.0,其它依赖库的版本号可参考:https://blog.csdn.net/fengbingchun/article/details/84997490 build.sh脚本 ...
- Windows10上编译MXNet源码操作步骤(Python)
1. 按照https://blog.csdn.net/fengbingchun/article/details/84997490 中操作步骤首先在Windows上通过VS2017编译MXNet源代码 ...
- 在Ubuntu14.04 64位上编译CMake源码操作步骤
在Ubuntu上通过apt-get install安装CMake并不是最新版的,这里记录下在Ubuntu上通过源码安装CMake的操作步骤: 1. 卸载旧版CMake,执行以下命令: a ...
最新文章
- linux7安装pgsql数据库,在CentOS7系统上安装和配置PostgreSQL
- 05--MySQL自学教程:DDL(Data Definition Language:数据库定义语言)操作数据库中的表(二)
- 13_短信发送器_问题说明
- Matplotlib中的“ plt”和“ ax”到底是什么?
- 漫画:给女朋友介绍什么是 “元宇宙” ?
- [转]解决微信及360浏览器无法读取本地图片问题
- sort ascend matlab,MATLAB sort函数用法
- Java NIO网络编程之Selector
- 如何关闭OSX 10.11 SIP (System Integrity Protection)
- Linux IPC(Inter-Process Communication,进程间通信)之管道学习
- PCIe/PCI插槽不够用怎么办
- 国外硕博论文下载网址资源
- 熊啸锋:在线生成个人网站,如何建立个人网站教程
- 服务器虚拟化 魔力象限,Gartner:VMware成虚拟化魔力象限领导者
- 百度提前批-面试凉凉之-梯度下降
- 真相(truth)最可怕的敌人不是谎言(lie),而是神话(myth)---《唐浩明点评曾国藩家书》书评
- 解决Webstorm通过Chrome无法调用JB插件调试的问题
- 一起看看让互联网着火的“Log4j”
- [RK3288][Android6.0] WiFi的dts配置说明(AP6335)
- 人类对无穷小认识的进步
热门文章
- C++:名字空间的使用
- c++中static_cast用法与uchar/char的区别
- uniapp 分享缩略图过大怎么办_女性胸外扩怎么办|3步带你完成改变
- tftp:timeout问题解决 - 从Windows传输文件到开发板
- android tombstone发生过程,Android Tombstone 分析
- 如何理解numpy.nan_to_num
- Squid故障与解决方法汇总
- perf + 火焰图分析程序性能
- C++ STL: 基本六大部件概览 及 各个容器使用方式和底层实现概览
- 十大排序算法 导图总结