FFmpeg是一个开源免费跨平台的视频和音频流项目,它提供了录制、转换以及流化音视频的完整解决方案。本文作者将尝试使用该库实现一个可适应复杂网络环境的,

支持标准rtsp协议的流媒体服务器。由于Visual Studio提供的C/C++编译器对C99标准的不兼容,因此它不能直接使用MSVC++编译,本文采用在Windows下配置一个类

似Linux的编译环境的方式编译ffmpeg源码。

1、准备工作:

先把下面四个软件下载下来。

1)MinGW-MSYS Bundle http://sourceforge.net/projects/mingwbundle/

2) SDL http://www.libsdl.org/download-1.2.php  注意:在此环境下2.0.3版本的源码编译会有问题,不推荐。

3)yasm http://yasm.tortall.net/Download.html

4)FFmpeg http://www.ffmpeg.org/download.html

2、安装MinGW-MSYS Bundle软件

MinGW-MSYS Bundle软件同时包含了MinGW和MSYS,不需要连接网络进行安装,按照软件默认的安装向导,一路Next,把软件安装好。

安装好后会在桌面生成一个快捷方式,指向文件"C:\Program Files\MinGW-MSYS\msys.bat"。双击启动该控制台,后面的操作都将在此控制台下完成。

3、安装SDL

把SDL源码解压缩到F:\Work\ffmpeg-2.4\SDL-1.2.15目录。进入SDL目录,分别执行

./configure --prefix=/usr/local/SDL

make

make install

完成SDL的安装。

SDL编译完成之后,生成的bin文件、include文件、lib文件存放在C:\msys\1.0\local\SDL目录下。

通过下面命令导入SDL环境变量.

export PATH="$PATH:/usr/local/SDL/bin:/usr/local/SDL/include:/usr/local/SDL/lib"

否则,在执行ffmpeg configure时,SDL support项显示为no.(注:mingw默认根目录对应与windows下的C:\msys\1.0\目录,可以通过echo $PATH查看当前的系统路径)

4、安装yasm

把yasm源码包(在yasm官网下载了好久下载不了,每次下载到一半就断了,后来在csdn上下载的)解压到F:\Work\ffmpeg-2.4\yasm1.2.0目录。

进入yasm目录,分别执行:

./configure --prefix=/usr/local/yasm

make

make install

并通过下面命令导入yasm环境变量。

export PATH="$PATH:/usr/local/yasm/bin"

5、安装ffmpeg

把ffmpeg源码(ffmpeg-2.4.tar.bz2)解压到F:\Work\ffmpeg-2.4\ffmpeg-2.4,进入ffmpeg代码目录, 分别执行下面命令:

编译为静态库:./configure --enable-static --enable-memalign-hack  --prefix=/usr/local/ffmpeg2.4或

编译为动态库:./configure --enable-shared --enable-memalign-hack  --prefix=/usr/local/ffmpeg2.4

make 注意:此处可能会出现类似unable to rename ffplay.exe:reason file exists错误,将360卫士退出后即可解决。

make install

编译完成后,在C:\msys\1.0\local\ffmpeg2.4目录下的bin、include和lib文件夹下可以看到编译结果。静态库是以 .a 为后缀的文件,共享库是以 .dll为后缀的文件。

此时就可以在控制台下用ffplay.exe Wildlife.wmv命令播放视频文件,

或者用ffplay.exe rtsp://admin:12345@192.168.10.76:554命令播放网络流数据了。

