Linux下编译FFMpeg

环境:RedHat AS4

  1。首先获取ffmpeg

  通过svn下载:

  从 http://subversion.tigris.org下载SVN客户端程序。

  先装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
  make ; make install

  这里推荐尽量装在/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 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/ar ... 6.204/26204-510.zip

  解压以后把里面的文件都拷贝到libavcodec/amrwb_float

  wget http://www.3gpp.org/ftp/Specs/ar ... 6.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/ar ... 6.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

  补充3:

  对于rm、wmv可以用wmplayer提供的Mencoder来处理.

 

原文地址 http://www.5dlinux.com/article/4/2007/linux_1373.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455486.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文笔记 Aggregated Residual Transformations for Deep Neural Networks

这篇文章构建了一个基本“Block”,并在此“Block”基础上引入了一个新的维度“cardinality”(字母“C”在图、表中表示这一维度)。深度网络的另外两个维度分别为depth(层数)、width(width指一个层的channel的数目)。 首…

matlab 归一化_机器学习中如何用Fscore进行特征选择(附Matlab代码)

作者:kervin编辑:阿吉 目前,机器学习在脑科学领域的应用可谓广泛而深入,不论你是做EEG/ERP研究,还是做MRI研究,都会看到机器学习的身影。机器学习最简单或者最常用的一个应用方向是分类,…

Java笔记05-Collection、泛型、迭代器

Java笔记05-Collection、泛型、迭代器 【Collection、泛型】 主要内容 Collection集合迭代器增强for泛型 第一章 Collection集合 1.1 集合概述 在前面基础班我们已经学习过并使用过集合ArrayList ,那么集合到底是什么呢? 集合:集合是java中提供的一种容器&a…

IOS安装CocoaPods完整流程

作为一个底层系统大菜鸟,又搞过几年ios来说,安装一个CocoaPods是一件蛋痛的事~ 说懂又懂,说不懂又不懂. 由于安装过程比較复杂,步骤较多,而网上教程又比較零散,并且有一些是扯蛋的,所以本篇文章主要从头到位依据自身安装经历记录每一条终端指令,至于里面的原理和一些概念性的东…

重装TCP/IP

在Windows XP的网络组件列表里,Internet 协议 (TCP/IP)的"卸载"按钮是灰色不可选状态。这是因为传输控制协议/Internet 协议 (TCP/IP) 堆栈是 Microsoft XP/ 2003 的核心组件(TCP/IP协议是Windows XP的默认协议),不能删除。所以Windows XP不允许卸载TCP/I…

linux 修改时区_教你在Centos8中更改时区

对于许多与系统相关的任务和进程,使用正确的时区是必不可少的。例如,cron守护进程使用系统的时区执行cron作业,日志文件中的时间戳基于同一系统的时区。环 境CentOS 8检查现在的时区timedatectl是一个命令行实用程序,允许您查看和…

UVA12511 - Virus(DP+最长公共上升子序列)

题目链接: https://vjudge.net/problem/UVA-12511 题目大意: 给定两个序列,求出两个序列的最长公共上升子序列(严格上升)。 解题过程: 比赛的时候没有做出来,非常咸鱼的一场比赛,当时…

Java笔记06-Map集合

Map集合 学习目标 能够说出Map集合特点使用Map集合添加方法保存数据使用”键找值”的方式遍历Map集合使用”键值对”的方式遍历Map集合能够使用HashMap存储自定义键值对的数据能够使用HashMap编写斗地主洗牌发牌案例 Map集合概述 啥也不用说,Map集合就相当于python中的字典…

理解什么是前后端分离

HTML、CSS、JS。 AJAX或Fetch。 学习一个前端的框架, React或者Vue或者Angularjs2都可以。 学会一个前端的路由框架, 如React-Router或者Vue-Router。 在学会3的基础上你肯定已经搭建好前端的开发环境了,所有和后端的交互走AJAX或者Fetch…

帧间、帧内像素块预测

一、像素块预测 H.264/ AVC标准中的基本预测技术是基于块,而不是基于对象的。它的编码器是利用混合的编码方案来提高编码效率,这些方案包括高级的预测技术和有效熵编码技术。在运动预测中它使用不同的块的大小进行预测,以树结构的方式来组织…

高性能mysql 第10章 复制

复制功能不仅能够构建高可用的应用,同时也是高可用性,可扩展性,灾难恢复,备份以及数据仓库等工作的基础。 mysql支持两种复制方式:基于语句的复制和基于行的复制。基于语句的复制(也成为逻辑复制&#xff0…

vb6在后台将窗体保存到图片_如何将寺库网多个商品图片一键分类保存到一个目录...

寺库网是全球最大的奢侈品网上在线购物平台,那么我们怎样可以从寺库网上一键批量采集到多个宝贝商品图片,并分类保存到电脑呢?今天小编给大家带来一款专业电商图片链接采集软件【载图助手】,它支持平台高达141个,均可支…

Java笔记07-List、Set、数据结构、Collections

Java笔记07-List、Set、数据结构、Collections 主要内容 数据结构List集合Set集合Collections 第一章 数据结构 2.1 数据结构有什么用? 当你用着java里面的容器类很爽的时候,你有没有想过,怎么ArrayList就像一个无限扩充的数组&#xff…

Apache安装问题:configure: error: APR not found . Please read the documentation

参考:http://cuisuqiang.iteye.com/blog/2068794 http://www.cnblogs.com/Anker/p/3355573.html pcre: https://ftp.pcre.org/pub/pcre/ http://www.linuxidc.com/Linux/2012-06/62289.htm 1. 不赞成去卸载httpd的东西。 2. server上可以存在多个apache。一个是rpm&…

浮动与定位

2019独角兽企业重金招聘Python工程师标准>>> 一.浮动:float:一个元素浮动时,其他内容会"环绕"该元素. 浮动元素的外边距不会合并浮动的元素不能超出其包含快的内边界浮动元素彼此会避免重叠浮动元素的顶端不能比之前所有浮动元素或块级元素的顶端更高如果…

驱动级的自动按键_Aqara全自动智能推拉锁D100,体验全自动开门的便捷

大家好,我是梦想是个猪,今天为大家带来的是一篇智能门锁的使用体验。前言家里的这张门陆陆续续的换了好几把智能门锁了,也体验了好几种不同的开锁方式。最开始开发商给安装的是一把指纹和把手分离的那种款式,开锁的时候需要先输入…

码率问题

帧率影响的是每帧的额定比特数 我说的帧率是编码帧率,不是采集帧率。对于一个采集后的序列,MAD 只跟参考帧有关。而编码帧率与参考帧无关,因此编码帧率不影响 MAD。 ———————————————————————————————————…

Java笔记08-Map详解

第一章 Map集合 1.1 概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象…

Node.js的helloworld 程序

用文本编辑器,如npp,键入例如以下代码,存储成hello.js console.log(hello) console.log(hello %s->%d,jeapedu, 1941847311) cmd进入dos。切入hello.js所在文件夹。运行node.js程序 node hello.js执行结果例如以下所看到的: C:\nodeS>n…

深度学习综述

摘要: 深度学习可以完成需要高度抽象特征的人工智能任务,如语音识别、图像识别和检索、自然语言理解等。深层模型是包含多个隐藏层的人工神经网络,多层非线性结构使其具备强大的特征表达能力和对复杂任务建模能力。训练深层模型是长期以来的难…