windows下使用MinGW+msys编译ffmpeg

合集下载

FFMPEG的移植与使用

FFMPEG的移植与使用

FFMPEG的移植与使用FFmpeg是一个自由软件,可以进行音频和视频的录制、转换和流传输。

它提供了许多功能丰富的库和命令行工具,可以在各种平台上使用。

本文将介绍如何进行FFmpeg的移植和使用。

首先,我们需要了解FFmpeg的移植过程。

FFmpeg可以在多个平台上移植,包括Windows、macOS、Linux和Android等。

移植过程可以分为以下几个步骤:2. 配置编译环境:根据所使用的平台选择合适的编译环境,例如Windows下可以使用MinGW或MSYS23. 配置编译选项:进入源代码目录,运行`./configure`命令来配置编译选项。

可以根据需求选择需要的库和功能,例如支持的编解码器、格式和协议等。

4. 编译和安装:运行`make`命令编译源代码,根据所使用的平台可能还需要运行其他命令进行安装。

完成了FFmpeg的移植后,我们可以开始使用它进行音频和视频处理。

FFmpeg提供了许多命令行工具,可以进行各种操作,例如转码、剪切、合并和抽取等。

以下是一些常用的FFmpeg命令示例:1.转码:将一个视频文件转换为另一种格式。

`ffmpeg -i input.mp4 output.avi`2.剪切:截取视频的一部分。

`ffmpeg -ss 00:00:10 -i input.mp4 -t 00:00:20 output.mp4`3.合并:将多个视频文件合并为一个。

4.抽取音频:从视频中抽取音频文件。

`ffmpeg -i input.mp4 -vn output.mp3`5.转换音频格式:将音频文件转换为另一种格式。

`ffmpeg -i input.mp3 output.wav`通过使用这些命令和其他一些选项,我们可以实现各种音频和视频处理需求。

FFmpeg还提供了强大的API,可以在自己的应用程序中使用。

API提供了各种功能和选项,可以进行更复杂的音视频处理。

总结起来,FFmpeg是一个功能强大的音视频处理工具,可以进行音频和视频的录制、转换和流传输等。

FFmpeg在Windows系统下的编译

FFmpeg在Windows系统下的编译

下面都是我在网上找到的资料,整合了一下,在自己的机子上也成功的编译,拿出来给大家看看。

在此之前给大家一个网址,里面提到的包差不多都有/index/mingw.aspx包含MinGW - Minimalist GNU for Windows的相关下载包FFmpeg在Windows系统下的编译过程如下:准备MSys+MinGW系统1)安装MSys下载文件:bash-3.1-MSYS-1.0.11-snapshot.tar.bz2msysCORE-1.0.11-2007.01.19-1.tar.bz2(可能会有版本变化,以下同)解压msysCORE-1.0.11-2007.01.19-1.tar.bz2,比如解压到D:\msys(以下内容都使用该路径描述)。

解压bash-3.1-MSYS-1.0.11-snapshot.tar.bz2,产生一个名为bash-3.1的目录,在该目录下有一个子目录名为bin,其他的目录不需要关心。

复制bin目录中的所有文件到D:\msys\bin,提示是否要覆盖sh.exe的时候,选择是。

到“D:\msys\postinstall”目录下执行pi.bat,在出现的提示中输入n回车后,按任意键退出即可。

2)安装MinGW同样是到/project/showfiles.php?group_id=2435下载文件:binutils-2.17.50-20060824-1.tar.gzgcc-core-3.4.5-20060117-1.tar.gzgcc-g++-3.4.5-20060117-1.tar.gzw32api-3.9.tar.gzmingw-runtime-3.12.tar.gz把它们全部解压到D:\msys\mingw。

这里我一开始没成功,编译的时候提示版本过低,所以就简单的直接下了MinGW5.16,安装装,把里面的必要的文件放入D:\msys\mingw。

3)修改“msys.bat”用文本编辑器打开D:\msys\msys.bat,由于打算用MSVC++编译程序,所以需要有.lib 文件才能链接到FFmpeg的库,这些.lib文件可以使用微软的工具链中lib命令产生。

windows下使用MinGW msys编译ffmpeg

windows下使用MinGW msys编译ffmpeg

C++:windows下使用MinGW+msys编译ffmpegFFmpeg是在Linux平台下开发的,但它同样也可以在其它操作系统环境中编译运行,本文介绍的就是在windowsXP下编译FFmpeg。

一准备环境:1 下载mingw 和MSYS去/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 下载yasmffmpeg编译里面的汇编代码需要yasm.exe去官网:/Download.html 下载直接下载:Win32 .exe (for general use on 32-bit Windows)文件名为:yasm-1.1.0-win32.exe3 下载ffmpegffmpeg可以到/releases/ 下载本人选择的是最新版本:ffmpeg-0.8.5.tar.gz(X) 0.10.2版本文件名为:ffmpeg-0.8.5.tar.gz4 下载SDLSDL下载可以到:/download-1.2.php选择:SDL-1.2.14.tar.gz - GPG signed此版本需要自己编译,后面会解释为什么下载该版本,而不下载编译好的SDL-devel-1.2.14-mingw32.tar.gz (Mingw32)5 下载pthreadGC2.dllpthreadgc2.dll是功能强大的处理数字化影视作品编辑软件premiere6运行所需的一个DLL文件。

视频解码中用到的ffmpeg交叉编译技巧

视频解码中用到的ffmpeg交叉编译技巧

视频解码中用到的ffmpeg交叉编译技巧一、简介FFmpeg是一个集录制,转换,音/视频编码解码功能为一体的完整的开源解决方案。

FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。

由于ffmpeg是基于linux开发的,源代码和windows下最常见的visual studio提供的c/c++编译器不兼容,因此不能直接使用msvc++编译,想要使用ffmpeg,需要在windows下配置一个类似Linux 的编译环境,并将ffmpeg编译为二进制库以后,再利用其进行进一步开发。

