一、准备工作

1、系统环境:CentOS release 6.9 (Final)

2、安装依赖包

yum install -y autoconf automake cmake freetype-devel gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel

二、安装

如果您不需要特定的编码器,可以在编译ffmpeg的时候不启用

根目录默认为

cd /usr/local/src/

1、Yasm

Ysam是X264和FFmpeg使用的汇编程序。

git clone --depth 1 git://github.com/yasm/yasm.git
cd yasm
autoreconf -fiv
./configure --prefix="$lib/ffmpeg_build" --bindir="$lib/bin"
make
make install
make distclean

2、libx264

libx264 视频编码器。更多说明和用法示例可以参考:https://trac.ffmpeg.org/wiki/Encode/H.264

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

git clone --depth 1 git://git.videolan.org/x264
cd x264
PKG_CONFIG_PATH="$lib/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$lib/ffmpeg_build" --bindir="$lib/bin" --enable-static
make
make install
make distclean

3、libx265

H.265/HEVC 视频编码器。更多说明和用法示例可以参考:https://trac.ffmpeg.org/wiki/Encode/H.265

安装教程:https://bitbucket.org/multicoreware/x265/wiki/Home

编译参数:–enable-gpl –enable-libx265

hg clone https://bitbucket.org/multicoreware/x265
cd ~/ffmpeg_sources/x265/build/linux
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$lib/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
make
make install

4、libfdk_aac

AAC 音频编码器。

编译参数:–enable-libfdk-aac (以及 –enable-nonfree 如果你添加了 –enable-gpl的话)

git clone --depth 1 git://git.code.sf.net/p/opencore-amr/fdk-aac
cd fdk-aac
autoreconf -fiv
./configure --prefix="$lib/ffmpeg_build" --disable-shared
make
make install
make distclean

5、libmp3lame

MP3 音频编码器.

编译参数: –enable-libmp3lame

curl -L -O http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --prefix="$lib/ffmpeg_build" --bindir="$lib/bin" --disable-shared --enable-nasm
make
make install
make distclean

6、libopus

Opus 音频编解码器.

编译参数: –enable-libopus

git clone https://git.xiph.org/opus.git
cd opus
autoreconf -fiv
./configure --prefix="$lib/ffmpeg_build" --disable-shared
make
make install
make distclean

7、libogg

Ogg 比特流库.。libtheora and libvorbis需要

curl -O http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.gz
tar xzvf libogg-1.3.2.tar.gz
cd libogg-1.3.2
./configure --prefix="$lib/ffmpeg_build" --disable-shared
make
make install
make distclean

8、libvorbis

Vorbis 音频编码器. 需要 libogg

编译参数:–enable-libvorbis

curl -O http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.4.tar.gz
tar xzvf libvorbis-1.3.4.tar.gz
cd libvorbis-1.3.4
LDFLAGS="-L$lib/ffmeg_build/lib" CPPFLAGS="-I$lib/ffmpeg_build/include" ./configure --prefix="$lib/ffmpeg_build" --with-ogg="$lib/ffmpeg_build" --disable-shared
make
make install
make distclean

9、libvpx

VP8/VP9 视频编码器.

编译参数: –enable-libvpx.

git clone https://github.com/webmproject/libvpx.git
cd libvpx
./configure --prefix="$lib/ffmpeg_build" --disable-examples
make
make install
make clean

10、FFmpeg

git clone https://github.com/FFmpeg/FFmpeg.git
cd FFmpeg
export PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig"
./configure --prefix="$lib/ffmpeg_build" --extra-cflags="-I$lib/ffmpeg_build/include" --extra-ldflags="-L$lib/ffmpeg_build/lib" --bindir="$lib/bin" --pkg-config-flags="--static" --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265
make
make install
make distclean
hash -r

至此,编译ffmpeg完成

参考文章

1、ffmpeg安装指南:https://trac.ffmpeg.org/wiki/CompilationGuide

2、ffmpeg git地址:https://github.com/FFmpeg/FFmpeg

