因为又要弄MinGW了,所以顺便把FFMPEG编译了,文章主要参考这篇,防抽所以复制一遍,顺便加些自己的内容

http://blog.csdn.net/finewind/article/details/38854517

1.下载FFMPEG源码 https://ffmpeg.zeranoe.com/builds/

2.安装MinGW http://www.mingw.org/

然后在Installation菜单下点击Apply Changes(mingw32-gcc-g++不用选择)

3.下载yasm http://yasm.tortall.net/  下载后改名为yasm.exe,复制到C:/MinGW/msys/1.0/bin目录下

4.配置C:/MinGW/msys/1.0/msys.bat,在此文件的最前面(@echo off之后)添加一行如下内容(依实际安装路径修改路径):

call "D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat"

5.重命名 C:/MinGW/msys/1.0/bin/link.exe 为link_renamed.exe (依实际安装选择路径),

这一步是防止这个link.exe与vc的link.exe发生冲突,编译完成后可修改回来

6.配置编译,双击msys.bat,转到FFMPEG源代码根目录下,可运行 ./configure --help查看编译配置选项,我使用的选项为:

./configure --enable-static --prefix=./vs2015_build --enable-debug --toolchain=msvc

./configure --enable-shared --prefix=./vs2015_build --enable-debug --toolchain=msvc

等待配置完成返回

7.输入 make all 编译

8.输入make install 安装

完成,此时生成的头文件及库已经在ffmpeg源代码下的vs2015_build目录下,使用这个库,即可在VS下单步进入FFMPEG函数内部

========================================

至此就完成了库编译,但本文还没完,实际上以我粗浅的了解,FFMPEG最有价值的例子是那个ffplay,

至少以我在网上找过的数个FFMPEG的教程和例子来看,不论新旧,不论中外,都不如这个ffplay源码实用。

为什么?因为网上的教程基本就是国外那套很旧版本ffmpeg播放视频的例子,代码换成新版FFMPEG声音就会挂掉。

而国内的教程只有个SDL2的视频解码,没有音画同步,没有音画同步的例子有什么用...根本就不能用嘛...没人下个FFMPEG只为看个图像......

肯定是为了能正常播放音画同步,再加个快进,暂停,切换文件等等的功能吧。

所以在网上翻来翻去,最后的结论就是要在VS中编译出这个ffplay,并且可以调式,才算是FFMPEG最基本的使用资料。

编译ffplay工程需要SDL1.2库 http://www.libsdl.org/download-1.2.php

然后新建Win32 Console工程

在FFMPEG源码中找到以下文件加入到工程

cmdutils.c
ffplay.c
cmdutils.h
cmdutils_common_opts.h
config.h

然后配好FFMPEG和SDL1.2的include和lib目录和链接库

然后从FFMPEG源码中多复制一个文件到FFMPEG的include对应目录中

FFMPEG\include\libavutil\colorspace.h

然后根据编译中提示的一些错误提示,大概解决下就可以编译ffplay工程了

实际测试了一下,ffplay播放1080P视频也没问题,放多久都不会出错,而我之前不知道下的哪个版本的potplayer,

放了一段时间居然音画不同步了,神奇,所以说ffplay的确是最重要的例子,至少对我来说是。

将来有时间,会考虑移植下这个例子的实现到纯DX11和OpenGL3.x上,目前还是要继续学3D引擎原理

