这个文章应该算是中文版最好的了。但是还有一些需要修正。 特别是winsock2的处理

win10 msys2 vs2015 ffmpeg3.2.2 编译

这个英文版的才是最好的

Building ffmpeg 3.3 with MSYS2 + MSVC 2017 failed with so many winsock2 related redefinitions

MSYS2 + Visual Studio  Community here, the exact steps I take to build are:
. Start a Visual Studio "Developer Command Prompt", which effectively run vcvars.bat
. cd into msys64 directory, and then invoke MSYS2 within the command prompt with "msys2_shell.cmd -msys2 -use-full-path", which make msys2 inherited the envs set by vcvars
. In MSYS2 shell, cd into /somewhere/ffmpeg-build/
. rm -rf *
. run "../ffmpeg-3.3/configure --prefix=/somewhre/to/install/ffmpeg-bin --toolchain=msvc" in the build folder. configure script complete successfully.
. make and then during the build, after about half done, so many winsocks2 functions related redefinition fail the build.
And I've found an easy fix, that is "../ffmpeg-3.3/configure --prefix=/somewhre/to/install/ffmpeg-bin --toolchain=msvc --extra-cflags=-DWIN32_LEAN_AND_MEAN".

但是,还是有几个问题

1) 想要debug版的,所以还加上了 --enable-debug

2) 不想要 Warning消息,所以 configure 之后,编辑 config.mak , 把-W4 改成了 -w

CFLAGS= -nologo -DWIN32_LEAN_AND_MEAN   -Z7 -w

3)   cmdutils.c 卡在了 【AVOutputFormat *ofmt = NULL;】 , 查错误代码想了半天,才知道VC应该用下面的语法

struct AVOutputFormat *ofmt = NULL;

4) cmdutils.c 还卡在了【 av_log(NULL, level, "%sbuilt with %s\n", indent, CC_IDENT);】

把参数一个一个排除,发觉问题出在 CC_IDENT .

最后把 config.h里的中文定义改成英文的才解决。 我也不想用中文版的,可是我不知道安装完之后,还能怎么改。

// #define CC_IDENT "用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.10.25019 版"
#define CC_IDENT "MSVC19.10.25019"

5) SDL的编译

a) 网站已经有mingw的开发库,下载就可以 http://www.libsdl.org/download-2.0.php

b) 自己用source 在 mingw 编译。

../configure --host=x86_64-w64-mingw32

    c) make 会出error . 因为 SDL 的source 没有根据最新mingw做变更。

需要注释掉 SDL2-2.0.5\src\core\windows\SDL_xinput.h 的下面的代码

typedef struct XXX XINPUT_GAMEPAD_EX   typedef struct  XINPUT_STATE_EX;

6) x264的编译 , 屏蔽了几个模块。 这个好像是source级别的mingw限制。

因为这个不会生成libx264.lib,废弃    ../configure --host=x86_64-w64-mingw32 --enable-shared --disable-thread --disable-avs

a) ../configure --host=x86_64-w64-mingw32 --disable-thread  --disable-cli --enable-shared --extra-ldflags=-Wl,--output-def=libx264.def

b) make 成功之后,拷贝 .def 文件到 /usr/local/lib

c) 在 /usr/local/lib 执行 lib.exe /DEF:libx264.def

最后,ffplay 还是没有编译成功,太累了。

$ ../configure --toolchain=msvc   --extra-ldflags="-Libpath:/usr/local/lib" --extra-cflags='-DWIN32_LEAN_AND_MEAN -I/usr/include -I/usr/include/SDL2 -I/usr/local/include ' --enable-debug --enable-libx264 --enable-gpl --enable-shared --enable-static --enable-ffplay