目前,windows下可直接使用的最新版本是由ffmpeg工程组,于2008年4月份发布的ffmpeg full sdk v3.2。

该sdk尽可能的集成了更多的编解码器。

在应用中,使用该开发包存在2个缺陷,第一,该sdk编译基于ffmpeg r12790,编解码效率上,当前已经有了较大的提升;第二,该开发包包含了很多不需要的编解码器,需要尽可能减少开发包的体积及关联的库的个数。

基于以上需求,需要自己编译出windows下可用动态库及静态库。

使用到的库文件有4个,libavcodec,libavformat,libavutil,libswscale,其中库libavcodec,libavformat用于对媒体文件进行处理,如编解码;libavutil是一个通用的小型函数库,该库中实现了CRC校验码的产生,128位整数数学,最大公约数,整数开方,整数取对数,内存分配,大端小端格式的转换等功能,libswscale主要用于图像格式转换及缩放。

因效率的需要,我们选择了ffmpeg-mt版本,同时通过配置编译尽量减少相关文件的体积。

网上类似编译过程说明较多,但实际编译过程中碰到一些问题,这些问题的解决花费了不少时间,本文档对这一过程进行记录,以便后续维护及学习。

二、编译环境搭建windows下ffmpeg编译环境有多种可选择方案。

windows下基于MinGW编译ffmpeg之初级篇(release v1.0.2)

windows下基于MinGW编译ffmpeg之初级篇(release v1.0.2)

windows 下基于 MinGW 编译 ffmpeg 之初级篇蓝海 <kevin_linux@>文档密级密级 公开 允许在网上共享与传阅备注版本历史版本 1.0.0 1.0.1 1.0.2时间 2013/12/06 2013/12/10 2014/3/21 初始版本 加上例子使用章节备注根据网友使用过程反馈,修改一些语句,同时加上更详细的 截图信息Copyright © 蓝海. All rights reserved.- I -目录1. 2. 3. 4. 5. 6. 7. 8. 9. 前言........................................................................................................................................... 1 软件列表................................................................................................................................... 1 安装 MinGW ............................................................................................................................. 2 配置 PATH ................................................................................................................................. 4 安装 yasm ................................................................................................................................. 5 安装 LIB.EXE.............................................................................................................................. 5 安装 pkg-config......................................................................................................................... 5 安装 SDL.................................................................................................................................... 6 编译安装 FFMPEG .................................................................................................................... 7 10.1. 解码播放视频................................................................................................................ 10 10.2. 转换视频格式,MP4toTS ............................................................................................. 11 10.3. 解码前 1 分钟视频存为 YUV........................................................................................ 11 10.4. 解码并保存一帧为 JPG 图像 ........................................................................................ 11 10.5. 解码并保存一帧为 JPG 图像,带缩放 ........................................................................ 12 10.6. 解码前 30 帧并保存为 GIF 图像 .................................................................................. 12 10.7. 解码前 30 帧并保存为 GIF 图像,带缩放 .................................................................. 13 10.8. 解码播放音频................................................................................................................ 13 11. 参考资料................................................................................................................................. 1410. FFMPEG 小试牛刀 .................................................................................................................... 9Copyright © 蓝海. All rights reserved.- II -windows 下基于 MinGW 编译 ffmpeg 之初级篇蓝海<kevin_linux@>1. 前言FFMPEG 学习真是一件头大的事,首先 FFMPEG 就够大了,没想到它还需要很多外部库 提供相关功能, 比如 H264 编码需要 x264 库, MP3 编码的 mp3lame 库……。

ffmpeg的编译

ffmpeg的编译

ffmpeg的编译全文共四篇示例,供读者参考第一篇示例:FFmpeg是一个开源的跨平台音视频处理工具,它可以进行解码、编码、转码、流媒体处理等多种操作。

FFmpeg支持众多音视频格式,功能强大,使用广泛。

在实际应用中,可能会遇到需要对FFmpeg进行定制编译的情况,以满足自己的需求。

本文将介绍如何编译FFmpeg,并提供一些常见问题的解决方案。

第一步,准备开发环境在编译FFmpeg之前,首先需要准备好开发环境。

FFmpeg的编译过程需要依赖一些开发工具和库文件,这些工具和库文件可以通过包管理工具进行安装。

在不同的操作系统上,具体的安装方法可能有所不同。

在Ubuntu上,可以通过以下命令安装所需的开发工具和库文件:```bashsudo apt-get updatesudo apt-get install build-essentialsudo apt-get install git yasm libx264-dev libx265-dev```第二步,下载FFmpeg源代码接下来,我们需要下载FFmpeg的源代码。

FFmpeg的源代码托管在Git仓库中,可以通过Git工具进行下载。

在命令行中执行以下命令即可下载FFmpeg的源代码:```bashgit clone https:///ffmpeg.git``````bashcd ffmpeg```第三步,配置编译选项在编译FFmpeg之前,需要对其进行配置,配置编译选项。

FFmpeg的配置支持很多参数,可以根据需要进行定制。

通常情况下,我们可以使用以下命令进行配置:--prefix参数指定FFmpeg安装的路径,--enable-gpl参数表示开启GPL许可证的功能,--enable-libx264和--enable-libx265参数表示开启x264和x265编码器的支持。

在配置时,还可以根据实际需要添加其他参数,比如开启其他编码器的支持、开启特定格式的支持等。

Windows下编译ffmpeg库过程

Windows下编译ffmpeg库过程

Windows下编译ffmpeg库过程在window下编译ffmpeg的过程比起Linux下稍微麻烦了些,在这方面走了不少弯路……本编译过程没有调用第三方库,现在特地记录下正确的编译过程。

