一步步实现windows版ijkplayer系列文章之一Windows10平台编译ffmpeg 4.0.2,生成ffplay

最近想研究下ffplay的代码,学习代码是枯燥无味的,也是抽象的,学习一个系统或者软件之前,好的入门方法是先把系统搭建起来,或者把软件编译出来,直观的操作一下相关的功能,由表入里,熟悉功能之后,在慢慢深入代码,由现象看到本质,才能理解的更加深刻。

ffmpeg目前最新的代码是4.0.2.编译ffmpeg代码之前需要做一些准备工作。

安装编译环境

网上有两种windows下的gcc编译环境可供选择,一个是MinGW,另外一个是cygwin,二者的区别可以参考一个帖子。其中注意有一点是使用cygwin编译出来的程序都要依赖Cygwin1.dll,因此决定使用WinGW编译ffmpeg。

安装minGW installation manager

下载链接

下载之后安装,打开主界面,安装下面的组件。

安装MinGW

下面的包都需要安装(有可能遗漏,编译ffmpeg时缺什么可以回来安装):

  • gcc-dev
  • gcc-bin
  • binutils-bin
  • libpthreadgc-dev
  • auto-make

MinGW的安装目录为C:MinGW

继续安装MSYS

MSYS即Minimal GNU(POSIX)system on Windows,是一个小型的GNU环境,包括基本的bash,make等等。是Windows下最优秀的GNU环境。可以通过minGW installation manager进行安装。

MSYS的默认安装目录为C:MinGWmsys.

编译ffmpeg

编译ffmpeg是很简单的,但默认编译ffmpeg是不带ffplay的。需要做额外的操作。

yasm

yasm是汇编编译器,因为ffmpeg中为了提高效率用到了汇编指令,比如MMX和SSE。因此需要安装这个工具。下载链接

我编译的是32位的ffmpeg,所以下载“Win32.exe”。下载完成之后将yasm-1.3.0-win32.exe重命名为yasm.exe,放到C:MinGWmsys1.0bin下面。

pkg-config

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

下载链接,下载完之后将bin下面的pkg-config.exe拷贝到C:MinGWmsys1.0bin下面。

SDL2

下载SDL2,解压之后,把目录下lib,bin.include,share下面的内容拷贝到C:MinGWmsys1.0的对应目录下,注意,是全部。

ffmpeg-4.0.2

把下载的ffmpeg源码包放到home目录下面,打开C:MinGWmsys1.0下的msys.bat,进入ffmpeg源码根目录,创建build文件夹,进入文件夹,执行下面的命令:

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

成功之后,执行make

make

但是会报如下错误:

"ws2tcpip.h is not compatible with winsock.h. Include winsock2.h instead."

字面意思是某个文件包含了winsock.h,但是应该包含winsock2.h。找了半天,最后想到一个办法,把C:MinGWinclude下面的winsock.h删掉,再次执行make命令,最后发现是ptw32_errno.h这个文件包含了winsock.h,将其改为winsock2.h, 再次make,成功。

最后make install

make install

运行ffplay

ffplay.exe ed_1024_512.mp4

参考

https://www.cnblogs.com/tocy/p/windows_mingw_compile_ffmpeg_with_ffplay.html

