最近在研究ffmpeg的编译,之前使用的Ubuntu,需要安装虚拟机,非常麻烦,所以后来改研究在Windows平台编译。

一开始遇到很多挫折,参考了网上很多的帖子,但要么不全要么内容已过期,经过我的反复试验或研究,最终搞定了。在此记录一下,也希望能对编译ffmpeg的朋友们有所帮助。

首先安装Mingw和Msys平台,可以参考我其他几篇转载的帖子,基本都不会有问题

然后从ffmpeg官网下载源码,可以选择最新的Git测试版或稳定版(我下载的是ffmpeg-1.1),编译方式都大同小异,如果不需要第三方库的话,编译选项如下(shared和static只能有一个为enable):

./configure --enable-static --disable-shared --enable-memalign-hack --arch=x86 --target-os=mingw32 --pkg-config=pkg-config --enable-runtime-cpudetect --disable-debug --enable-pthreads

make

make install

下面介绍各种第三方库的编译。为了方便编译,所有库均先解压到[mingw]/msys/1.0/home/[username]根目录,然后在mingw shell中cd命令定位到库文件夹下。

X264

编译安装:

./configure --enable-win32thread

make

make install

cp -iv x264.h x264_config.h /mingw/include

cp -iv libx264.a /mingw/lib

cp -iv x264.pc /mingw/lib/pkgconfig

ffmpeg编译参数:--enable-gpl --enable-libx264

LAME 3.99.5

编译安装:

./configure --enable-export=full --enable-static --disable-shared --disable-frontend

make

make install

ffmpeg编译参数:--enable-libmp3lame

librtmp 2.3

http://rtmpdump.mplayerhq.hu/,下载rtmpdump-2.3.tgz(网上有帖子说是rtmpdump-2.3-windows.zip,但我下载了,里面都没有makefile)

librtmp依赖于zlib和openssl,所以要先编译两个库,见下面:

Zlib 1.2.7

http://zlib.net/,下载zlib-1.2.7.tar.gz

make -f win32/Makefile.gcc

cp -iv zlib1.dll /mingw/bin

cp -iv zconf.h zlib.h /mingw/include

cp -iv libz.a /mingw/lib

cp win32/Makefile.gcc Makefile.gcc

ffmpeg编译参数:--enable-zlib

OpenSSL 1.0.1

http://www.openssl.org/,下载openssl-1.0.1c.tar.gz

./configure mingw --prefix=`pwd`/win32libs -DL_ENDIAN -DOPENSSL_NO_HW

make

make install

编译完成后,把当前目录的win32libs子文件夹下的include和lib分别拷贝到mingw32,以供后面librtmp使用