1.下载最新的ffmpeg:/builds/source/ffmpeg/解压到工作目录……2.准备编译环境MinGW:/projects/mingw/files/点击Download mingw-get-setup.exe,我采用了默认安装,路径C:\MinGW;安装mingw,在管理器里选择必要的gcc、msys等选项至此编译环境基本具备,下边就是配置相关的编译工具。

3.下载最新的yasm:/Download.html选择对应你系统的yasm.exe (我的系统是win7 32位的选择的Win32.exe);将下载的yasm*.exe改名为yasm.exe 放入C盘下/windows/system32/目录下,这样就省去了环境变量的设置。

4.进入mingw安装目录下:C:\MinGW\msys\1.0找到msys.bat文件,记事本打开编辑,在最前边加上一行:call "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"效果如下图:这样做的目的是链接VS,来生成window下的库文件。

上面的路径是对应你装的VS路径,我的环境是VS2008注意:这一行必需处在此文件的最开始处(我把它放到除去rem开头之外的最前面还是不能正常工作,不知道为啥),同时修改你的vc路径,我的是vs2008,所以是9.0,此修改指定vc的vcvars32.bat文件位置并修改它如果是你的os是64位的,还需要对该文件的_WindowsNT 处进行修改,紧跟这一行的下面一行添加:rem Hopefully a temporary workaround for getting MSYS shell to run on x64rem (WoW64 cmd prompt sets PROCESSOR_ARCHITECTURE to x86)if not "x%PROCESSOR_ARCHITECTURE%" == "xAMD64" goto _NotX64set COMSPEC=%WINDIR%/SysWOW64/cmd.exe%COMSPEC% /c %0 %1 %2 %3 %4 %5 %6 %7 %8 %9goto EOF:_NotX64关于64位的部分,我没有试,只不过是直接从说明处到拷贝过来5.准备工作都做好了,接下来就步入正题了:a.进入C:\MinGW\msys\1.0,双击msys.bat启动MSYS,这时候就进入了你比较熟悉的类似Linux环境了,这个环境下允许类似Linux的bash操作,接着进入下载的ffmpeg目录b.在ffmpeg目录下执行:./configure --disable-shared --enable-static --disable-everything --enable-decoder=h264 --enable-memalign-hack^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^(漫长的等待……'|'-_-)这里值得注意的是,--enable-memalign-hack选项是FFmpeg在Windows上编译成功所必须指定的,参数设置的时候貌似有顺序,有可能造成后面make失败。

Windows下FFmpeg编译

Windows下FFmpeg编译

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

本文主要记录Windows 下FFmpeg编译的过程。

1.资源准备准备编译过程所需的软件工具和源代码。

(1). MinGW-MSYS Bundle/projects/mingwbundle/(2). Yasm /Download.html(3). SDL /download-1.2.php(4). X264 /developers/x264.html(5). FFmpeg /download.html2.软件安装(1).MinGW+Msys编译环境安装一种方法是先安装mingw,再通过网络下载的方法来安装mingw和msys软件。

安装好之后,再通过烦琐的配置,来搭建编译环境。

另一种直接安装配置好的MinGW+Msys 系统。

为了降低安装过程的烦琐程度,选择第二种方法,安装MinGW+Msys编译环境。

下载MinGW-MSYS Bundle软件后,直接安装程序,配置安装路径,按照软件默认的安装向导,即可把软件安装好。

安装完成后,需要配置msys.bat,用于启动类似于Linux 环境的终端。

若安装完成后,安装目标”C:\msys\1.0”下没有msys.bat,则需添加msys.bat文件,参考:https:///p/msysgit/source/browse/msys.bat,然后,在msys.bat首行添加命令。

call "C:/Program Files (x86)/Microsoft Visual Studio9.0/VC/bin/vcvars32.bat"(2).安装Yasm下载yasm源码包,解压到E:\ffmpeg1.2\yasm-1.2.0目录。

ffmpeg windows开发环境编译

ffmpeg windows开发环境编译

ffmpeg windows开发环境编译在Windows平台上搭建FFmpeg开发环境并编译,可以参考以下步骤:1. 下载MSYS2安装包:下载MSYS2的安装包。

打开页面后,单击Assets文字以展开安装包列表,然后单击MSYS2的Windows安装包链接,例如msys2-x86_64-20230318.exe。

浏览器开始下载Windows版本的MSYS2安装文件。

2. 安装MSYS2:双击下载好的msys2-x86_64-20230318.exe,根据安装向导的指引一步一步完成安装Windows版本的MSYS2。

3. 配置环境变量:在MSYS2安装过程中,需要设置环境变量。

将以下路径添加到系统环境变量中:```C:\msys64\usr\binC:\msys64\usr\local\bin```4. 下载FFmpeg源码:访问FFmpeg官网下载最新版本的FFmpeg源码。

根据您的操作系统和位数选择相应的版本。

在此示例中,我们选择64-bit Downloads目录下的文件。

5. 配置和编译FFmpeg:1) 创建一个新的项目文件夹,然后将下载的FFmpeg源码解压到该文件夹中。

2) 进入解压后的FFmpeg源码目录,然后运行以下命令以配置环境:```./configure --disable-shared --enable-static --prefix=/usr/local```3) 编译FFmpeg:```make -j4```其中,`-j4`表示使用4个线程进行编译。

4) 安装FFmpeg:```make install```5. 验证编译结果:在命令行中输入以下命令,检查FFmpeg是否成功编译:```ffmpeg -version```如果显示FFmpeg的版本信息,说明编译成功。

至此,FFmpeg开发环境已在Windows平台上搭建并编译完成。

接下来,您可以使用FFmpeg进行视频处理等相关开发任务。

我自己的FFMpeg编译之路

我自己的FFMpeg编译之路