Win7 VS2015及MinGW环境编译FFMPEG-20160326的更多相关文章

  1. Win7 VS2015及MinGW环境编译矢量库agg-2.5和cairo-1.14.6

    书接上文,昨天装了MinGW,主要原因之一是要用到MSYS,所以顺手把FFMPEG又编译了一遍. 回到主题,其实我是想编译矢量库,因为最近要学习一些计算几何算法,所以找个方便的2D画图库就很重要. 说 ...

  2. Win7 64位 VS2015及MinGW环境编译矢量库agg-2.5和cairo-1.14.6

    书接上文,昨天装了MinGW,主要原因之一是要用到MSYS,所以顺手把FFMPEG又编译了一遍. 回到主题,其实我是想编译矢量库,因为最近要学习一些计算几何算法,所以找个方便的2D画图库就很重要. 说 ...

  3. Win7 64位 VS2015及MinGW环境编译FFMPEG-20160326

    因为又要弄MinGW了,所以顺便把FFMPEG编译了,文章主要参考这篇,防抽所以复制一遍,顺便加些自己的内容 http://blog.csdn.net/finewind/article/details ...

  4. windows 7下mingw+msys编译ffmpeg

      windows 7下mingw+msys编译ffmpeg   1-->下载安装MingW,mingw-get-inst-20120426.exe  http://sourceforge.ne ...

  5. 开源项目:windows下使用MinGW+msys编译ffmpeg

    本文参考了网络上的不少文章,但由于版本环境的问题参考文章并不能直接指导编译,本文吸收多方经验,并在自己多次编译实验的基础上写成,欢迎转载,请注名出处.    FFmpeg是在Linux平台下开发的,但 ...

  6. windows 下使用 MinGW + msys 编译 ffmpeg

    本文参考了网络上的不少文章,但由于版本环境的问题参考文章并不能直接指导编译,本文吸收多方经验,并在自己多次编译实验的基础上写成,欢迎转载,请注名出处.    FFmpeg是在Linux平台下开发的,但 ...

  7. 在MinGW下编译ffmpeg

    因为需要使用ffmpeg的相关库和执行文件,所以需要编译最新的ffmpeg代码.为了能在编译成Windows native执行程序(需要在.net中调用该执行程序),这里我们使用MinGW. 1,安装 ...

  8. Win7 64位 MinGW环境测试SDL2.0.3

    下载MinGW版的文件 http://www.libsdl.org/release/SDL2-devel-2.0.3-mingw.tar.gz 解压放到mysys下面 运行Makefile mysys ...

  9. mingw 环境编译 liburl故障一例

    环境是 windows 10,已经安装 mingw,并设置好mingw 和 msys的环境变量 C:\Users\cracker>set |grep MinGW Path=C:\Program ...

随机推荐

  1. python指针

    class ListNode: def __init__(self, x): self.val = x self.next = None就两个属性 value 和 next,因为单节点默认next是没 ...

  2. stm32 开发中startup.s文件中常见的命令功能

    由于C的普及以及编译器的发展,越来越多的软件工程师在编程时很少有机会接触到汇编语言.在ARM的开发中,我们不可避免的会遇到启动文件的编写,在KEIL环境中一般采用了startup.s的文件作为启动代码 ...

  3. Wannafly挑战赛13 D.applese的生日(贪心+思维)

    题目描述 最可爱的applese生日啦,他准备了许多个质量不同的蛋糕,想请一些同学来参加他的派对为他庆生,为了不让一部分同学感到不爽,他决定把每个蛋糕都分割成几份(也可以不分割),使得最小的蛋糕的质量 ...

  4. 成对使用new和delete,传值传引用

    首先: delete []p;是用来删除对象数组的,特别是你声明的是对象数组!!! 如果new中用了[],delete一定要用[]:在new中没有使用,在delete中一定不要使用. 其次: 当你使用 ...

  5. Json、JavaBean、String等互转

    Json.JavaBean.String等互转 本文介绍简单的Json.JavaBean.String互换(下文JavaBean简称Object对象,这里不是很严谨) 转换关系如下: 其中String ...

  6. docker搭建lnmp(二)

    上一篇利用 不同的命令来构建 nginx,mysql,php镜像 和 容器. 这样做比较麻烦,也很容易出错,当然可以写入 sh脚本来执行.但是可以通过 docker-compose 来达到效果,管理起 ...

  7. Win7 64位VC6调试无法退出

    错误信息:LINK: fatal error LNK1168: cannot open Debug/test1.exe for writing 根据网络上查询,找到最终原因,DM.dll,TLLOC. ...

  8. PAT 1051 复数乘法(15 )(代码+思路)

    1051 复数乘法(15 分) 复数可以写成 (A+Bi) 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 i​2​​=−1:也可以写成极坐标下的指数形式 (R×e​(Pi)​​),其 ...

  9. Linux内核哈希表分析与应用

        目录(?)[+]   Linux内核哈希表分析与应用 Author:tiger-johnTime:2012-12-20mail:jibo.tiger@gmail.comBlog:http:// ...

  10. Python.tornado.2.tornado.options

    记录Tornado-4.0.2源码的阅读,学习,分析 options.py 1. imports 部分 1.1 __future__ from __future__ import absolute_i ...