ffmpeg学习(一)——在window7下编译ffmpeg的更多相关文章

  1. FFmpeg 学习(二):Mac下安装FFmpeg

    一.安装ffmpeg 分为两种安装方式: 1. 命令行安装 brew install ffmpeg 2. 下载压缩包安装 去 http://evermeet.cx/ffmpeg/ 下载7z压缩包,解压 ...

  2. linux下编译ffmpeg 引入外部库x264

    Found no assembler Minimum version is nasm-2.13 If you really want to compile without asm, configure ...

  3. 在Windows下编译FFmpeg详细说明

    MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...

  4. Android 环境下编译FFmpeg

    Android 环境下编译FFmpeg 开发环境:Ubuntu 12.04.2 LTS , android-sdk-linux, android-ndk-r8e 一 .X264 编译 1.    X2 ...

  5. Linux下编译ffmpeg并用GDB调试

    1.在Ubuntu界面上调处命令行界面,最方便的方式是使用快捷键Ctrl+Alt+T. 2.安装SDL SDL是一个开源的多媒体开发库,可以设置图像和视频的绘制等操作.如果不安装SDL,FFMPEG将 ...

  6. ffmpeg windows下编译ffmpeg

    windows下编译ffmpeg 今天由于工作需求需重新编译ffmpeg,百度,goole了一大堆,看眼花缭乱的,但几乎都是三种方案,大部分都是直接转发,一字不漏,错误的缺文件的还是照转,可是问题都大 ...

  7. VoIP应用在Ubuntu 14.04下编译FFmpeg libX264及PJSIP

    PJSIP是一个开源的SIP协议栈.它支持多种SIP的扩展功能,可说算是最目前流行的SIP协议栈之一了.  它实现了SIP.SDP.RTP.STUN.TURN和ICE.PJSIP作为基于SIP的一个多 ...

  8. osg for android学习之一:windows下编译(亲测通过)【转】

    1. 首先需要一个OSG for android的环境 (1)NDK 现在Eclipse 对NDK已经相当友好了,已经不需要另外cygwin的参与,具体可以参考 Android NDK开发篇(一):新 ...

  9. ffmpeg(2.6) rockplayer android 下编译 小记.

    最近因为一些需求,开始学习 ffmgeg 在android 上使用. 使用的环境: 1,VMware V8 虚似机 安装的 FedoraV18 系统.(下载地址,请baidu),虚似机,最好有20-3 ...

随机推荐

  1. svn 技巧

    参考:https://blog.csdn.net/wlccomeon/article/details/20398923

  2. 跟我学算法-tensorflow 实现卷积神经网络

    我们采用的卷积神经网络是两层卷积层,两层池化层和两层全连接层 我们使用的数据是mnist数据,数据训练集的数据是50000*28*28*1 因为是黑白照片,所以通道数是1 第一次卷积采用64个filt ...

  3. 横向文本框 cursor:pointer 出现手型

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. C# MemoryStream先写后读的奇怪现象

    static void Main(string[] args) { MemoryStream ms = new MemoryStream(); BinaryWriter bw = new Binary ...

  5. 2013年最后的收成:avalon1.0正式发布

    大半年前我就说过,MVVM是前端究极的解决方案,因此之后我大多数时间都在折腾avalon,成立了专门的QQ群与感兴趣的一起讨论.感谢第一批吃螃蟹的人,avalon发展得很快,GITHUB上的贡献人数达 ...

  6. hadoop之HDFS学习笔记(二)

    主要内容:hdfs的核心工作原理:namenode元数据管理机制,checkpoint机制:数据上传下载流程 1.hdfs的核心工作原理 1.1.namenode元数据管理要点 1.什么是元数据? h ...

  7. git的基础操作-入门

    本文是根据廖雪峰的git教程写的笔记:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b0 ...

  8. python将url转换成二维码

    准备环境 python生成二维码,需要依赖包qrcode和PIL(二维码的实质就是一个url.) python3安装PIL:pip install PIL python2安装PIL:pip insta ...

  9. istview android:cacheColorHint,android:listSelector属性作用(转)

    原文ListView是常用的显示控件,默认背景是和系统窗口一样的透明色,如果给ListView加上背景图片,或者背景颜色时,滚动时listView会黑掉, 原因是,滚动时,列表里面的view重绘时,用 ...

  10. php闭包bindTo方法用法

    从手册知道,Closure::bindTo — 复制当前闭包对象,绑定指定的$this对象和类作用域. 创建并返回一个 匿名函数, 它与当前对象的函数体相同.绑定了同样变量,但可以绑定不同的对象,也可 ...