我自己的FFMpeg编译之路为了编译这个东西,快折腾了一个星期了。

期间经历了很多痛苦的过程,今天我把整个过程,以及在这个过程的感悟写下来,以备日后查看,也希望能帮到一些像我一样的兄弟姐妹。

在这一个星期里前前后后加起来总共使用了3中方式编译ffmpeg1. 在基于linux内核的操作系统中编译。

这种方式很简单,也很顺利。

2. 在windows下,采用cygwin编译,这种方法稍微复杂一点。

3. 在windows下,采用MinGW + MSys编译,这种方法是这三个方法中最为复杂的一种。

涉及的东西也最多,花费的时间也最长。

下面就这个三种方法详细介绍一二。

我所选用ffmpeg source code 的版本是0.6,可以以下连接获取。

基于linux内核的操作系统中编译:我所用的操作系统是ubuntu,将下载ffmpeg的源码放在/home 目录下面。

或者你也可以用svn从服务器上checkout ffmpeg的代码。

ubuntu默认情况下是没有安装svn,但是你可以通过一个非常的简单的命令就完成安装,命令是sudo apt-get subversion。

前提是你可以访问因特网。

这个过程大约需要几分钟,具体的时间跟你的网络状况有关系。

打开终端,进入ffmpeg目录。

依次输入以下命令:./configure --enable-memalign-hack --disable-debugmake你也可以将2条命令合成一条,一次性执行完成。

./configure --enable-memalign-hack --disable-debug && make当命令完成之后你就可以在ffmpeg的目录下找到8个可执行程序:ffmpeg.exeffmpeg_g.exeffprobe.exeffprobe_g.exeffplay.exeffplay_g.exeffserver.exeffserver_g.exe每个可执行程序有一个_g的相对应。

ffmpeg window编译

ffmpeg window编译

ffmpeg window编译
在Windows上编译FFmpeg可以按照以下步骤进行:
1. 安装第三方库:在编译FFmpeg之前,需要安装一些第三方库,如MinGW、MSYS、yasm等。

可以从官方网站下载并按照说明进行安装。

2. 获取FFmpeg源代码:可以从官方网站获取最新版本的FFmpeg源代码,也可以从Github上下载。

3. 配置环境变量:将MinGW和MSYS的可执行文件路径添加到系统的Path环境变量中,这样可以在命令行中直接运行MinGW和MSYS的相关命令。

4. 打开MSYS:打开MSYS的命令行终端,进入FFmpeg源代码的目录。

5. 配置:在MSYS命令行终端中输入以下命令进行配置:
```
./configure --enable-shared
```
如果需要编译静态库,可以使用以下命令:
```
./configure --enable-static
```
配置完成后,会生成makefile文件。

6. 编译:在MSYS命令行终端中输入以下命令进行编译:
```
make
```
按下Enter键开始编译,这可能需要一些时间。

7. 安装:编译完成后,在MSYS命令行终端中输入以下命令进行安装:
```
make install
```
完成后,可以在FFmpeg的安装目录下找到生成的可执行文件和库文件。

以上是基本的FFmpeg编译步骤,根据实际需要,可能还需要进行其他的配置和定制编译。

在使用过程中,建议参阅官方文档和相关的编译指南。

ffmpeg及外部库编译详解

ffmpeg及外部库编译详解

在网上看了很多编译详解,都很零散。

经过自己的编译,解决一些BUG,在此分享自己的一些经验... 话不多说了!直接上贴。

第一步:准备编译平台。

需要一个MinGW 和一个MSYS 安装包以及MSYS_DTK.当前最新是版本:到sourceforge下载MinGW5.1.6.exe 下载msysDTK-1.0.1.exe 下载Msys1.0.11.exe 下载按照以上顺序安装:建议:(可选)把MinGw5.1.6 安装到F:/MinGw (为了路径简短起见)把Msys1.0.11 安装到F:/MinGw/Msys(为了方便起见)(有些机器不会在/MinGw/Msys/etc中产生正确的fstab文件,因此确保/MinGw/Msys/etc中具有一个fstab文件内容为:F:/MinGw /minwg 前者为你的MinGw安装目录后面对应MinGw目录)第二步:准备编译工具需要一些编译工具,以便能够编译需要的库。

