由于FFmpeg是基于Linux开发的开源项目,源代码和Windows下最常见的Visual Studio提供的C/C++编译器不兼容,因此它不能使用MSVC++编译,需要在Windows下配置一个类似Linux的编译环境。本文主要记录Windows下FFmpeg编译的过程。

1.资源准备

准备编译过程所需的软件工具和源代码。

(1). MinGW-MSYS Bundle http://sourceforge.net/projects/mingwbundle/

(2). Yasm http://yasm.tortall.net/Download.html

(3). SDL http://www.libsdl.org/download-1.2.php

(4). X264 http://www.videolan.org/developers/x264.html

(5). FFmpeg http://www.ffmpeg.org/download.html

2.软件安装

(1).MinGW+Msys编译环境安装

  一种方法是先安装mingw,再通过网络下载的方法来安装mingw和msys软件。安装好之后,再通过烦琐的配置,来搭建编译环境。另一种直接安装配置好的MinGW+Msys系统。为了降低安装过程的烦琐程度,选择第二种方法,安装MinGW+Msys编译环境。下载MinGW-MSYS Bundle软件后,直接安装程序,配置安装路径,按照软件默认的安装向导,即可把软件安装好。

  安装完成后,需要配置msys.bat,用于启动类似于Linux环境的终端。若安装完成后,安装目标”C:\msys\1.0”下没有msys.bat,则需添加msys.bat文件,参考:https://code.google.com/p/msysgit/source/browse/msys.bat,然后,在msys.bat首行添加命令。

  call "C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/bin/vcvars32.bat"

(2).安装Yasm

下载yasm源码包,解压到E:\ffmpeg1.2\yasm-1.2.0目录。

进行yasm目录,依次执行:

./configure –-prefix=/usr/local/yasm

make

make install

然后通过以下命令导入yasm环境变量。

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

(3).安装SDL

下载SDL的源码包,解压到E:\ffmpeg1.2\SDL-1.12.15目录

进入SDL目录,依次执行

./configure -–prefix=/usr/local/SDL

make

make install

通过以下命令导入SDL环境变量。

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

(4).安装x264

下载X264源代码包,解压到E:\ffmpeg1.2\x264

进入到x264目示,依次执行

./configure  --enable-shared –-disable-asm -–prefix=/usr/local/x264

make

make install

通过以下命令导入x264环境变量。

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”

(5).安装FFmpeg

下载ffmpeg源代码包,解压到E:\ffmpeg1.2\ffmpeg1.2

进入到ffmpeg1.2目录,依次执行

./configure –-enable-shared -–disable-static –-enable-memalign-hack --enable-libx264 --enable-gpl –-prefix=/usr/local/ffmpeg1.

make

make install

安装完成后,可到D:\msys\1.0\local\ffmpeg1.2目录,查看安装结果。

注意:

若需要ffmpeg支持其他视频音频编解码器,只需下载相应源代码,按照以下步骤安装:

配置(./configure)--->编译(make)--->安装(make install)--->导入环境变量(export)。

另外,在编译ffmpeg时,开启相应编解码器的配置即可。