一步步实现windows版ijkplayer系列文章之一Windows10平台编译ffmpeg 4.0.2,生成ffplay相关推荐

  1. 一步步实现windows版ijkplayer系列文章之三——Ijkplayer播放器源码分析之音视频输出——音频篇

    https://www.cnblogs.com/harlanc/p/9693983.html 目录 OpenSL ES & AudioTrack 源码分析 创建播放器音频输出对象 配置并创建音 ...

  2. 一步步实现windows版ijkplayer系列文章之二——Ijkplayer播放器源码分析之音视频输出——视频篇...

    一步步实现windows版ijkplayer系列文章之一--Windows10平台编译ffmpeg 4.0.2,生成ffplay 一步步实现windows版ijkplayer系列文章之二--Ijkpl ...

  3. automake java_一步步实现windows版ijkplayer系列文章之五——使用automake生成makefile

    #一步步实现windows版ijkplayer系列文章之五--使用automake一步步生成makefile 上一篇文章我们把ffmpeg库成功在windows平台下编译成dll了,ffmpeg的编译 ...

  4. Windows Mobile 开发系列文章收藏 - Windows Mobile 6.x

    收集整理一些Windows Mobile 6.x开发相关文章, 文章及相关代码大部分搜集自网络,版权属于原作者! 智能手机      手机词汇      研发手机基本流程 WAP协议分析(1)     ...

  5. ASP.NET MVC 3.0学习系列文章—Model in ASP.NET MVC 3.0

    系列文章 ASP.NET MVC 3.0学习系列文章-序 ASP.NET MVC 3.0学习系列文章--Razor and ASP.NET MVC 3.0 ASP.NET MVC 3.0学习系列文章- ...

  6. ASP.NET MVC 3.0学习系列文章--Razor and ASP.NET MVC 3.0

    系列文章 ASP.NET MVC 3.0学习系列文章-序 Razor and ASP.NET MVC 3.0 ASP.NET MVC 3.0学习系列文章-Controllers in ASP.NET ...

  7. 大话卫星导航中的信号处理系列文章——GPS信号L1频点的中频数据生成与验证

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 大话卫星导航中的信号处理系列文章--GPS信号L1频点的中频数据生成与验证 需求 扩频码的生成 其他 验证 需求 这篇文章,主要记录我 ...

  8. WEBRTC系列之基于IOS平台编译(一)

    Webrtc 系列文章: WEBRTC系列之基于IOS平台编译(一) WEBRTC系列之 AGC 算法原理初识(二) WEBRTC系列之 AGC 算法原理初识(三) WEBRTC系列之基于IOS平台编 ...

  9. ffmpeg for android windows,windows10下编译ffmpeg for android

    最近实现了一款基于FFMpeg的支持多路视频的实时流媒体播放器:https://github.com/huweijian5/RtspPlayer 有兴趣能够关注下.html 本文记录在windows1 ...

最新文章

  1. Mac环境下配置Java开发环境(jdk+maven+tomcat+idea)
  2. Can‘t pickle local object ‘get_transforms.<locals>.process‘
  3. 我的2017年文章汇总——Java及中间件篇
  4. spring-data-redis版本冲突引发的问题
  5. matlab中基本函数的用法
  6. 20170204-py
  7. 【数据结构与算法】之深入解析“二叉树的前序遍历”的求解思路与算法示例
  8. Android启动(Booting)
  9. 手机来电秀怎么开启_360手机卫士怎么设置来电秀 360手机卫士来电秀设置方法...
  10. 创业,白手起家需要些什么?
  11. stl.find_if用法总结
  12. 数据流中的中位数java_数据流中的中位数
  13. 新基建浪潮下,看边缘计算+5G如何乘风破浪
  14. win8.1硬盘安装ubuntu14.04双系统
  15. (15年)单循环赛制,所有参赛队伍在竞赛中均能两两相遇一次。由键盘获得N队伍数,采用递归算法实现对N支队伍总比赛场次的计算
  16. Android摄影App,摄影爱好者必备的Android摄影App推介
  17. linux环境下常用的查找命令find、which、grep
  18. python(3.10,Win10 64位)的wordcloud安装
  19. 【基于Simulink+UG NX MCD 一级倒立摆控制系统仿真】建模和分析(一)
  20. 联想笔记本电脑键盘灯怎么开启_联想笔记本电脑的键盘背光怎么打开

热门文章

  1. JNDI RMI 注入(Log4j2漏洞)
  2. XP系统中如何查哪些网址曾经远程连接过本机器。
  3. 帮助你的上司达成目标
  4. linux dd克隆系统后,Ubuntu14.04 dd命令克隆系统镜像安装到另一台机器上
  5. 【Excel-2010】规范录入调查问卷
  6. 【PostgreSQL-9.6.3】触发器实例
  7. 解决pycharm在ubuntu下搜狗输入法一直固定在左下角的问题
  8. Oracle数据库中scott用户不存在的解决方法
  9. 解决krpano全景视频在QQ浏览器、安卓不能正常播放的问题
  10. WP8多分辨率解决方案