1.二进制工具(xx.exe文件)pr.exe (在coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2 包的bin目录中)下载(ffmpeg中configure执行需要用到)复制到MinGW/bin中(注意:是MinGW目录中的bin)SDL 工具下载(ffmpeg 需要用到)在包中的四个目录:bin lib include share 一起复制到MinGw 目录下(bin 中包含有SDL.dll 和sdl-config)在sdl-config中修改第一行为prefix=/mingw(参考)unzip.exe 工具[url=unzip-5.51-1.exe]下载[/url] (安装libamrnb libamrwb 需要用到)解压unzip-xxx-bin.zip 后在bin 中复制unzip.exe 到MinGw/Msys/bin 中(注意:是Msys目录中的bin)wget.exe 工具下载(安装libamrnb libamrwb 需要用到)有下载解压后在bin 中拷贝wget.exe 到MinGw/Msys/bin 中(注意:是Msys目录中的bin)git.exe 工具下载(获取x264库需要用到) 有下载安装:Git-1.6.5.1-preview20091022.exe2.源码安装包(需要编译安装的工具包)autoconf 下载automake 下载libtool 下载yasm 下载下载最新版然后解压到Msys目录中的home/Administrator 中(说明:以后需要执行'configure' 'make' 'make install' 命令来安装的xx.tag.gz包都解压到Administrator里以便控制台中方面路劲的输入)包的安装:举例安装autoconf 包在Msys命令行中:cd autoconf 回车(从~ 目录进入autoconf 目录)configure 回车(执行配置文件)make 回车(开始编译)make install 回车(安装)安装automake包:动作同上,只是要进入automake 目录.(cd automake)第三步:准备一个线程库(不准备编译x264的可以跳过)pthread包下载(参考)解压到MinGw/Msys/home/Administrator的pthread中在Msys命令行中:cd pthread 回车make GC 回车然后在pthread中找到pthreadGC.dll 拷贝到MinGw/bin 和MinGw/lib 中...............找到pthread.h 和sched.h 拷贝到MinGw/include 中(注意有个Bug 打开sched.h line:152 和line:154 的两个函数的参数类型pid_t 改成int 这个Bug是自己遇到的,修改并不会影响任何功能,但并没有官方验证)目前这里就配置好所有的编译环境了!以下是支持要编译的编解码库://===== Mp3lame 下载解压到~ 目录(MinGw/Msys/home/Administrator)改名目录为lame在Msys安装:cd lame 回车configure --enalbe-shared 回车make 回车make install 回车//===== faac 和faad2 下载(两个包)faac 安装:(faac-1.28 需要一个补丁faac-1.28.diff )解压到~ 目录(MinGw/Msys/home/Administrator)改名目录为faac把补丁放到faac 目录中在Msys安装:cd faac 回车patch -p1 < faac-1.28.diff 回车bootstrap 回车configure --with-mp4v2 --enalbe-shared 回车(不需要MP4 则第一个参数用--without-mp4v2 代替)make 回车make install 回车faad 安装:(faad2-2.7 需要一个补丁faad2-2.7.diff )解压到~ 目录(MinGw/Msys/home/Administrator)改名目录为faad2 把补丁放到faad2 目录中在Msys安装:cd faad2 回车patch -p1 < faad2-2.7.diff 回车(也可以手动修改,注释掉faad2/frontend/main.c 中line: 34 的#define off_t __int64 )bootstrap 回车configure --with-mp4vip --enalbe-shared 回车(第一个参数可选)configure顺利完成之后在libfaad/Makefile中修改:将AM_CFLAGS = -iquote $(top_srcdir)/include改成:AM_CFLAGS = -I $(top_srcdir)/include(这个是一个Bug修正以免出现:cc1.exe: error: unrecognized command line option "-iquote") make 回车make install 回车//===== amrnb 和amrwb 下载amrnb安装:解压到~ 目录(MinGw/Msys/home/Administrator)改名目录为amrnb 在Msys安装:cd amrnb 回车configure --enalbe-shared 回车make 回车make install 回车amrwb安装:解压到~ 目录(MinGw/Msys/home/Administrator)改名目录为amrwb在Msys安装:cd amrwb 回车configure --enalbe-shared 回车make 回车make install 回车//===== xvidcore 下载解压到~ 目录(MinGw/Msys/home/Administrator)改名目录为xvid在Msys安装:cd xvid/build/generic 回车configure --enalbe-shared 回车make 回车make install 回车//===== H.264下载x264库:在Windows 的控制台中输入:C:/...> cd F:/mingw/msys/home/Administrator 回车(切换路径到Administrator目录)F:/mingw/msys/home/Administrator > git clone git:///vlc.git 这时x264包就会下载到mingw/msys/home/Administrator目录中在Msys安装:cd x264 回车configure --enalbe-shared 回车make 回车make install 回车(有个Bug,安装后在mingw/msys/local/include/x264.h 中line:209 中修改int i_bframe_pyramid; 为int b_bframe_pyramid; 保存)//**************到这里有一些常用的编解码库了下面来编译FFMPEG FFMPEG 下载解压到~ 目录(MinGw/Msys/home/Administrator)改名目录为ffmpeg(注意了,编译x264库需要修改一下ffmpeg的configure把line 1996 :中的x264_encoder_open加上一个x264版本号,可以从F:\MinGw \msys\local\bin中的libx264-xx.dll 得知,这里编译得到的是libx264-88.dll所以把line 1996 :中的x264_encoder_open 改为x264_encoder_open_88,以解决编译x264后,编译ffmpeg 提示libx264 not found.)在ffmpeg目录中新建一个文本文件改名为cml (无扩展名)编辑cml :configure \--enable-ffplay \--enable-static \--enable-memalign-hack \--enable-gpl \--enable-libmp3lame \--enable-libfaac \--enable-libfaad \--enable-libx264 \--enable-nonfree \--enable-libamr-nb \--enable-libamr-wb \--extra-ldflags=-L/usr/local/lib \--extra-cflags=-I/usr/local/include保存.在Msys中输入:cml 回车make 回车make install 回车大功告成!不过xvid不能在ffmpeg编译中使用--enable-shared参数不然会报错,你可以试试,如果可以,那就是我的机器问题!:-)愉快。

ffmpegwindows编译

ffmpegwindows编译

ffmpegwindows编译ffmpeg是一款开源的多媒体处理软件,具有转码、视频处理、流媒体等功能,因其强大的功能,受到了广泛的应用,能够完成大部分视频处理需求。

本文主要介绍ffmpeg在windows系统下的编译过程,以及编译的一些注意事项。

ffmpeg在windows系统下的编译主要需要安装MSYS2,MSYS2是一个完整的编译环境,具有gcc、make、python等编译工具,能够有效的支持ffmpeg的编译。

一般来说,ffmpeg的编译分为两步:第一步,安装MSYS2,可以从官网下载对应版本的MSYS2,然后在windows系统下安装;第二步,下载ffmpeg源代码,从官网下载ffmpeg源代码,放置在MSYS2的指定目录下。

编译之前,还需要安装一些编译所需的库文件,这些库文件可以从官网下载,例如libx264、libxvid、libmp3lame等,这些库文件需要放置在MSYS2的指定目录下。

最后,可以使用MSYS2的编译工具对ffmpeg进行编译,编译完成后,ffmpeg的执行文件就可以生成,并可以在windows系统下运行。

