centos编译 Compiling FFmpeg on CentOS RHEL Fedora
This guide is based on a minimal installation of the latest CentOS release, and will provide a local, non-system installation of FFmpeg with support for several external encoding libraries. These instructions should also work for recent Red Hat Enterprise Linux (RHEL) and Fedora. This is a non-invasive guide and undoing all steps is simple and is shown at the end of this page.
Get the Dependencies
These are required compiling, but you can remove them when you are done if you prefer (except make
; it should be installed by default and many things depend on it).
# yum install autoconf automake cmake freetype-devel gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel bzip2
In your home directory make a new directory to put all of the source code into:
mkdir ~/ffmpeg_sources
Compilation & Installation
Note: If you do not require certain encoders you may skip the relevant section and then remove the appropriate ./configure
option in FFmpeg. For example, if libvorbis is not needed, then skip that section and then remove --enable-libvorbis
from the Install FFmpeg section.
Yasm
Yasm is an assembler used by x264 and FFmpeg.
cd ~/ffmpeg_sources git clone --depth 1 git://github.com/yasm/yasm.git cd yasm autoreconf -fiv ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" make && make install make distclean
libx264
H.264 video encoder. See the H.264 Encoding Guide for more information and usage examples.
Requires ffmpeg
to be configured with --enable-gpl
--enable-libx264
.
cd ~/ffmpeg_sources git clone --depth 1 git://git.videolan.org/x264 cd x264PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig"./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-staticmake && make install make distclean
libx265
H.265/HEVC video encoder. See the H.265 Encoding Guide for more information and usage examples.
Requires ffmpeg
to be configured with --enable-gpl
--enable-libx265
.
cd ~/ffmpeg_sources hg clone https://bitbucket.org/multicoreware/x265 cd ~/ffmpeg_sources/x265/build/linux cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source make make install
libfdk_aac
AAC audio encoder.
Requires ffmpeg
to be configured with --enable-libfdk-aac
(and --enable-nonfree
if you also included --enable-gpl
).
cd ~/ffmpeg_sources git clone --depth 1 git://git.code.sf.net/p/opencore-amr/fdk-aac cd fdk-aac autoreconf -fiv ./configure --prefix="$HOME/ffmpeg_build" --disable-shared make && make install && make distclean
libmp3lame
MP3 audio encoder.
Requires ffmpeg
to be configured with --enable-libmp3lame
.
cd ~/ffmpeg_sources 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="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm make make install make distclean
libopus
Opus audio decoder and encoder.
Requires ffmpeg
to be configured with --enable-libopus
.
cd ~/ffmpeg_sources git clone git://git.opus-codec.org/opus.git cd opus autoreconf -fiv ./configure --prefix="$HOME/ffmpeg_build" --disable-shared make make install make distclean
libogg
Ogg bitstream library. Required by libtheora and libvorbis.
cd ~/ffmpeg_sources 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="$HOME/ffmpeg_build" --disable-shared make make install make distclean
libvorbis
Vorbis audio encoder. Requires libogg.
Requires ffmpeg
to be configured with --enable-libvorbis
.
cd ~/ffmpeg_sources 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$HOME/ffmeg_build/lib" CPPFLAGS="-I$HOME/ffmpeg_build/include" ./configure --prefix="$HOME/ffmpeg_build" --with-ogg="$HOME/ffmpeg_build" --disable-shared make make install make distclean
libvpx
VP8/VP9 video encoder.
Requires ffmpeg
to be configured with --enable-libvpx
.
地址要改为https://github.com/webmproject/libvpx/ git clone https://github.com/webmproject/libvpx
cd ~/ffmpeg_sources git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git cd libvpx ./configure --prefix="$HOME/ffmpeg_build" --disable-examples make make install make clean
FFmpeg
cd ~/ffmpeg_sources git clone --depth 1 git://source.ffmpeg.org/ffmpeg cd ffmpeg PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/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
Compilation is now complete and ffmpeg
(also ffprobe
, ffserver
, lame
, and x264
) should now be ready to use. The rest of this guide shows how to update or remove FFmpeg.
编译完成后,会:
Tip: Keep the ffmpeg_sources
directory and all contents if you intend to update as shown below. Otherwise you can delete this directory.
Updating
Development of FFmpeg is active and an occasional update can give you new features and bug fixes. First, remove the old files and then update the dependencies:
rm -rf ~/ffmpeg_build ~/bin/{ffmpeg,ffprobe,ffserver,lame,vsyasm,x264,x265,yasm,ytasm} # yum install autoconf automake cmake gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel
Update Yasm
cd ~/ffmpeg_sources/yasm make distclean git pull
Then run ./configure
, make
, and make install
as shown in the Install yasm section.
Update x264
cd ~/ffmpeg_sources/x264 make distclean git pull
Then run ./configure
, make
, and make install
as shown in the Install x264 section.
Update x265
cd ~/ffmpeg_sources/x265 rm -rf ~/ffmpeg_sources/x265/build/linux/* hg update cd ~/ffmpeg_sources/x265/build/linux
Then run cmake
, make
, and make install
as shown in the Install x265 section.
Update libfdk_aac
cd ~/ffmpeg_sources/fdk_aac make distclean git pull
Then run ./configure
, make
, and make install
as shown in the Install libfdk_aac section.
Update libvpx
cd ~/ffmpeg_sources/libvpx make clean git pull
Then run ./configure
, make
, and make install
as shown in the Install libvpx section.
Update FFmpeg
cd ~/ffmpeg_sources/ffmpeg make distclean git pull
Then run ./configure
, make
, and make install
as shown in the Install FFmpeg section.
Reverting changes made by this guide
rm -rf ~/ffmpeg_build ~/ffmpeg_sources ~/bin/{ffmpeg,ffprobe,ffserver,lame,vsyasm,x264,yasm,ytasm} # yum erase autoconf automake cmake gcc gcc-c++ git libtool mercurial nasm pkgconfig zlib-devel hash -r
If You Need Help
Feel free to ask your questions at the #ffmpeg IRC channel or the ffmpeg-user mailing list.
Also See
centos编译 Compiling FFmpeg on CentOS RHEL Fedora的更多相关文章
- 阿里云服务器---centos编译安装ffmpeg
环境 系统环境:CentOS release 6.7 (Final) 需求 编译安装ffmpeg 获取依赖 安装依赖包 yum install -y autoconf automake cmake f ...
- 如何在CentOS/RHEL & Fedora上安装MongoDB 3.2
MongoDB(名称取自"huMONGOus")是一个有着全面灵活的索引支持和丰富的查询的数据库.MongoDB通过GridFS提供强大的媒体存储.点击这里获取MongoDB的更多 ...
- centos编译ffmpeg x264
1.安装汇编编译器(一般系统自带吧).假设没有依照以下的命令安装吧 yum install yasm 2.使用最新x264源代码编译(仅仅支持编码) 在x264官网下载最新的代码http://w ...
- CentOS编译安装NodeJS+Express
NodeJS是基于Chrome’s Javascript runtime,也就是Google V8引擎执行Javascript的快速构建网络服务及应用的平台,其优点有: 在CentOS编译安装Node ...
- Centos编译安装PHP 5.5笔记
本篇是在 Centos 6.4 32bit 下编译安装 php 5.5.5 的笔记,接上篇 Centos编译安装Apache 2.4.6笔记.php 5.5.x 和 centos 源里面的 php 5 ...
- CentOS 编译 GCC 7.2
CentOS 编译 GCC 7.2 下载源码 wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-7.2.0/gcc-7.2.0. ...
- nginx php-fpm安装配置 CentOS编译安装php7.2
CentOS编译安装php7.2 介绍: 久闻php7的速度以及性能那可是比php5系列的任何一版本都要快,具体性能有多好,建议还是先尝试下再说.如果你是升级或新安装,那你首先需要考虑php7和程序是 ...
- CentOS 编译安装 Redis (实测 笔记 Centos 7.3 + redis 3.2.8)
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 安装步骤: 1.准备 1.1 显示系统版 ...
- CentOS 编译安装 Nodejs (实测 笔记 Centos 7.3 + node 6.9.5)
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 安装步骤: 1.准备 1.1 显示系统版 ...
随机推荐
- Android2.2源码属性服务分析
属性服务property service 大家都知道,在windows中有个注册表,里面存储的是一些键值对.注册表的作用就是:系统或者应用程序将自己的一些属性存储在注册表中,即使系统或应用程序重启,它 ...
- 使用Collectors.toMap遇到NullPointerException
这个坑也是踩过好几次了,记录一笔. 当试图使用Collectors.toMap将一个stream收集为Map的时候,若构造map的valueMapper返回null时,则会报NullPointerEx ...
- zoj 2974 Just Pour the Water矩阵快速幂
Just Pour the Water Time Limit: 2 Seconds Memory Limit: 65536 KB Shirly is a very clever girl. ...
- 部署 DevStack
本节按照以下步骤部署 DevStack 实验环境,包括控制节点和计算节点 创建虚拟机 按照物理资源需求创建 devstack-controller 和 devstak-compute 虚拟机 安装操作 ...
- [NOIP2009] 提高组 洛谷P1074 靶形数独
题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他 们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教, Z 博士拿出了他最近发明的 ...
- h5页与ios通信
直接上代码 1 粘第一段 //ios function setupWebViewJavascriptBridge(callback) { if (window.WebViewJavascriptBri ...
- 汇编指令详解--as手册
https://sourceware.org/binutils/docs/as/ Table of Contents 1 Overview 1.1 Structure of this Manual 1 ...
- 标准C程序设计七---72
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...
- 充電到 100 %時,為什麼 Vbat 只有 4.2V?
Original. 今天有同事問說, 充電電壓不是 4.35V 嗎? 充電到 100 %時,為什麼 Vbat 只有 4.2V? 可能有三種原因. 溫度. safety 會在某個溫度區間,使用較低的電壓 ...
- 第一章spring boot简介
接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手, ...