ffmpeg的编译大全

最近互联网视频共享的网站很火,公司也想搞类似的网站,初步是用fms+ffmpeg形式
fms负责在线录制,播放,ffmpeg则在后台处理上传的资源转换成一定的格式。
为了让ffmpeg支持的格式尽量多,所以特把我的编译笔记分享一下
环境:redhat as4
1。首先获取ffmpeg
很多人找不到怎么下载,其实之前ffmpeg可以通过cvs下载,不过最近他已经换成了更加强大的svn
如何使用SVN我这里不再介绍,网上还有大量的安装和使用的文章可以借鉴,这里简单罗列几个SVN辅助的软件:
SubVersion,从 http://subversion.tigris.org/ 下载,支持linux,我们这里就装这个
TortoiseSVN,从 http://tortoisesvn.tigris.org/ 下载,是很不错的SVN客户端程序,为windows外壳程序集成到windows资源管理器和文件管理系统的Subversion客户端,用起来很方便,commit动作变得就像Winrar右键压缩一样方便。
ok,那我们先装subversion,记住最好之前装过apr和apr-util,在apache.org网站能下到
wget http://subversion.tigris.org/downloads/subversion-1.3.2.tar.gz
tar zvxf subversion-1.3.2.tar.gz
cd subversion-1.3.2
./configure --with-apr=/usr/local/apr-httpd --with-apr-util=/usr/local/apr-util-httpd/
make
make install
到此,我们就可以通过svn命令获取最新的ffmpeg了
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
你会发现在你所在的目录,自动出现一个ffmpeg的目录,就是你下载的源代码。
我们还不能这么快编译ffmpeg,应该如果要让ffmpeg支持更多格式的转换,还需做一些前期工作
2.支持mp3,linux当然是lame,下载解压
cd lame-3.96.1
./configure --enable-shared --prefix=/usr
这里推荐尽量装在/usr下,默认是装在/usr/local下。这样ffmpeg编译都能顺利的找到库文件
3.支持Ogg Vorbis:
as4自带相应的rpm包,你可以安装一下如下rpm包
libvorbis, libvorbis-devel,libogg, libogg-devel
4.支持xvid x264,现在最流行的两种高质量的压缩格式
xvid的编译安装
wget http://downloads.xvid.org/downloads/xvidcore-1.1.0.tar.gz
tar zvxf xvidcore-1.1.0.tar.gz
./configure --prefix=/usr
make
make install
x264的获取同样是采用svn方式,看来svn取代cvs不远了
svn co svn://svn.videolan.org/x264/trunk x264
cd x264
./configure --prefix=/usr --enable-shared
make
make install
5.AC3和dts编码的支持
as4系统似乎已经支持ac3编码,编译的时候只要加--enable-a52 --enable-gpl参数就行
libdts编译参数
./configure --prefix=/usr
make
make install
6.mpg4 aac格式支持,由于服务器还针对手机用户服务,所以,类似aac,mpg4铃声格式的支持,我们也得做。这里我们安装faad2和faac就行
下载请到http://www.audiocoding.com/modules/mydownloads/
FAAD2的编译
cd faad2
autoreconf -vif
./configure --prefix=/usr --with-mp4v2 --enable-shared
make
make install
faac的编译
cd faac
chmod +x bootstrap
./bootstrap
./configure --prefix=/usr --with-mp4v2 --enable-shared
make
make install
7.支持3gp格式,这也是现在好多手机支持的格式,因为手机用户是我们的主要用户,所以也得支持编译
编译的时候加上--enable-amr_nb --enable-amr_wb参数就行,根据编译系统的提示,所以我们得下载一
些编译3gp所需得文件。
wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip
解压以后把里面的文件都拷贝到libavcodec/amrwb_float
wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip
解压以后把里面的文件都拷贝到libavcodec/amr_float
好了,基本ffmpeg支持的格式,我们基本都做好前期准备了,下面是ffmpeg的编译
./configure --prefix=/usr --enable-gpl --enable-shared --enable-mp3lame --enable-amr_nb --enable-amr_wb --enable-amr_if2 --enable-libogg --enable-vorbis --enable-xvid --enable-a52 --enable-a52bin --enable-faadbin --enable-dts --enable-pp --enable-faad --enable-faac --enable-x264 --enable-pthreads --disable-ffserver --disable-ffplay
make
make install
补充1:
关于3gp的编译,如果大家要编译--enable-amr_nb-fixed,那就不能跟--enable-amr_nb同时编译,我不大清楚这两者到底有什么区别,似乎fixed是修正版,管他呢,编译的方法:
wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.073/26073-510.zip
解压以后把里面的文件都拷贝到libavcodec/amr目录下
修改libavcodec/amr/makefile 找到CFLAGS = -Wall -pedantic-errors -I. $(CFLAGS_$(MODE)) -D$(VAD) 换成CFLAGS = -Wall -I. $(CFLAGS_$(MODE)) -D$(VAD) -DMMS_IO
整体编译参数就是
./configure --prefix=/usr --enable-gpl --enable-shared --enable-mp3lame --enable-amr_nb-fixed --enable-amr_wb --enable-amr_if2 --enable-libogg --enable-vorbis --enable-xvid --enable-a52 --enable-a52bin --enable-dts --enable-pp --enable-faad --enable-faadbin --enable-faac --enable-x264 --enable-pthreads --disable-ffserver --disable-ffplay
make
make install
补充2:
有朋友说在当在cpu是x86的情况下,不能编译过去,我这里没发生过这情况,如果你真编译不过去,可以试着加上cpu=cpu
ok,一个强大的ffmpeg编译好了,不过目前管方的ffmpeg还不支持wma9和rmvb,不过网上有很多解决方法,大家去自己找找。