ffmpeg在windows系统下的编译过程有一些注意事项,例如需要确认MSYS2和ffmpeg源代码的版本是否匹配,如果不匹配,则可能会出现一些问题;另外,需要确保安装的库文件版本和ffmpeg的版本是否匹配,如果不匹配,也可能会出现一些问题。

总之,ffmpeg在windows系统下的编译需要安装MSYS2,并下载ffmpeg源代码,并安装编译所需的库文件,最后使用MSYS2的编译工具对ffmpeg进行编译,编译完成后,ffmpeg的执行文件就可以生成,并可以在windows系统下运行。

但是,在编译之前,需要注意一些注意事项,以确保编译过程的正确性。

ffmpeg编译环境搭建

ffmpeg编译环境搭建

Ffmpeg在window下编译环境搭建一.环境搭建方法简介采用MinGW+MSYS搭建环境,搭建方法三两种方法一:安装mingw最新版里面集成msys,下载目录;此方法最简单也最复杂,容易出现组件版本不符合和缺少组件的问题,需另行添加组件。

方法二:先安装Mingw再安装msys,Mingw下载目录同上,msys下载目录:/mingw/MSYS-1.0.10.exe:此方法安装组件版本比较新、全,编译过程不容易出错,但安装目录重复。

方法三:先安装msys 再安装mingw,把mingw安装在msys目录下的mingw 下,这种安装后需要重新指定mingw的安装目录,此安装目录少,编译时简单。

二.环境搭建过程1.方法一安装过程简单,下载好后直接安装就行,过程无特殊要求。

2.方法二先安装mingw再安装msys.,在安装msys的过程中要你指定mingw的安装目录.,mingw的安装没有什么可说的, 就是采用默认安装, 不要更改它的默认目录, c:/mingw. 接下来安装msys.msys安装过程中会问你是否已经安装了mingw, 敲入y然后回车接着让你输入mingw的安装目录, 输入c:/mingw, 注意是反斜扛.,安装结束;方法三:编译过程类似方法二,只是在msys时不输入mingw位置,再mingw编译结束后制定mingw 位置三.Ffmpeg的初步编译Ffmpeg的官方下载地址:/download.html,编译不一定追求最新版,以适合需要为前提,最新版编译成功容易出现未知报错,建议版本在0.9为好。

以下为编译过程在开始菜单中依次找到mingw->msys->msys.打开shell环境.,把需要编译的文件如:lame、ffmpeg等拷贝都mingw的home目录下,在msys中输入cd /c/mingw/msys/home/ffmpeg进入到ffmpeg的安装目录然后输入命令./configure --enable-memalign-hackmakemake install会发现bin目录下生成ffprobe.exe ffmpeg.exe编译好的文件在msys的Bin目录下这时编译出的ffmpeg.exe把常用格式比如:mp4、rmvb、avi、mkv、vob等直接转换为flv,具体命令以及参数设置参考ffmpeg常用命令详解在CMD命令窗口下,转到ffmpeg.exe所在目录输入以下命令高品质:ffmpeg –i原文件路径-ab 128 -ac 1 -ar 22050 -r 25 -qscale 4 –s 分辨率-y 目标文件路径低品质:ffmpeg -i原文件路径-ab 128 -ac 1 -ar 22050 –r 25 -b 512 -qscale 6 –s 分辨率–y 目标文件路径参考文件:/huangxiansheng 1980/article/details/5712003四:Ffmpeg扩展(摘自网络,测试无问题)FFmpegFFmpeg是一套用于录制、转换和流化音频、视频的完整解决方案,其中包含一组叫做libavcodec 的领先的音频、视频编码解码库。

ffmpeg windows mingw 源码编译

ffmpeg windows mingw 源码编译

要在Windows上使用MinGW编译FFmpeg源码,你需要遵循以下步骤:(一)安装MinGW:(二)1.下载MinGW的最新版本。

2.安装时,确保你选择了mingw-gcc和mingw-make。

(三)安装必要的依赖库:(四)1.libiconv:mingw-get install libiconv2.zlib:mingw-get install zlib3.libbz2:mingw-get install libbz24.libxml2:mingw-get install libxml25.libpng:mingw-get install libpng6.libjpeg:mingw-get install libjpeg7.libogg:mingw-get install libogg8.libvorbis:mingw-get install libvorbis9.libtheora:mingw-get install libtheora(五)下载FFmpeg源码:(六)1.你可以从FFmpeg的官方网站或其GitHub仓库下载最新的源码。

(七)解压源码:(八)1.解压你下载的FFmpeg源码到一个目录。

(九)配置编译选项:(十)1.打开命令提示符或终端。

2.转到FFmpeg源码目录。

3.使用configure脚本配置编译选项。

例如,要编译一个静态库版本,你可以使用以下命令:复制代码bash`./configure --enable-static --disable-shared--prefix=/path/to/install`(十一)编译FFmpeg:(十二)1.使用make命令开始编译过程。

这可能需要一些时间,具体取决于你的机器性能。

(十三)安装FFmpeg:(十四)1.使用make install命令将编译好的库和工具安装到你在第5步中指定的目录。

(十五)验证安装:(十六)1.确保所有需要的库都已正确安装,并且FFmpeg工具(如ffmpeg.exe)可以在命令行中运行。

在Windows下编译ffmpeg步骤

在Windows下编译ffmpeg步骤

在windows下编译FFmpeg详细说明1.Mingw的搭建:可参考“mingw安装步骤说明(windows 7系统下安装成功).docx”2.开始编译ffmpeg。

运行“C:\MinGW\msys\1.0\msys.bat”,如下图这是一个类似Linux的shell并且在Windows上运行,就像是在使用一个真正的Linux shell。