【FFmpeg】Windows下FFmpeg编译的更多相关文章

  1. Windows下FFmpeg快速入门

    本系列文章导航 Windows下FFmpeg快速入门 ffmpeg参数解释 mencoder和ffmpeg参数详解(Java处理视频) Java 生成视频缩略图(ffmpeg) 使用ffmpeg进行视 ...

  2. Windows下FFmpeg高速入门

    本系列文章导航 Windows下FFmpeg高速入门 ffmpeg參数解释 mencoder和ffmpeg參数具体解释(Java处理视频) Java 生成视频缩略图(ffmpeg) 使用ffmpeg进 ...

  3. Windows下FFmpeg快速入门 <第二篇>

    FFmpeg简介 FFmpeg是什么? FFmpeg是用于录制.转换和流化音频和视频的完整解决方案, 包括 libavcodec ,一套领先的音/视频编解码类库.FFmpeg 在Linux上开发,当可 ...

  4. 原创 C++应用程序在Windows下的编译、链接:第一部分 概述

    本文是对C++应用程序在Windows下的编译.链接的深入理解和分析,文章的目录如下: 我们先看第一章概述部分. 1概述 1.1编译工具简介 cl.exe是windows平台下的编译器,link.ex ...

  5. C++应用程序在Windows下的编译、链接(一)概述

    C++应用程序在Windows下的编译.链接(一)概述 本文是对C++应用程序在Windows下的编译.链接的深入理解和分析,文章的目录如下: 我们先看第一章概述部分. 1概述 1.1编译工具简介 c ...

  6. ACE在windows下的编译及配置(VS2010)

    ACE在windows下的编译及配置(VS2010) 分类:             -[小西南]-              2013-08-06 16:17     2354人阅读     评论( ...

  7. [转]QGis2.9在windows下的编译以及二次开发包下载

    今天心血来潮,将QGis在github上的代码更新后,又编译了一下.留意到源代码包里面的INSTALL文件有更新,于是本次编译完全基于官方的编译说明.编译过程非常顺利,除了在CMake的第一次conf ...

  8. windows下rabbitmq-c编译(带openssl、无需MinGW)

    因为项目原因,需要使用到rabbitmq的c客户端库.首先,参见上一篇windows下openssl编译,如果已经使用cmake编译过了,则先delete cache(File-Delete Cach ...

  9. Windows下PythonQt编译(vs2015+Qt5.11.2+PythonQt 3.2)

    后记: 由于自己low,没有下载罪行的python3.2导致编译上遇到种种问题,后文可以参考,建议看: <Windows7 VS2015 下编译 PythonQt3.2> https:// ...

随机推荐

  1. 常用 sql

    一. sql 多个字段拼接 mysql:     1. concat函数  如果连接串中存在NULL,则返回结果为NULL:        例如: select concat('1','2','3') ...

  2. java 面向对象

    Java语言是纯粹的面向对象的程序设计语言,这主要表现为Java完全支持面向对象的三种基本特征:继承.封装和多态.Java语言完全以对象为中心,Java程序的最小程序单位是类,整个Java程序由一个一 ...

  3. ViewPager 的页面重置问题

    当我们使用ViewPager控件时,假设我们的ViewPager有三页,当我们第一次启动ViewPager显示第一页的时候,ViewPager会预加载第二页,这样当我们向第二页滑动的时候就可以看见第二 ...

  4. KendoUI系列:ComboBox

    1.基本使用 1>.创建Input <input id="color" placeholder="Select Color..." /> &l ...

  5. PHP变量在内存中的存储方式

    原文:http://www.phppan.com/tag/refcount/ 每门计算机语言都需要一些容器来保存变量数据.在一些语言当中,变量都有特定的类型,如字符串,数组,对象等等.比如C和Pasc ...

  6. 总结整理 -- 爬虫技术(C#版)

    爬虫技术学习总结 爬虫技术 -- 基础学习(一)HTML规范化(附特殊字符编码表) 爬虫技术 -- 基本学习(二)爬虫基本认知 爬虫技术 -- 基础学习(三)理解URL和URI的联系与区别 爬虫技术 ...

  7. [转载]TFS与Project、Excel同步

    我们还可以使用Microsoft Excel和Microsoft Project来连接到TFS,方法如下: 通过Microsoft Excel连接到TFS,在安装了Team Explorer后,Mic ...

  8. [转载]PhotoShop性能优化

    现在随着Photoshop版本越来越高功能也越来越强大,而往往强大的功能需要电脑有好的配置运行,比如HDR.图像合成或者3D和视频等类似的功能,还有处理比较大尺寸的图像时,如果电脑配置不够强往往非常卡 ...

  9. 初探JavaScript(三)——JS带我"碰壁"带我飞

    已经写了两篇关于小白的JavaScript之行,不可否认,每一种语言都有其精华与糟粕之处,来不及细细体味其精华奥妙,也没法对其评头论足,只能先了解,后深入.到目前为止已经看完<JavaScrip ...

  10. installshield生成时提示6003错误的一种可能

    因为项目需要,2014年写过的一个老项目需要重新打包.开发电脑换了,原来开发的系统是win7,现在已经升到了win10.而且原来使用installshield limited 2013开发的打包项目已 ...