在windows下编译FFMPEG-最新2009版本

转】在windows下编译FFMPEG-最新2009版本
2010-11-17 18:50
大家可以看到,此篇之前有很多个版本的“在windows下编译FFMPEG”,那些都是我在网上搜罗来的,在看了无数篇那些过期的、有借鉴价值的文章后,我终于成功在windows下编译出了FFMPEG。

       不得不说,前人的经验还是很重要的,但是随着时间的推移,很多东西都改变了,所以,现在把最新的编译方法记下,以便后人借鉴。

 

1.首先还是要先安装MSYS(注意,要先安装MSYS,后安装MINGW)

http://sourceforge.net/projects/mingw/files/这里下载一个最新版的exe文件就可以了,以前的可能要自己去下载一些乱七八糟的不知道是什么的,现在只需要到 MSYS base System 文件夹下下载一个最新的exe安装文件,这个是minimum的安装文件。

我下载的是MSYS-1.0.11.exe,我安装在D盘。

 

2.安装MINGW

(这里普及一下常识,其实MINGW里面包含有GCC的编译器,但是我只安装了MSYS,没有安装MINGW的时候,编译的时候就会提示出错,因为没有GCC编译器,所以,必须安装MINGW就是这个原因)

网址与步骤1的一样,然后到Automated MinGW Installer这个文件夹下面,下载最新的MINGW安装文件,这个也是最小安装文件。

PS:我不得不感叹,随着科技的发展,真是越来越好了,以前要自己一个一个下,现在是人家都全部打包好,让你直接安装就OK了。

注意:安装MINGW的时候,要将其安装在MSYS的MINGW目录下。例如:当时我的安装目录是D:/msys,然后,进去的话,可以发现,里面有一个MINGW文件夹,但是里面是空的。在安装MINGW的时候,将其指向该目录就可以了,我的是D:/msys/1.0/mingw。

 

3. 整合MSYS和MINGW(此步骤借鉴前人,但稍有修改)

(1)修改 msys.bat:
 用文本编辑器打开D:/msys/1.0/msys.bat,由于打算要用MSVC++链接到FFmpeg的库,
 所以需要有.lib文件才行,这些.lib文件可以使用微软的工具中的lib命令产生,
 所以要预先安装VC++。
 把下面一行加到msys.bat的最前面,把路径替换成机器上vcvars32.bat实际存在的路径,
 比如我的在“D:/Program Files/Microsoft Visual Studio 8/VC/bin”,
 于是就添加:

call "D:/Program Files/Microsoft Visual Studio 8/VC/bin/vcvars32.bat"
(2)系统整合:
将D:/msys/1.0/etc/文件夹下的fstab.sample文件改名,改成fstab,然后,用文本编辑器打开fstab.
把这行:C:/mingw /mingw 改为:d:/msys/1.0/mingw /mingw32
在这个步骤中,大家要注意,并不是每个人的都是d:/msys/1.0/mingw /mingw32,也有可能是d:/msys/1.0/mingw /mingw,这个与版本有关,大家注意看自己的就OK了。
完成以上步骤,MSys+MinGW系统就配置完成了。
4.编译(以下均摘自本博客中的版本三,不得不说版本三真的是挺好的了,编译这个不仅有纯FFMPEG的编译,还有libavcodec的dll动态链接库和libavcodec的lib静态库的编译,太牛了~!!!
首先通过MSys安装目录下的msys.bat启动MSys,这时会出现一个命令行窗口,
它是一个运行着 bash 的rxvt程序。
这是一个在Windows上运行并且就像是在使用一个真正的Linux shell。
不过使用这个shell时需要注意:
1. 目录名使用左斜杠来分割,而非Windows所使用的右斜杠;
(比如"D:/ffmpeg"而非D:/ffmpeg")。

2. 盘符(例如"C:/")可以从根目录处访问(像这样"/C/");
3. 文件名或目录名中如果带有空格,必须用双引号括起(例如"/C/Program Files")。
  下面切换到存放FFmpeg源代码的目录,方法是输入:cd /D/ffmpeg
  接下来要配置FFmpeg,这里先输入:./configure --enable-memalign-hack
  --enable-memalign-hack选项是FFmpeg在Windows上编译成功所必须指定的,
  待配置完成后,将回到命令提示符。
  如果没有错误的话,就可以"make"具有基本功能的FFmpeg了,在提示符后输入:make
  编译的过程将持续很长时间。如果一切正常,结束后将返回提示符。
  这时程序已经编译好了,在存放FFmpeg源代码的目录下可以找到ffmpeg.exe这个文件。
  如果希望把FFmpeg安装到系统中,可以执行安装步骤:"make install",
  这将会复制所有生成的重要文件到MSys的local文件夹下。

如果希望使用FFmpeg包含的libavcodec库开发多媒体文件处理程序,还需要编译libavcodec的dll动态链接库,编译过程和上述过程稍有差别,如下所述:
 首先切换到FFmpeg的源代码目录,
 在开始编译前先使用"make distclean"清理上一次留下的中间文件(慎用!!之前的作者是说要用这个,我用完之后,电脑就崩溃了,重启才OK,所以,大家慎用啊~!)
 然后向configure脚本多传递两个参数:
 ./configure --enable-shared --disable-static --enable-memalign-hack
 如果没有错误的话,在提示符后输入:make

libavcodec的lib静态库,编译过程和上述过程稍有差别,如下所述:
./configure --enable-static --disable-shared --enable-memalign-hack
如果没有错误的话,在提示符后输入:make
     
在FFmpeg目录下有三个子目录名字分别为:libavutil、libavcodec和libavformat;
如果在前述步骤中成功生成了动/静态链接库,例如我生成的是avcodec-51.lib、
avformat-51.lib 和 avutil-49.lib,MSVC++可以从这些文件中知道dll的导出函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453946.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS7 安装nginx

1、官网下载安装包 官网:http://nginx.org/en/download.html 选择适合Linux的版本,这里选择最新的版本,下载到本地后上传到服务器或者centos下直接wget命令下载。 切换到/usr/local目录,下载软件包 # cd /usr/local # wget htt…

dvwa如何打开_DVWA详细 安装

Wamp就是Windows Apache Mysql PHP集成安装环境,即在window下的apache、php和mysql的服务器软件。PHP扩展、Apache模块,开启/关闭鼠标点点就搞定,再也不用亲自去修改配置文件了,WAMP它会去做。再也不用到处询问php的安装问题了&am…

CentOS7安装OpenFire

下载openfire wget http://download.igniterealtime.org/openfire/openfire-3.9.3-1.i386.rpm安装openfire yum install -y /home/openfire-3.9.3-1.i386.rpm安装运行库 yum install -y glibc.i686添加开启启动 chkconfig openfire on启动openfire服务 systemctlstart openfire…

CentOS 安装 php

大致步骤:下载–解压–编译–安装–配置 php官网: https://www.php.net/releases/ php5.6连接地址 http://hk1.php.net/get/php-5.6.36.tar.gz/from/this/mirror http://hk2.php.net/get/php-5.6.36.tar.gz/from/this/mirror 1.安装php 所依赖的软件 yu…

怎么利用ffmpeg和AviSynth给在windows下面为flv文件加水印

之前一直在找怎么为flv文件加上自己的水印,ffmpeg和vhook是在linux下面支持.在windows下面不支持.所以我就选择用ffmpeg和AviSynth为flv文件加水印.详细步骤如下: 1 首先当然下载ffmpeg和AviSynth了.具体的地址自己google一下就能找到很多.这里就不再详细介绍了. 一般情况ffm…

【Hibernate框架开发之九】Hibernate 性能优化笔记!(遍历、一级/二级/查询/缓存/乐观悲观锁等优化算法)...

1. 循环分页或者循环进行部分读取处理数据的时候,使用 session.clear() ; 2. 对应1N(N1)问题使用如下解决方式: 1): 使用createCriteria进行查询(join fetch) 2):HQL -> joi…

vscode中安装webpack_VSCode下手动构建webpack项目(示例代码)

1.执行npm install nrm -g,安装nrm,此模块主要用于切换npm镜像源,简化手动配置步骤2.执行 nrm ls,可以看到npm源地址列表,当前使用的是默认源,npm https://registry.npmjs.org/3.执行 nrm use taobao&#…

Python html 代码转成 word(docx)