ffmpeg的编译大全相关推荐

  1. ffmpeg的编译(for x86,for arm)安装及使用(网络资料整理)

    ffmpeg编译及使用 1 ffmpeg介绍  ffmpeg是音视频的分离,转换,编码解码及流媒体的完全解决方案,其中最重要的就是libavcodec库.它被mplayer或者xine使用作为解码器. ...

  2. 【ffmpeg】编译时报错:error: undefined reference to `av...

    1.问题描述 昨天使用ffmpeg库编译demo一切正常,今天再次链接ffmpeg库时报了一堆错误: error: undefined reference to `av_frame_alloc()' ...

  3. ffmpeg库编译加文字_ffmpeg第三方库编译记录

    最近在研究ffmpeg的编译,之前使用的Ubuntu,需要安装虚拟机,非常麻烦,所以后来改研究在Windows平台编译. 一开始遇到很多挫折,参考了网上很多的帖子,但要么不全要么内容已过期,经过我的反 ...

  4. golang直接调用ffmpeg预编译类库(windows)

    MinGW介绍 MINGW(Minimalist GNU on Windows)是一个可以在windows下编译Linux程序的仿真linux编译环境,他提供了linux下的C.C++头文件.系统库和 ...

  5. FFmpeg常用命令大全,并简单封装

    1.ffmpeg使用语法 命令格式: ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件] ffmpeg [[options][`-i' input_file]]- {[op ...

  6. ffmpeg qsv 编译

    ffmpeg 的编译一直困扰很长时间,平时一直是直接用官网的ffmpeg builds库,但是设计到ffmpeg的qsv硬解没办法只能自己编译,感激参考博客https://blog.csdn.net/ ...

  7. golang直接调用ffmpeg预编译类库(windows)已更新

    MinGW介绍 MINGW(Minimalist GNU on Windows)是一个可以在windows下编译Linux程序的仿真linux编译环境,他提供了linux下的C.C++头文件.系统库和 ...

  8. ffmpeg库编译加文字_使用ffmpeg库编译错误及解决办法

    一.FFmpeg源代码下载与编译 # wget http://www.ffmpeg.org/releases/ffmpeg-0.5.13.tar.bz2 # tar -jxvf ffmpeg-0.5. ...

  9. window下ffmpeg的编译

     1.mingw和msys编译环境安装 从网上下载mingw-get-inst-20120426.exe,运行在选择组件中选择"C++complier","msys ...

最新文章

  1. TCP握手--(HTTP权威指南学习笔记)
  2. 3.2 神经网络表示-深度学习-Stanford吴恩达教授
  3. parted如何将磁盘所有空间格式化_linux下大于2T的硬盘格式化问题
  4. IAR stm8 调试时无法看到局部变量解决
  5. Mysql更新字段中部分数据的方法
  6. php soap proxy host,php-PHP soap Could not connect to host
  7. Python——程序设计方法
  8. python语言程序设计实践教程答案上海交通大学_计算机二级教程 Python语言程序设计 第5章基本数据类型...
  9. curl命令查询IP和运营商
  10. JavaScript 对象大全
  11. r语言echarts画箱线图_echarter: Echarts的R语言接口
  12. 乘方计算机在线应用,乘方开方计算器v1.2免费版
  13. op 分析 这个绝对值电路OP1是怎么工作的?
  14. [C语言]Pow函数的实现
  15. certificate has expired
  16. Mac装机必备之拯救歌荒,好用的五款Mac音乐播放器推荐
  17. 贪吃蛇大作战ai_二 贪吃蛇大作战!
  18. Linux服务器搭建SVN版本管理工具
  19. 艾永亮:分析儿童智能手表市场,为什么品牌只有小天才和其他?
  20. 计算机技术与软件专业,计算机技术与软件专业技术.pdf

热门文章

  1. 边工作边刷题:70天一遍leetcode: day 97-2
  2. UESTC_秋实大哥与花 2015 UESTC Training for Data StructuresProblem B
  3. node.js Lordofpomelo点击登录(login)终端提示成功,页面不跳转无反应
  4. java面向对象:关键字 —(17)
  5. Myeclipse连接Mysql数据库时报错:Error while performing database login with the pro driver:unable...
  6. Effective C++ 条款11:在operator=中处理自我赋值
  7. [BZOJ3545][ONTAK2010]Peaks
  8. Java Virtual Machine
  9. poj2431 Expedition
  10. 封装 oschina.net 表情选择