大安市建设局网站,长沙哪里做网站好,工信部查询网站备案,茂名网站制作维护在使用ffmpeg过程当中#xff0c;ffmpeg在Linux(包括mac,android)编译非常容易,直接configure,make即可#xff0c;Android需要交叉编译,在windows就比较麻烦#xff0c;庆幸的是ffmpeg官方提供已编译好Windows版本的二进制库#xff08;http://ffmpeg.org/download.html#b…在使用ffmpeg过程当中ffmpeg在Linux(包括mac,android)编译非常容易,直接configure,make即可Android需要交叉编译,在windows就比较麻烦庆幸的是ffmpeg官方提供已编译好Windows版本的二进制库http://ffmpeg.org/download.html#build-windows通常情况下直接拿来使用。但如果要对ffmepg就行二次开发功能定制定制等就需要自己动手编译了。本文简单介绍ffmpeg的Windows版本编译的基本方案。一、基本原理ffmpeg项目来自linux项目所以在类Linux中编译非常容易unix,macandroid),只需要configure,make即可当然android需要在Linux宿主机上交叉编译由于windows和Linux 文件系统和环境组织结构不一样无法执行shell脚本和make命令。所以在Windows上要模拟一个Linux环境。使用Linux风格编译Windows版本程序有主要有3种方案1cygwin方案 cygwin就是一个windows上类unix环境可以在cygwin使用Linux的思路编译Windows 程序。cygwin安装使用了 setup-x86_64.exe安装器镜像源可以选择163网易的地址这样下载包比从国外源快以前安装过一次cygwin,不知如何选包全部安装了结果占用5个G。现在的cywin默认是最小化安装但并不包括Gcc如果要使用gcc,g,make,gdb工具是需要选择这些包的 gcc-core、gcc-g、make、gdb、binutils五个包都在Category下的Devel下 。该方法优点完整Linux模拟环境完全可以像在Linux发行版一样容易编译。缺点是程序在Windows上运行需要依赖cygwin核心库。类似于QT程序依赖Qt核心库一样。当然cygwin只是一个Windows上模拟的Linux环境我们可以将他当做Linux环境使用交叉编译器做嵌入式开发。嵌入式开发通常都是交叉编译。通常是在Linux发行版上编译嵌入式程序当然不想安装一个独立Linux系统也可以在Windows上安装cygwin开发嵌入式程序早期很多做嵌入式就是用这个方式。见到早期更直接在Windows上编译嵌入式程序当然需要Windows版本的工具链Windows版本的make程序结合Windows的bat程序。 2mysys2minGW方案 Mysys2是一个cygwin的裁剪版本是一个精简的类unix环境minGW只是一个Windows的编译工具链。该方法优点就是使用minGW交叉编译出来的程序可以直接跑在Windows上不需要依赖第三方库当然cygwin也可以安装minGW工具链交叉编译ffmpeg直接跑在Windows上。3mysys2MSVC方案mysys2只是精简的Linux环境我们也可以使用微软的MSVC编译ffmpeg,编译的cpp库能直接被Visual studio调用而不需要按照C语言风格导出符号表。4Linux环境minGW方案该方案本质就是Linux上使用minGW 工具链交叉编译出Windows程序无论是ubuntu,centos,还是国产Linux只要能下载到minGW工具链就可以采用该方案不过建议还是ubuntu,ubuntu上源相对丰富更容易下载到最新版本的minGW工具链。二、总结以上方法普遍适应于Linux 风格程序移植到Windows上如ffmpeg,vlc,x264,openssl等。后面将针对Windows平台编译ffmpeg进行实战演练。更多更新信息请关注公众号AV_Chat