zoukankan      html  css  js  c++  java
  • Windows下使用MINGW编译ffplay

    之前考虑到需要快速配置编译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编译的过程以及可能存在的问题,值得记录。

  • 相关阅读:
    有用网站
    html5页面布局总结
    video和audio支持格式
    关于浏览器缓冲
    java常见面试题汇总
    jvm常用相关参数
    规律字符串拼接
    线程基础知识
    Kafka学习
    Redis学习
  • 原文地址:https://www.cnblogs.com/tocy/p/windows_mingw_compile_ffmpeg_with_ffplay.html
Copyright © 2011-2022 走看看