安装 sudo apt install pandoc pip3 install pypandoc示例代码 import pypandochtml """ <h3>This is a title</h3> <p><img src"http://placehold.it/150x150" alt"I go below the image as a caption"></p…

最新ffmpeg编译和用eclipse进行源码调试

最近由于项目需要&#xff0c;必须修改ffmpeg的源码进行修改才能满足项目的需求&#xff0c;但以前我从来没有自己去编译和使用ffmpeg的源代码&#xff0c;一直都是用别人编译好了的sdk&#xff0c;再加上习惯了vs方便的编译环境&#xff0c;要在linux下对如此多的源代码进行编…

Django补充知识点——用户管理

内容概要 1、Form表单2、Ajax3、布局&#xff0c;Django母板4、序列化5、Ajax相关6、分页7、XSS攻击8、CSRF9、CBV、FBV 10、类中用装饰器的两种方法 11、上传文件 12、数据库正向查询、反向查询、多对多查询 13、jQuery对象和DOM对象可以互相转换 14、cookie和session 用户管理…

easypoi导出excel 效率_Spring Boot 入门(十二):报表导出,对比poi、jxl和esayExcel的效率...

关于poi、jxl和esayExcel的介绍自行百度。jxl最多支持03版excel&#xff0c;所以单个sheet页面最多只能导出65536条数据。我直接将excel导入到浏览器并打开&#xff0c;以下统计导出时长指将数据从数据库查询&#xff0c;并写入到excel的过程。不包括打开excel所消耗的时间为了…

Python html 代码转成图片、PDF

一、下载 1、python的imgkit、pdfkit库 pip install imgkit pip install pdfkit 2、wkhtmltopdf工具包 下载地址&#xff1a;https://wkhtmltopdf.org/downloads.html 下载之后安装&#xff0c;安装完成会生成两个程序&#xff0c;分别用来转图片和pdf&#xff1a; 二、使…

SpringEL expression:

2019独角兽企业重金招聘Python工程师标准>>> 这个异常有下面几种情况 1、你写的 EL 表达式有语法错误。 2、再者就是你取得变量是多级的话比如 student.address.prevince 属性model 关联有问题。 3、还有就是你取得值为空&#xff08;null&#xff09; 比如 Thymel…

利用qt和ffmpeg软件来制作视频裁剪工具

0 什么是ffmpeg? Libav&#xff08;旧称&#xff1a;FFmpeg&#xff09;是一个自由软件&#xff0c;可以运行音频和视频多种格式的录影、转档、流功能[1]&#xff0c;包含了libavcodec ─这是一个用于多个专案中音频和视频的解码器库&#xff0c;以及 libavformat ——一个音频…

fresco使用中圆角出现了黑边

其实并不是出现了黑边&#xff0c;而是图片上有颜色渗出 如何修改 在xml加入 fresco:roundWithOverlayColor "color/transparent" //就是把圆角覆盖图改为透明色 转载于:https://www.cnblogs.com/vete-l/p/7998122.html

Python 第三方库之 docxtpl (处理word文档)

项目官方文档 项目官方git docxtpl 软件包使用两个主要软件包&#xff1a; python docx&#xff0c;用于读取、写入和创建子文档jinja2用于管理插入到模板docx中的标记。jinja官网, jinja中文网站 简单示例 from docxtpl import DocxTemplatetpl DocxTemplate(test.docx)con…

域添加另一台机器_巨杉Tech | SequoiaDB数据域概念解读与实践

近年来&#xff0c;银行各项业务发展迅猛&#xff0c;客户数目不断增加&#xff0c;后台服务系统压力也越来越大&#xff0c;系统的各项硬件资源也变得非常紧张。因此&#xff0c;在技术风险可控的基础上&#xff0c;希望引入大数据技术&#xff0c;利用大数据技术优化现有IT系…

Citrix XenServer 池要求

池要求 资源池是一台或多台服务器的同类或异类聚合&#xff0c;每个池最多包含 16 台服务器。创建池或将服务器加入现有池前&#xff0c;应确保池中的所有服务器满足下面介绍的要求。 硬件要求 XenServer 资源池中的所有服务器必须具有广泛兼容的 CPU&#xff0c;也就是说&…

推荐一个接口文档工具

ShowDoc 转载于:https://www.cnblogs.com/LW-baiyun/p/8003975.html

自动转换flv文件

在线转化.谁有 把其他的视频文件格式的视频,经过上传自动转化FLV格式的一种插件.提供编程接口.给我一份.类似新浪网播客上传视频的一样. (还有上传是的哪个效果,进度条如何作的?)或者给我个参考地址什 ... 环境&#xff1a;redhat as41。首先获取ffmpeg很多人找不到怎么下载,其…