之前考虑到需要快速配置编译ffplay,使用了比较暴力的方法,具体可以参考编译ffplay.exe简化版

这里介绍下相对规范的做法。

前提:已经安装了Windows下GCC开发环境——MINGW+msys。

Step1:下载FFmpeg

链接如下:FFmpeg Download

Step2:下载yasm并配置

可以从下面URL下载:yasm 1.3 release

选择你需要的版本,我的系统是win32的,所以下载“Win32.exe”。

下载完成之后将yasm-1.3.0-win32.exe重命名为yasm.exe,并复制到%MINGW_PATH%/bin目录下。MINGW_PATH是MINGW安装目录。

Step3:下载pkg-config并配置

pkg-config官网上通常找不到windows下可用的版本,建议参考下面介绍配置:pkg-config for mingw 安装及配置

注意配置好环境变量,PKG_CONFIG_PATH(这是pkg-config默认的库依赖项查找目录)。

也可以把pkg-config.exe放到%MINGW_PATH%/bin下。

pkg-config是一个辅助的配置、链接工具,可以方便的支持gcc自动配置。

Step4:下载SDL并配置

可以从SDL v1.2.15下载,选择SDL-devel-1.2.15-mingw32.tar.gz。

后续的配置是把上面压缩包中的include/sdl、lib、bin目录下的文件拷贝到%MINGW_PAH%/include/sdl、%MINGW_PAH%/lib、%MINGW_PAH%/bin。

剩下的可能需要手工添加。在%MINGW_PAH%/lib添加pkgconfig目录。由于SDL v1.2.15不包含sdl.pc文件,需要参考SDL v2.0的版本生成一个或者自己编译一个。内容如下:

# sdl pkg-config source file

prefix=/c/mingw/
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include Name: sdl
Description: Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer.
Version: 1.2.15
Requires:
Conflicts:
Libs: -L${libdir} -lmingw32 -lSDLmain -lSDL -mwindows
Libs.private: -lmingw32 -lSDLmain -lSDL2 -mwindows -Wl,--no-undefined -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -XCClinker -static-libgcc
Cflags: -I${includedir}/SDL -Dmain=SDL_main

Step5:FFmpeg的configure

既然工具都配置好了,剩下的就是开始按照Linux上的软件编译流程,使用下面命令配置FFmpeg

./configure  --disable-static --enable-shared --enable-gpl --enable-version3 --enable-pthreads

完成之后检查下SDL是否正常检测到,可以查看FFmpeg编译目录下的config.h文件,找到HAVE_SDL、CONFIG_SDL宏,如果都是1,表示SDL配置成功,可以放心编译出ffplay了。

Step6: FFmpeg编译

这基本上算最后一步编译,耗时相对长一些,通常半个小时以上。

一条编译指令,make

小结

Windows下GCC开发环境配置起来相对复杂,有问题通常都是可以解决的。写这篇文章主要考虑自己用了几年的FFmpeg,编译了很多次,也没成功编译出ffplay.exe,这次终于整理清楚FFmpeg编译的过程以及可能存在的问题,值得记录。

Windows下使用MINGW编译ffplay的更多相关文章

  1. 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)

    转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...

  2. Windows下用Mingw编译Boost.Regex库

    下载Boost库,解压. 定位到regex库文件夹下. GCC所对应的MAKEFILE为gcc.mak 进入命令提示符下,输入make -f gcc.mak 这是如果直接按回车执行的话,会出现错误: ...

  3. windows下使用mingw编译出ffplay(简化版)

    之前编译FFmpeg直接使用dll.lib,默认的mingw也不会编译出ffplay.exe. 近期由于工作需要,需要验证下修改之后的FFmpeg版本是否正常,需要使用ffplay.exe. 比较暴力 ...

  4. 在Windows下利用MinGW编译FFmpeg

    目录 [隐藏]  1 环境与软件 2 第一步:安装MinGW 3 第二步:配置编译环境 4 第三步:配置SDL 5 第四步:编译 5.1 编译faac 5.2 编译fdk-aac 5.3 编译x264 ...

  5. 再次尝试windows下msys+MinGW编译ffmpeg

    电脑上安装太多的开源库,环境变量里面一些常用的头文件都有几种,以前使用的编译ffmpeg的方法现在常常提示错误.从config.log中看,这些错误往往都是一些头文件引用错误导致.由于项目中继续编译自 ...

  6. windows下使用mingw编译python扩展模块

    环境: 1.python2.7.2 2.mingw20120426 说明: PYTHON_HOME:不做特殊说明的话,默认代表python的安装路径. MINGW_HOME:不做特殊说明的话,默认代表 ...

  7. windows下用mingw编译linux项目

    1.下载安装mingw32 2.将mingw下bin和msys\1.0下bin设置为系统path 3.启动msys.bat 4.cd到项目目录 5.输入./configure 6.输入make 7.输 ...

  8. 在Windows下使用MinGW静态编译Assimp

    使用MinGW静态编译Assimp 到了5月份了,没有写一篇日志,于是自己从知识库里面拿出一篇文章充数吧.这次将要解说怎样在Windows下使用MinGW静态编译Assimp. Assimp是眼下比較 ...

  9. windows下使用mingw和msvc静态编译Qt5.15.xx

    windows下使用mingw和msvc静态编译Qt5.15.xx 下载并安装相关依赖软件 Python version 2.7 https://www.python.org/downloads/ ( ...

随机推荐

  1. 最新CoreData封装Demo

    1.创建CoreData文件 2. 3. 4. UploadCoreDataAPI.h // // UploadCoreDataAPI.h // dsafsda // // Created by 冯敏 ...

  2. 远程首次连接mysql速度慢的解决方法:skip-name-resolve取消DNS的反向解析(转)

    PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的 MYSQL开启了DNS的反向解析,在MY.INI(WINDOW ...

  3. Android程序员必备精品资源

    平时写程序中不断收集到的一些比较常用的东西,分享给大家. 实用工具集锦 Android Lifecycle https://github.com/xxv/android-lifecycle TinyP ...

  4. 【NotePade++】NotePade++如何直接编译运行java文件

    安装Notepad++和JDK(略): Notepad++的菜单栏:插件->Plugin Manager->Show Plugin Manager,Available中勾选NppExec, ...

  5. [ACM] hdu 1253 胜利大逃亡 (三维BFS)

    胜利大逃亡 Problem Description Ignatius被魔王抓走了,有一天魔王出差去了,这但是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个A*B*C的立方体,能够被表示 ...

  6. Cassandra 2.x 提示“错误: 代理抛出异常错误: java.lang.NullPointerException”

    这个问题多半是由于运行了多个Cassandra实例造成的错误,看cassandra的启动脚本中可发现这样的语句: # see CASSANDRA-7254 "$JAVA" -cp  ...

  7. root用户Linux 环境变量的配置解决(-bash: jps: command not found)有关问题

    可以写成:$JAVA_HOME/bin 3. source /root/.bash_profile 发现 jps 等命令运行正常了

  8. SharePoint 2013 Step by Step——使用自定义的List Template

    Overview 对于企业员工来说,"扁平结构"的LIST是日常操作中经常使用到的,LIST的好处是方便数据的录入以及数据的整理分析,尤其是Quick Edit功能,可以实现快速编 ...

  9. 简单示例:Spring4 整合 单个Redis服务

    1. 引入spring-data-redis.jar API:https://docs.spring.io/spring-data/redis/docs/current/api/org/springf ...

  10. mark CodeGenerator

    基础权限开发框架 BMS = Spring boot + Mybatis plus + Shiro     BMS / bms-admin  / src  / main  / java  / com  ...