zoukankan      html  css  js  c++  java
  • win7_32下编译FFmpeg

    运行环境:  VC2010软件;                 [附:本文所用软件安装包:http://download.csdn.NET/detail/sinat_36666600/9705438]

    1、下载mingw-get-setup.exe [网站:https://sourceforge.net/projects/mingw/]

    安装步骤很简单,一直next就行。然后把basic setup中的 “1”点右键选择“make for installation”全部选择就行。最后点击“2”中的apply changes安装。(注:若提示错误框,或关闭下图安装框时跳出提示,且提示的大意为有的插件没有安装,则选择“Review changes”,然后选择“apply changes”可继续下载安装。直到全部安装好,没有任何错误退出最好。)

    或参考网上的教程,不再赘述。

     

    2、“我的电脑”右键“属性”,选择“高级系统设置”,点击“环境变量”。在“系统变量”框中找到“Path”,点击“编辑”,在末尾加入代码:“C:mingwin;”。(注意末尾的分号,为英文输入法。根据安装的mingw的路径而改变位置)

    3、用记事本的方式打开C:mingwmsys1.0(其中C:mingw为安装mingw的位置。从这里也能看出,安装了mingw后自动安装了“msys”,从而不用自己再配置msys)目录中的msys.bat。在最顶部位置添加如下代码:

    call "D:Program FilesMicrosoft Visual Studio 2010VCinvcvars32.bat"

    其中,“D:Program FilesMicrosoft Visual Studio 2010”为软件Microsoft Visual Studio 2010的安装路径,根据安装路径的不同而对应更改即可。

    效果如下图:

    4、下载最新版yasm.exe [网址:http://yasm.tortall.net/Download.html] 选择“win32.exe(for general use on 32-bit windows)”根据系统的不同而改变。

    为了减少配置环境变量的麻烦,本处直接把 yasm-1.1.0-win32.exe 文件名修改成:yasm.exe,并放到系统目录下:C:WINDOWSsystem32。

    5、下载最新版本的ffmpeg[网站:http://www.ffmpeg.org/download.html#get-sources] 解压出来即可。

    6、编译ffmpeg:

    把步骤5中的压缩包解压到C:ffmpeg后。打开“C:mingwmsys1.0msys.bat”文件。

    输入命令:

    cd /c

    cd ffmpeg

    ./configure --enable-memalign-hack --disable-debug

    以上代码意思为:进入ffmpeg文件夹所在路径“C:ffmpeg”。然后“./configure --enable-memalign-hack”编译ffmpeg,且“--enable-memalign-hack”必不可少!

    一段时间后,显示如下错误:

     

    7、根据网站:

    http://stackoverflow.com/questions/1710922/how-to-install-pkg-config-in-windows 

    下载相应的安装包,然后按步骤操作:

    (1)下载pkg-config_0.26-1_win32.zip 

    (2)解压后把“bin”文件夹下的“pkg-config.exe”文件复制到“C:mingwin”下,其余文件可删除。(注:在别的地方下载的pkg-config压缩文件,解压后可能没有pkg-config.exe文件。所以建议到此网站上下载。)

    (3)下载gettext-runtime_0.18.1.1-2_win32.zip

    (4)解压后把“bin”文件夹下的“intl.dll”文件复制到“C:mingwin”下,其余文件可删除。

    (5)下载glib_2.28.8-1_win32.zip

    解压后把“bin”文件夹下的“libglib-2.0-0.dll”文件复制到“C:mingwin”下,其余文件可删除。

    最后,再次进行步骤6。发现没有错误了,可以运行。如下图所示:

     

    然后再进行以下两步:

    make

    make install

    “make”时会进行长时间的编译,所以请耐心等待。最后“make install”安装。全部完成后,可在ffmpeg文件目录下发现“ffmpeg.exe”“ffprobe.exe”等文件,唯独没有“ffplay.exe”。在网上百度了下,原因是没有编译SDL。

    第二部分 —— 完整编译:

    首先,进行上面的1~5步骤,然后再进行下面的步骤:

    1、在官网下载x264[网站:http://www.videolan.org/developers/x264.html] 

    然后解压到之前的ffmpeg目录下C:ffmpeg。 然后启动C:mingwmsys1.0msys.bat。输入命令,进入到x264目录下:

    cd  /c

    cd  ffmpeg

    cd  x264

    ./configure  --enable-shared  --disable-asm

    make

    make  install

    编译完成后,在C:mingwmsys1.0local目录下可看到bin、include和lib文件夹,都为x264的文件。

    2、下载SDL,[网站:http://www.libsdl.org/download-2.0.php] 选择其中的“SDL2-devel-2.0.5-mingw.tar.gz (MinGW 32/64-bit)”。这是已经编译好好的SDL文件,解压后直接拿来用就ok了。

    将i686-w64-mingw32下的lib的所有文件复制到C:mingwlib;

    将i686-w64-mingw32下的include的所有文件复制到C:mingwinclude;
    将i686-w64-mingw32下的bin的所有文件复制到C:mingwin;

    3、最后,编译ffmpeg。

    cd  /c

    cd  ffmpeg

    ./configure  --enable-shared  --enable-ffplay  --enable-memalign-hack  --enable-gpl  --enable-libx264  --extra-cflags=-Ic:/mingw/msys/1.0/local/include  --extra-ldflags=-Lc:/mingw/msys/1.0/local/lib

    注意:“--extra-cflags=-I”以及“--extra-ldflags=-L”后的是包含了libx264.h头文件的目录和相关库,根据相应的位置而改动,若不加那两个代码就会有如下图的错误:

     

    耐心等待一段时间后,再:

    make

    make  install

    没有报错,检查c:ffmpeg文件,发现其中生成了“ffmpeg.exe”、“ffplay.exe”、“ffprobe.exe”等文件。

    4、双击打开c:ffmpeg目录下的“ffplay.exe”,弹出如下错误提示:

     

    其实这个文件就在C:mingwmsys1.0localin目录下。

    但是打开C:mingwmsys1.0localin目录下的“ffplay.exe”没有错误提示。将测试“h264”、“mpg”等格式的视频直接拖入这里面的ffplay.exe中可以顺利播放,但是没有声音。因为没有加入音频的编解码库。

    注意事项

    -1- 通过以下代码编译lame-3.97时不会有问题:

    ./configure --disable-shared (首选)
    或    ./configure --disable-static --enable-shared
         make
         make install

    但在编译ffmpeg时加入“--enable-libmp3lame”会报错,如下图:

     

    暂时还没找到解决办法。

    若编译最新版的lame-3.99.5,则会出现下图错误:

    -2- 编译SDL时,会出现如下错误:

     

    显示红色框中内容时弹出2次如下图对话框:

     

    把编译指令改为如下,则可编译成功:

    ./configure  --disable-nasm

    make

    make  install

    若编译SDL2版本,也会报错。所以,建议使用已经编译好的SDL2-devel-2.0.5-mingw.tar.gz这种文件,直接复制粘贴到对应文件夹即可。

  • 相关阅读:
    【JS】在JS方法中返回多个值的三种方法
    【装饰】博客园背景轮播
    【jquery】查看全文/收起
    jQuery节点查找方法
    点击事件的累加问题
    微信小程序动画效果集合
    【数组】数组的操作
    【Mock.js】 入门
    【下拉刷新】WEUI下拉刷新
    __iomem作用
  • 原文地址:https://www.cnblogs.com/subo_peng/p/6809465.html
Copyright © 2011-2022 走看看