注意:openssl的编译需要在安装Mingw时包含Perl 5环境,如果没有的话,可到网上下载(我用的是5.16.2版,见http://www.cpan.org/src/README.html),下载后编译参数如下:

./Configure -des -Dprefix=$HOME/localperl

make

make test

make install

ffmpeg编译参数:--enable-nonfree --enable libopenssl

librtmp的编译命令如下:

make SYS=mingw

make SYS=mingw install

注意:编译ffmpeg时会提示“ERROR:   librtmp not found”错误,主要是因为一些library没链接好,不知道是否为ffmpeg的Bug。解决办法是在configure文件中“enabled librtmp”一行最后要添加“ -lwinmm -lwsock32 -lgdi32”

ffmpeg编译参数:--enable-librtmp

xvidcore 1.3.2

http://www.xvid.org,下载xvidcore-1.3.2.tar.gz

编译安装:

cd xvidcore/build/generic

./configure --prefix=/mingw

执行到这里后,搜索xvidcore/build/generic 目录下面所有文件(我的版本是platform.inc中有两处)中的 -mno-cygwin 这个选项, 这个选项已经不被GCC支持,全部删除后继续。

make

make install

cp -iv \=build/xvidcore.dll.a /mingw/lib/libxvidcore.dll.a

ffmpeg编译参数:--enable-libxvid

libgsm 1.0.13-3

编译安装:

make

mkdir /mingw/include/gsm

cp inc/gsm.h /mingw/include/gsm

cp lib/libgsm.a /mingw/lib

ffmpeg编译参数:--enable-libgsm

libogg

供libvorbis和libtheora用

解压,编译安装:

./configure –prefix=/olibs –disable-shared

make

make install

LIBVorbis 1.3.3

编译安装:

./configure

make

make install

ffmpeg编译参数:--enable-libvorbis

LIBTheora 1.1.1

http://xiph.org/downloads/,下载libtheora-1.1.1.tar.bz2

编译安装:

./configure

make

make install

ffmpeg编译参数:--enable-libtheora

LIBSpeex 1.2rc1

./configure

make

make install

ffmpeg编译参数:--enable-libspeex

加入以上第三方库以后,在ffmpeg中就可以下面的参数进行编译:

./configure --enable-static --disable-shared --enable-memalign-hack --arch=x86 --target-os=mingw32 --pkg-config=pkg-config --enable-runtime-cpudetect --disable-debug --enable-pthreads --enable-gpl --enable-bzlib --enable-libx264 --enable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libxvid --enable-zlib--enable-openssl --enable-librtmp --enable-nonfree --enable-libspeex

make

make install

ffmpeg库编译加文字_ffmpeg第三方库编译记录相关推荐

  1. 20个必不可少的Python库也是基本的第三方库(转载)

    20个必不可少的Python库也是基本的第三方库 读者您好.今天我将介绍20个属于我常用工具的Python库,我相信你看完之后也会觉得离不开它们.他们是: Requests.Kenneth Reitz ...

  2. python升级第三方库_python一键升级所有第三方库

    import pip from subprocess import call for dist in pip.get_installed_distributions(): call("pip ...

  3. python怎么导入第三方库完整教程_Python 安装第三方库教程

    Python是一门优雅的语言,简洁的语法,强大的功能.包含丰富的第三方库,那么问题来了,如何安装这些第三方库(包)呢? 我的电脑:Windows 764位 Python IDE软件:PyCharm 2 ...

  4. ffmpeg库编译加文字_我自己的FFMpeg编译之路

    为了编译这个东西,快折腾了一个星期了.期间经历了很多痛苦的过程,今天我把整个过程,以及在这个过程的感悟写下来,以备日后查看,也希望能帮到一些像我一样的兄弟姐妹. 在这一个星期里前前后后加起来总共使用了 ...

  5. ffmpeg库编译加文字_1.编译ffmpeg库

    1.下载ffmpeg #!/bin/bash source="ffmpeg-4.1" if [ ! -r $source ] then curl http://ffmpeg.org ...

  6. 20个必不可少的Python库也是基本的第三方库

    引用: https://www.cnblogs.com/jiangchunsheng/p/9275881.html 读者您好.今天我将介绍20个属于我常用工具的Python库,我相信你看完之后也会觉得 ...

  7. ubuntu导入第三方库_1.Ubuntu目录与第三方库

    1.Ubuntu目录 一./:目录属于根目录,是所有目录的绝对路径的起始点,Ubuntu 中的所有文件和目录都在跟目录下. 二./etc:(and so on的意思,来源于法语)此目录非常重要,绝大多 ...

  8. python库源码分析_python第三方库Faker源码解读

    源码背景 Faker是一个Python第三方库,GITHUB开源项目,主要用于创建伪数据创建的数据包含地理信息类.基础信息类.个人账户信息类.网络基础信息类.浏览器信息类.文件信息类.数字类 文本加密 ...

  9. python语言的第三方库_常用的Python第三方库

    今天公司停电,没上班.跑上来更新个博客,跟大家分享一下我常用的几个第三方 Python 库.Python 语言之所以能够如此流行,除了本身内置许多程序库来保障快速开发之外,目不睱接的第三方库也是一大主 ...

最新文章

  1. 如何利用Partitioner将消息路由到分区?
  2. php gif 透明,解决PHP剪切缩略图生成png,gif透明图时,黑色背景问题
  3. 迷惑!博士生发Nature造假,怕被调查扔掉实验室万元电脑
  4. ASP.NET企业开发框架IsLine FrameWork系列之十二--使用Session、Cookie与安全支持
  5. css 语音,纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
  6. ASP经典分页类(改良后的分页类主要是显示属性)
  7. Mysql查询结果导出为Excel的几种方法
  8. 浮点错误是什么意思_Excel函数计算常见错误值,都是什么意思
  9. Google笔记本迈向烂笔头
  10. 计算机安装系统说明,电脑操作系统安装方法-详细图解说明-简单安装Windows系统...
  11. 基于qgis和arcgis进行CAD转GIS操作
  12. 2、Ubuntu下安装Vivado下的下载器驱动 Digilent 版本
  13. Final Cut Pro X无法导入自家的MOV格式,解决方法。
  14. doom3的UI系统
  15. C语言基础级——标准输入和输出
  16. 网线 绿灯长亮 黄灯不亮
  17. iphonex计算机隐藏功能,iPhoneX如何隐藏小白条 iPhoneX隐藏小白条方法【步骤介绍】...
  18. 企业数字化转型的步骤是什么?
  19. win10找不到oracle11g客户端,win10操做系统下oracle11g客户端/服务端的下载安装配置卸载总结...
  20. 网易高工手打:中高级前端必须注意的40条移动端H5坑位指南

热门文章

  1. Linux man 使用详解(转)
  2. chmod 是一条在Unix系统中用于控制用户对文件的权限的命令
  3. [xmlpull]XmlPull常见错误
  4. 【gitlab】gitlab快速部署教程
  5. lzg_ad:rundll32.exe进程详述
  6. 字符串面试题(一)— 字符串逆序
  7. NSOperation的使用细节 [1]
  8. 《C++语言基础》程序阅读——和对象找感觉
  9. 对话Linus Torvalds:大多黑客甚至连指针都未理解
  10. Type对象获得泛型类型的两个扩展方法