不过使用这个shell时需要注意:→目录名使用正斜杠来分割,而不是Windows所使用的反斜杠(比如说要写成"D:/ffmpeg"而不是"D:\ffmpeg")。

→盘符(例如"C:\")可以从根目录处访问(像这样"/C/")。

→文件名或目录名中如果带有空格,必须用双引号括起(例如这样"/C/Program Files",带有双引号)。

下面切换到存放FFmpeg源代码的目录(假如你的代码解压之后的路径是D:\ffmpeg),方法是输入:"cd /D/ffmpeg"。

我的编译文件时在此路径下“F:\test\compileffmpeg\ffmpeg-2.6.3”所以输入:“cd /f/test/compileffmpeg/ffmpeg-2.6.3”接下来要配置FFmpeg,选择编译时包含的库,这里先输入:./configure --enable-shared --disable-static --enable-memalign-hack--enable-memalign-hack选项是FFmpeg在Windows上编译成功所必须指定的下面报错提示丢失libgmp-10.dll从网上下载并拷贝到“C:\MinGW\bin”,因为“C:\MinGW\bin”已经配置在系统环境Path变量中。

再次执行。

请耐心等待,时间比较长。

再次报出错误信息网上的方法:(编译FFMPEG时,出现了ffmpeg yasm not found, use--disable-yasm for a crippled build,是因为FFMPEG为了提高编译速度,使用了汇编指令,如果系统中没有yasm指令的话,就会出现上述的问题。

windows下基于MinGW编译ffmpeg之中级篇(release v1.0.1)

windows下基于MinGW编译ffmpeg之中级篇(release v1.0.1)

windows 下基于 MinGW 编译 ffmpeg 之中级篇蓝海 <kevin_linux@>文档密级密级 公开 允许在网上共享与传阅备注版本历史版本 1.0.0 1.0.1时间 2013/12/12 2014/3/22 初始版本 加上使用示例章节备注Copyright © 蓝海. All rights reserved.- I -目录1. 2. 3. 4. 5. 前言........................................................................................................................................... 1 软件列表................................................................................................................................... 2 特别声明................................................................................................................................... 3 配置 PATH 变量 ........................................................................................................................ 3 第 3 方库编译安装................................................................................................................... 3 5.1. 编译安装 bzip2 ................................................................................................................. 3 5.2. 编译安装 zlib .................................................................................................................... 4 5.3. 编译安装 libiconv ............................................................................................................. 5 5.4. 编译安装 libmp3lame ...................................................................................................... 5 5.5. 编译安装 libfaac ............................................................................................................... 5 5.6. 编译安装 libfdk-aac .......................................................................................................... 6 5.7. 编译安装 libvo-aacenc ..................................................................................................... 6 5.8. 编译安装 libvo-amrwbenc ............................................................................................... 6 5.9. 编译安装 libopencore-amr ............................................................................................... 7 5.10. 编译安装 libx264 .............................................................................................................. 7 5.11. 编译安装 libxavs ............................................................................................................... 7 6. 7. 编译安装 FFMPEG .................................................................................................................... 8 FFMPEG 牛刀再试 .................................................................................................................. 10 7.1. 使用 faac 库转码 MP3 为 AAC ....................................................................................... 10 7.2. 使用 lame 库转码 AAC 为 MP3...................................................................................... 11 7.3. 使用 x264 重编码视频 ................................................................................................... 11 8. 参考资料................................................................................................................................. 11Copyright © 蓝海. All rights reserved.- II -windows 下基于 MinGW 编译 ffmpeg 之中级篇蓝海<kevin_linux@>1. 前言本文基于初级篇的工作之上,如果还没有按初级篇做过的,直接按中级篇来做,会有问 题。

ffmpeg交叉编译到window平台下使用

ffmpeg交叉编译到window平台下使用

FFmpeg是一个开源且跨平台的音视频解决方案,集采集、转码、流式化为一身,项目的libavcodec编解码模块和libavformat媒体格式模块,支持非常非常丰富的编解码格式和容器封装格式,是做媒体相关开发工作必须要掌握和借鉴的一个项目。

定制和编译ffmpeg是做流媒体开发迟早要面对的,linux平台上相对简单,windows平台就比较麻烦了。

本文的目的就是详细介绍下如何基于ubuntu交叉编译环境,编译和定制ffmpeg。

一概述ffmpeg主要是基于linux开发,当然它也支持windows,不过并不支持visual studio系列IDE(因为它使用了大量C99特性,而vs不支持C99),所以要想在windows上使用,必须要通过mingw或cygwin来编译,或者在linux上构建windows交叉编译环境,后者要简单些。

二环境准备1. Ubuntu Linux,本人使用的Ubuntu 11.10,安装在VMware Workstation中2.要有可用的网络,因为之后要在线安装软件包,如果宿主机能上网虚拟机上不了可以将虚拟机连接方式改成NAT3. MinGW编译环境,我们要非常感谢,zeranoe,它做了一个自动下载和编译ffmpeg所需要的mingw及其他工具链的脚本,请到/blog/下载最新的“MingGW-w64 Build Script 2.8.4”。

解压(解压命令为 tar –xvf 加文件名)后新建一个目录把它放进去(本人的目录是/home/haibindev/studio/mingw-w64/),然后打开终端,cd 到MinGW-w64所在目录,执行"chmod +x mingw-w64-build-2.8.4",使这个脚本可以执行。

之后运行"./mingw-w64-build-2.8.4",就可以按照提示来做了。

如果它提示你缺少依赖库,就按照它的提示先安装依赖库,方式是,执行"sudo apt-get install 库名字"。

windows下使用MinGW编译ffmpeg+x265

windows下使用MinGW编译ffmpeg+x265

Windows下使用MinGW编译ffmpeg与x265测试系统:Windows XP SP3 x86 & Windows 8.1 x642014年4月21日luofl19921、准备工作MinGW下载地址:/projects/mingw/files/点选:Installer>>进行下载,完成后开始安装 MinGW,前面的安装设置保持默认,进入到这里后,先在Basic Setup里面选择这样几项:-base -g++ -developer-toolkit如下图:接着在All packages选MSYS里面的 system-builder:选择完毕后,点Installations菜单,选择apply changes,然后确认开始下载这些库(约126个包需要下载)。

下载完成后,界面上会提示完毕,点击close按钮即可。

然后下载yasm,是一个exe文件放到MinGW的安装目录的bin文件夹,重命名为yasm.exe,或者msys/1.0/bin目录下。

下面开始的编译相应库和ffmpeg的操作需要使用MSYS,要修改C:\MinGW\msys\1.0\etc目下的fstab文件,如果不存在fstab,复制一份fstab.sample到当前目录,然后改名为:fstab,再修改其内容为C:/MinGW/mingw /minGW其中前面是MinGW的安装目录,也即为MinGW的安装路径,否则后面编译库的时候会提示缺少头文件。

下面的操作,需要在命令行下完成,不同的是通过msys进入,即运行C:\MinGW\msys\1.0目录下的msys.bat批处理文件,进入一个模拟linux系统的命令行。

如下图,注意切换目录时,相对目录与windows下一致,切换到其他盘时不同,如下图:2、编译ffmpegffmpeg可以到/releases/ 下载,我下载的是最新版本2.2版。

(注意下载的文件后缀名应该是.tar.gz如果下载下来没有这两个点的后缀,请自己加上再解压)或者:https:///FFmpeg/FFmpeg点界面右边的Download Zip下载。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++:windows下使用MinGW+msys编译ffmpeg
FFmpeg是在Linux平台下开发的,但它同样也可以在其它操作系统环境中编译运行,本文介绍的就是在windowsXP下编译FFmpeg。

一准备环境:
1 下载mingw 和MSYS
去/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
去官网:/Download.html 下载
直接下载:Win32 .exe (for general use on 32-bit Windows)
文件名为:yasm-1.1.0-win32.exe
3 下载ffmpeg
ffmpeg可以到/releases/ 下载
本人选择的是最新版本:ffmpeg-0.8.5.tar.gz
文件名为:ffmpeg-0.8.5.tar.gz
4 下载SDL
SDL下载可以到:/download-1.2.php
选择:SDL-1.2.14.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的文件。

直接去三搜索下载就可以了。

二编译步骤
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:\MinGW\msys\1.0\文件夹,使用UltraEdit打开msys.bat文件,在文件的最最前面加入如下一行:
call "D:\Program Files\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat"
其中“D:\Program Files\Microsoft Visual Studio 10.0”为你机器上安装
VS200X或VS2010的目录,我的电脑安装的是VS2010,并且安装在了D盘。

文件修改后保存即可。

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

4 解压ffmpeg 与SDL
ffmpeg-0.8.5.tar.gz 的解压目录您可以直接选择,本人解压到:D:\ffmpeg 中,解压后目录为:D:\ffmpeg\ffmpeg-0.8.5
SDL-1.2.14.tar.tar 解压到D:\ffmpeg\ffmpeg-0.8.5 目录下,解压后的目录结构为:D:\ffmpeg\ffmpeg-0.8.5\SDL-1.2.14
5 编译SDL
双击“C:\MinGW\msys\1.0\msys.bat”,启动“MinGW32”,
切换到SDL目录:D:\ffmpeg\ffmpeg-0.8.5\SDL-1.2.14,切换方法如下:$ cd /d
$ cd ffmpeg
$ cd ffmpeg-0.8.5
$ cd SDL-1.2.14
再执行以下命令:
$ ./configure --prefix=/usr 回车等待…
$ Make 回车等待…
$ make install 回车等待…
编译完成后,在C:\MinGW\msys\1.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:\ffmpeg\ffmpeg-0.8.5,与步骤六相同,只是不在从C:\MinGW\msys\1.0中复制。

6 拷贝编译结果:
C:\MinGW\msys\1.0 到D:\ffmpeg\ffmpeg-0.8.5
bin下的SDL.dll、sdl-config拷贝到bin中
include下的SDL文件夹拷贝到include中
lib下的libSDL.a、libSDL.dll.a、和libSDLmain.a拷贝到lib中7 修改sdl-config配置文件
使用UltraEdit打开D:\ffmpeg\ffmpeg-0.8.5\bin下的sdl-config文件
把prefix=/usr 该成:prefix=c:/mingw
其中:c:/mingw 为mingw的安装路径,请根据你的安装进行修改。

8 编译ffmpeg
双击“C:\MinGW\msys\1.0\msys.bat”,启动“MinGW32”,
切换到SDL目录:D:\ffmpeg\ffmpeg-0.8.5\SDL-1.2.14,
切换方法如下:
$ cd /d
$ cd ffmpeg
$ cd ffmpeg-0.8.5
如果你的“MinGW32”没有关闭,可以直接切换路径到:
D:\ffmpeg\ffmpeg-0.8.5。

再执行以下命令:
$ ./configure --enable-shared --disable-static --enable-memalign-hack
请耐心等待一段时间$ make需要等待很长一段时间,等待编译结束。

为了汇总编译结果,请继续执行以下命令:
$ make install
等待完成,在C:\MinGW\msys\1.0\local中将会生成bin、include、lib等文件夹,其中包含了ffmpeg.exe、ffplay.exe、ffprobe.exe、dll、lib和头文件等。

9 运行测试
直接双击运行”ffplay.exe”,如果提示没有“pthreadGC2.dll”文件,你可以包“pthreadGC2.dll”直接拷贝到当前目录,也可放到系统目录
C:\WINDOWS\system32中。

相关文档
最新文档