【Linux】Centos下安装ffmpeg的更多相关文章

  1. Linux(CentOs)下安装Phantomjs + Casperjs

    Linux(CentOs)下安装Phantomjs + Casperjs 是参照cnMiss's Blog http://ju.outofmemory.cn/entry/70691的博客进行安装的 1 ...

  2. linux/centos下安装nginx(rpm安装和源码安装)详细步骤

    Centos下安装nginx rpm包                                                                                 ...

  3. Linux CentOS下安装Tomcat9

    本文讲解在Linux CentOS下安装Tomcat9,以及Web项目的部署发布. 环境:阿里云ECS 云服务器Linux CentOS 使用XShell客户端连接服务器,进行操作实践. 1.下载To ...

  4. [Linux]CentOS下安装和使用tmux

    前天随意点开博客园,看到了一篇关于tmux的文章 Tmux - Linux从业者必备利器,特意还点进去看了.毕竟Linux对于做游戏服务端开发的我来说,太熟悉不过了.不过我就粗略地看了一眼,就关掉了. ...

  5. Linux(CentOS)下安装git

    上个月把VPS迁到budgetVM,终于不用再受digitalOcean的气了,入手很方便,重点是支持支付宝付款——paypal的界面真是不习惯,开通速度挺快的,1G的内存够我折腾一段时间了~,额外送 ...

  6. Linux CentOS下安装、配置mysql数据库

    假设要在Linux上做j2ee开发.首先得搭建好j2ee的开发环境.包含了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有具体解说了Linux学习之CentOS(七)--Cen ...

  7. Linux(CentOS)下安装docker

    Linux(CentOS)安装Docker 查看当前内核版本 [docker@localhost ~]$ uname -r 确保yum包更新到最新 [docker@localhost ~]$ sudo ...

  8. linux/centOS 下安装 ngnix

    Nginx 是一款轻量级的 Web 服务器/反向代理服务器,比较流行,建议在 Linux 下安装运行. Nginx 需要的依赖 它们包括:gcc,openssl,zlib,pcre(可通过rpm -q ...

  9. Linux(centos)下安装JDK

    安装 JDK是运行java程序必不可少的环境,服务器上跑程序也不例外.首先在安装之前,要知道Linux下安装软件有两种,一种是使用yum等命令直接下载,一种是使用上传下载工具,上传至Linux下使用, ...

  10. centos下安装ffmpeg加上fdk-aac的支持

    本文参考自:https://blog.csdn.net/jklinux/article/details/72367829 安装包可以从这里下载https://download.csdn.net/dow ...

随机推荐

  1. 在ArchLinux中安装MySQL

    最近前端学习用到数据库的知识.鉴于MySQL被甲骨文收购的情况,我从MariaDB开始学习.操作系统Manjaro 17.1, 数据库版本MariaDB 10.1. 1. 安装MariaDb和其客户端 ...

  2. 【可靠性】Mysql 5.7 降低了半同步复制-数据丢失的风险

    如果你的生产线开启了半同步复制,那么对数据的一致性会要求较高,但在MySQL5.5/5.6里,会存在数据不一致的风险.有这么一个场景,客户端提交了一个事务,master把binlog发送给slave, ...

  3. asp.net core 依赖注入实现全过程粗略剖析(3)

    接着 前面,前面的过程是普遍常用的依赖注入解析过程,我们正常都是在startup类中注入依赖服务,但是,笔者这周开发的时候遇到个问题,不同服务的生命周期不同,不能调用服务.举个例子,AddDbCont ...

  4. C#-常用知识点

    1.日期相关 获取英文月份名称 : DateTime.Now.ToString("MMMM") 1.1 各个字母所代表的意思 1.MM:月份 2.mm:分钟 3. MMMM:文字形 ...

  5. 通用图片加载组件UniversalImageLoader

    通用图片加载组件UniversalImageLoader   UniversalImageLoader是一款通用图片加载组件.该组件支持多种图片来源,如网络.SD卡.Assets文件夹等.在网络请求的 ...

  6. .NET控件名称缩写一览表 zz

    标准控件1 btn Button2 chk CheckBox3 ckl CheckedListBox4 cmb ComboBox5 dtp DateTimePicker6 lbl Label7 llb ...

  7. 潭州课堂25班:Ph201805201 django 项目 第三课 码云注册,django项目 (课堂笔记)

    d码云注册,登录, 创建项目: 生成秘钥 想看秘钥: 添加公钥 复制 ssh 连接 通过  git clone <ssh> 连接 在服务器上创建 python3 虚拟环境, 创建项目  p ...

  8. windows上redis添加密码

    命令: config get requirepass config set requirepass pwd redis-server.exe redis-windows.conf. auth   pw ...

  9. Yii2 DetailView小部件

    DetailView小部件 Yii 提供了一套数据库小部件 widgets,这些小部件可以用于显示数据 DetailView 小部件用于显示一条记录数据 ListView 和 GridView 可以用 ...

  10. 02-CSS&JS

    今日目标 使用CSS完成网站首页的优化 使用CSS完成网站注册页面的优化 使用JS完成简单的数据校验 使用JS完成图片轮播效果 教学目标: - 了解CSS的概念 - 了解CSS的引入方式 - 了解CS ...