compile FFMPEG under windows的更多相关文章

  1. Compile FreeCAD on Windows

    Compile FreeCAD on Windows eryar@163.com 1.Introduction FreeCAD是一个参数化的三维造型软件,主要用于任意大小的实际模型的设计.参数化的建模 ...

  2. FFMPEG在windows平台编译的详细过程,包括环境安装

    下面开始: 由于FFMpeg是基于Linux开发的开源项目,源代码和Windows下最常见的Visual Studio提供的C/C++编译器不兼容,因此它不能使用MSVC++编译.要想使用FFMpeg ...

  3. 使用FFMPEG在windows平台下推rtmp流

    使用FFMPEG在windows平台下推rtmp流 工作中习惯在Linux下面使用FFmpeg模拟推rtmp流,无奈家中的电脑都是windows系统,需要利用家中的带宽来测试流媒体服务器的性能.所以研 ...

  4. windows 10上源码编译dlib教程 | compile dlib on windows 10

    本文首发于个人博客https://kezunlin.me/post/654a6d04/,欢迎阅读! compile dlib on windows 10 Series Part 1: compile ...

  5. windows 10 上源码编译opengv | compile opengv on windows 10 from source

    本文首发于个人博客https://kezunlin.me/post/51cd9fa0/,欢迎阅读! compile opengv on windows 10 from source Series co ...

  6. ffmpeg+x264 Windows MSVC 静态编译

    尝试ubuntu和win下mingw编译版本,但都在Vistual Studio链接时因为依赖 libgcc.a, libmingw.a, libmingwex.a 会与mscrt 有符号冲突. 最后 ...

  7. 【FFmpeg】Windows下64位ffmpeg编译

    本文主要记录在64位Windows 7下,编译64位ffmpeg的过程. 1.资源准备 (1). MSYS http://sourceforge.net/projects/mingwbuilds/fi ...

  8. 【FFmpeg】Windows下FFmpeg调试

    为了深入了解ffmpeg的工作原理,需要阅读源代码,调试源代码.在Windows下调试ffmpeg源码,一种方法是在MinGW+Msys环境下,利用GDB进行调试:另一种是借助Eclipse进调试,其 ...

  9. 【FFmpeg】Windows下FFmpeg编译

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

随机推荐

  1. bzoj 4591 超能粒子炮·改 - Lucas

    Description 曾经发明了脑洞治疗仪&超能粒子炮的发明家SHTSC又公开了他的新发明:超能粒子炮·改--一种可以发射威力更加 强大的粒子流的神秘装置.超能粒子炮·改相比超能粒子炮,在威 ...

  2. Windows 动态链接库DLL使用

    转载:https://blog.csdn.net/heyabo/article/details/8721611 转载:https://www.cnblogs.com/jin521/p/5598529. ...

  3. python --- 08 文件操作

    一.   文件 f = open(文件路径,mode = '模式',encoding = '编码格式') 1.基础 ① 读写时,主要看光标的位置 ②操作完成要写    f.close( ) f.flu ...

  4. Selenium Webdriver弹出框的种种类型

    普通弹出框 div 一般这种 弹出框都属于dom的一部分,我们查看一下页面源码就可以定位到改弹出框了,然后定位下右上角的那个关闭, 这里有id,所以很方便通过 dr.findElement(By.id ...

  5. topcoder srm 505 div1

    problem1 link 设行数为$n$列数为$m$ 对于任意的两行$r_{1},r_{2}$以及任意的两列$c_{1},c_{2}$所确定的四个格子,只要知道其中的三个就能确定第四个,且必须要三个 ...

  6. 列表与if语句的结合

    # 1.判断一个数是否是水仙花数, 水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数. \ # 那这个数就是一个水仙花数, 例如: 153 = 1**3 + 5**3 + 3**3 # ...

  7. mysql的 深度使用 - 游标 , 定时器, 触发器 的使用 ?

    游标 叶叫做 光标; 只能使用在 mysql的 存储过程 或函数中! 游标的概念? 为什么要使用 游标? 什么叫 定时器, 就是事件 event! 是在 mysql 5.0以上的版本中, 才能使用支持 ...

  8. 2199: [Usaco2011 Jan]奶牛议会 2-sat

    链接 https://www.luogu.org/problemnew/show/P3007 https://www.lydsy.com/JudgeOnline/problem.php?id=2199 ...

  9. C# 禁止任务管理器关闭

    http://www.cnblogs.com/luomingui/archive/2011/06/25/2090130.html 测试了好像没用的.不知道什么原因

  10. 【ASP.NET】System.Web.Routing - RouteCollection Class

    Provides a collection of routes for ASP.NET routing. The RouteCollection class provides methods that ...