zoukankan      html  css  js  c++  java
  • ffmpeg 在windows 上编译

    我在网上看到了一些资料,但是很多都不怎么全,而且 总会碰到这样或那样的问题,下面是我的一些经验,分享一下,当然也参考了大侠们的东西呵呵!

    环境:

    OS:windows

    mingw +yasm+fmpeg-0.8.5.tar.gz+SDL-1.2.15.tar.gz - GPG signed

    FFmpeg是在Linux平台下开发的,但它同样也可以在其它操作系统环境中编译运行,本文介绍的就是在windowsXP下编译FFmpeg。
    一 准备环境:
    1 下载 mingw 和 MSYS
    去 http://sourceforge.net/projects/mingw/  下载
    A 点击“DownLoad mingw-get-inst-...exe”;
    B 切换到页面:download? Check your browser's security bar, or try a direct link, or try another mirror. ;
    C 点击“direct link”下载类似:mingw-get-inst-20110802.exe 的文件。
    提示:msys此处就不用下载了,mingw-get-inst-20110802.exe 中已经包含了msys1.0,后面安装的时候就可以看到该选项。
    2 下载 yasm
    ffmpeg编译里面的汇编代码需要yasm.exe  
    去官网:http://yasm.tortall.net/Download.html 下载
    直接下载:Win32 .exe (for general use on 32-bit Windows)
    文件名为:yasm-1.1.0-win32.exe
    3 下载 ffmpeg
    ffmpeg可以到 http://www.ffmpeg.org/releases/ 下载
    本人选择的是最新版本:ffmpeg-0.8.5.tar.gz
    文件名为:ffmpeg-0.8.5.tar.gz
    4 下载 SDL
    SDL下载可以到:http://www.libsdl.org/download-1.2.php
    选择:SDL-1.2.15.tar.gz - GPG signed
    此版本需要自己编译,后面会解释为什么下载该版本,而不下载编译好的SDL-devel-1.2.14-mingw32.tar.gz (Mingw32)
    5 下载 pthreadGC2.dll
    pthreadgc2.dll是功能强大的处理数字化影视作品编辑软件premiere6运行所需的一个DLL文件。这是一个无威胁文件。属于Open Source Software community project的文件。直接去baidu.com三搜索下载就可以了。
    二 编译步骤
    1 安装 mingw 和 msys
        执行下载文件:mingw-get-inst-20110802.exe,
        在第3步选择“Download latest repository catalogues”
        选择安装路径:C:MinGW(我直接采用默认路径,未做修改)
        在“Select Components”步骤中选择:
        √  C Compiler (默认且一定选择)
        √  C++ Compiler
        √  MSYS Basic System(选择此项将会安装msys,msys则不需要另外安装)
        √  MinGW Developer ToolKit
        等待安装完成!(需要等待一定的时间,因为安装过程需要下载文件,可想而知,网速越快,安装越快)
        安装完成后,在C:MinGW目录下可以看到 msys 文件夹,msys也已经安装。
    2 配置 msys.bat 批处理文件
        为了方便VS200X以及VS2010调用ffmpeg的动态库,可以通过配置让ffmpeg编译时产生windows下调用dll对应的lib,当然,如果你没有这个需要,那么就可以省略以下处理,直接进入步骤3。
        进入:C:MinGWmsys1.0文件夹,使用UltraEdit打开msys.bat文件,在文件的最最前面加入如下一行:
        call "D:Program FilesMicrosoft Visual Studio 10.0VCinvcvars32.bat"
        其中“D:Program FilesMicrosoft Visual Studio 10.0”为你机器上安装VS200X或VS2010的目录,我的电脑安装的是VS2010,并且安装在了D盘。文件修改后保存即可。
    3 配置 yasm
        为了减少配置环境变量的麻烦,本处直接把 yasm-1.1.0-win32.exe 文件名修改成:yasm.exe,并放到系统目录下:C:WINDOWSsystem32。
    4 解压ffmpeg 与 SDL

        ffmpeg-0.8.5.tar.gz 的解压目录您可以直接选择,本人解压到:D:ffmpeg中,解压后目录为:D:ffmpegffmpeg-0.8.5
        SDL-1.2.14.tar.tar 解压到 D:ffmpegffmpeg-0.8.5 目录下,解压后的目录结构为:D:ffmpegffmpeg-0.8.5SDL-1.2.14
    5 编译SDL
        双击“C:MinGWmsys1.0msys.bat”,启动“MinGW32”,
        切换到SDL目录:D:ffmpegffmpeg-0.8.5SDL-1.2.14,切换方法如下:
        $ cd /d
        $ cd ffmpeg
        $ cd ffmpeg-0.8.5
        $ cd SDL-1.2.14
        再执行以下命令:
        $ ./configure --prefix=/usr 回车等待…
        $ Make 回车等待…
        $ make install 回车等待…
        编译完成后,在C:MinGWmsys1.0的bin、include和lib文件夹下可以看到编译结果。
        直接编译ffmpeg时,发现未生成ffplay.exe,
        configure的时候提示信息如下:
        SDL support  no
        所以需要开启SDL,本人头天接触这东西,不知道使用什么方法可以开启,但通过编译SDL后
        SDL support  yes
        如果你的 SDL 已经是开启状态,你可以直接使用下载中提到的编译好的压缩包SDL-devel-1.2.14-mingw32.tar.gz,直接解压,并把解压包中的bin、include和lib文件夹中的文件复制到D:ffmpegffmpeg-0.8.5,与步骤六相同,只是不在从C:MinGWmsys1.0中复制。
    6 拷贝编译结果:
        C:MinGWmsys1.0  到D:ffmpegffmpeg-0.8.5下 覆盖
        bin下的SDL.dll、sdl-config拷贝到 bin中
        include下的 SDL文件夹拷贝到 include中
        lib下的libSDL.a、libSDL.dll.a、libSDL.la和libSDLmain.a拷贝到 lib中
    7 修改sdl-config配置文件
        使用UltraEdit打开D:ffmpegffmpeg-0.8.5in下的 sdl-config文件
        把 prefix=/usr 该成: prefix=c:/mingw
        其中:c:/mingw 为 mingw的安装路径,请根据你的安装进行修改。
    8 编译 ffmpeg
        双击“C:MinGWmsys1.0msys.bat”,启动“MinGW32”,
        切换到SDL目录:D:ffmpegffmpeg-0.8.5SDL-1.2.14,
        切换方法如下:
        $ cd /d
        $ cd ffmpeg
        $ cd ffmpeg-0.8.5
        如果你的“MinGW32”没有关闭,可以直接切换路径到:D:ffmpegffmpeg-0.8.5。
        再执行以下命令:
        $ ./configure --enable-shared --disable-static --enable-memalign-hack

        请耐心等待一段时间

      $ make

       需要等待很长一段时间,等待编译结束。

        为了汇总编译结果,请继续执行以下命令:
        $ make install
        等待完成,在C:MinGWmsys1.0local中将会生成 bin、include、lib等文件夹,其中包含了ffmpeg.exe、ffplay.exe、ffprobe.exe、dll、lib和头文件等。
    9 运行测试
    直接双击运行”ffplay.exe”,如果提示没有“pthreadGC2.dll”文件,你可以包“pthreadGC2.dll”直接拷贝到当前目录,也可放到系统目录C:WINDOWSsystem32中。

    avcodec.lib avformat.lib swscale.lib avutil.lib

    10 添加一些库

    运行ffplay.exe,会发现缺少很多库,在下面的网站下载

    http://code.google.com/p/aforge/source/detail?spec=svn1644&r=1644

    参考:http://blog.csdn.net/q506616671/article/details/7080407

  • 相关阅读:
    no-octal-escape (Rules) – Eslint 中文开发手册
    Object.isSealed (Object) – JavaScript 中文开发手册
    AngularJS SQL
    Eclipse 内容辅助
    ionic 单选框操作
    CSS border-top-color 属性
    Java 集合:(二十八) SortedMap 接口
    Java 集合:(二十七)Properties实现类
    Java 集合:(二十六) Hashtable 实现类
    Java 集合:(二十五)备用2
  • 原文地址:https://www.cnblogs.com/djzny/p/3423507.html
Copyright © 2011-2022 走看看