因为又要弄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. zabbix基础使用(以思科交换机为例)

    1.创建host group --以方便添加告警和给host分组 一般先创建一个Group-Net,然后根据地点创建.命名,如Group-Net-BeiJing 2.创建Template 1.创建Di ...

  2. spring boot 2.0 与FASTDFS进行整合

    只支持在spring-boot 2.0以及以上版本中使用 1.pom.xml 里引入FASTDFS的依赖,toobato与fastdfs作者一起,将fastdfs的功能进行了重构与简化 <!-- ...

  3. how2j网站前端项目——天猫前端(第一次)学习笔记6

    开始我的订单页面 学着学着,会觉得我这是在干啥呢?我要学的是Java不是吗?怎么要学这么久的前端啊?说实话,我很迷茫,不知道以后的工作具体是做什么?学的这些能用到吗? 不过,还是要把这个项目跟着走完! ...

  4. Linux下实时查看GPU状态

    参考链接: http://blog.csdn.net/yao_yao_2015/article/details/53404389 1. 显示当前GPU使用情况 Nvidia自带了一个nvidia-sm ...

  5. iOS.Crash.Case-[__NSArrayM objectForKeyedSubscript:]

    1. [__NSArrayM objectForKeyedSubscript:]: unrecognized selector sent to instance - source code and s ...

  6. Go语言之讲解GOROOT、GOPATH、GOBIN

    Go是一门全新的静态类型开发语言,具有自动垃圾回收,丰富的内置类型,函数多返回值,错误处理,匿名函数,并发编程,反射等特性. go命令依赖一个重要的环境变量:$GOPATH GOPATH允许多个目录, ...

  7. [转载]linux中sed的用法

    转自:http://www.cnblogs.com/emanlee/archive/2013/09/07/3307642.html sed命令行格式为:         sed [-nefri]  ‘ ...

  8. Mac 下配置Nginx安装环境配置详细说明

    环境信息: Mac OS X 10.11.1 Homebrew  0.9.5 正文 一.安装 Nginx 1.终端执行: ? 1 2 brew search nginx brew install ng ...

  9. jmeter多用户并发

    1.需要参数化 2.单用户需要在请求头里面传入cookie

  10. visual studio 修改注释快捷键,和断点

    修改成alt+3和alt+4.效果不错 修改插入断点快捷键.这样按F12 就可以插入删除断点了.很爽 tab是批量加缩进 shift+tab 是批量减缩进