作成 2011.01.05
更新 2011.10.22
FFmpeg を CentOS で使う
目次
まえおき
コンパイル・インストール
開発環境類
コーデック類
本体
コマンド例
対応しているコーデックを確認
flv から mp4 へ変換
mp4 から WebM へ変換
まえおき
実行環境
今回は動画ファイルの変換を目的としているため、再生環境はコンパイルしません。
Google、ChromeブラウザでのH.264サポート終了へ の記事が出たため、あわてて WebM にも対応しました。
やむを得ない事情がない限り、Debian や Ubuntu の方が楽です。
  • CentOS 5.5 x86版 2011年1月5日時点まで yum でアップデート済み
  • FFmpeg 0.6.1
  • FFmpeg は Libav へ名称を変更しました。2011年3月13日更新
以下は root 権限でコマンドを実行する例です。
# command
以下はユーザー権限でコマンドを実行する例です。
$ command
以下はファイルの中身です。
# comment
value
コンパイル・インストール
可能な限りパッケージで揃え、無ければコンパイルします。
開発環境類
CentOS の場合、g++ コマンドは gcc-c++ パッケージに、pkg-config コマンドは pkgconfig パッケージにそれぞれあります。
# yum install gcc gcc-c++ make autoconf pkgconfig which wget bzip2 unzip patch nasm
Yasm x264 コーデックのインストールに使用
$ wget http://www.tortall.net/projects/yasm/releases/yasm-1.1.0.tar.gz
$ tar xzf yasm-1.1.0.tar.gz
$ cd yasm-1.1.0
[yasm-1.1.0]$ ./configure
[yasm-1.1.0]$ make
[yasm-1.1.0]# make install
ライブラリのパスを更新 /etc/ld.so.conf.d/local.conf
/usr/local/lib/
# ldconfig
コーデック類
パッケージ
# yum install libpng-devel libtiff-devel lcms-devel libogg-devel libvorbis-devel
AudioCoding.com FAAD2/FAAC
$ wget http://downloads.sourceforge.net/faac/faad2-2.7.tar.bz2
$ wget http://downloads.sourceforge.net/faac/faac-1.28.tar.bz2
$ tar xjf faad2-2.7.tar.bz2
$ tar xjf faac-1.28.tar.bz2
$ cd faad2-2.7
[faad2-2.7]$ ./configure
[faad2-2.7]$ make
[faad2-2.7]# make install
[faad2-2.7]$ cd ..
$ cd faac-1.28
[faac-1.28]$ ./configure
[faac-1.28]$ make
[faac-1.28]# make install
opencore-amr
$ wget http://downloads.sourceforge.net/project/opencore-amr/opencore-amr/0.1.2/opencore-amr-0.1.2.tar.gz
$ tar xzf opencore-amr-0.1.2.tar.gz
$ cd opencore-amr-0.1.2
[opencore-amr-0.1.2]$ ./configure
[opencore-amr-0.1.2]$ make
[opencore-amr-0.1.2]# make install
GSM
$ wget http://www.quut.com/gsm/gsm-1.0.13.tar.gz
$ tar xzf gsm-1.0.13.tar.gz
$ cd gsm-1.0-pl13
Makefile を修正
74: INSTALL_ROOT = /usr/local
83: GSM_INSTALL_INC = $(GSM_INSTALL_ROOT)/include/gsm
84: GSM_INSTALL_MAN = /usr/share/man/man3
94: TOAST_INSTALL_MAN = /usr/share/man/man1
[gsm-1.0-pl13]$ make
[gsm-1.0-pl13]# mkdir /usr/local/include/gsm
[gsm-1.0-pl13]# make install
Lame
$ wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz/download
$ tar xzf lame-3.98.4.tar.gz
$ cd lame-3.98.4
[lame-3.98.4]$ ./configure
[lame-3.98.4]$ make
[lame-3.98.4]# make install
OpenJPEG
$ wget http://openjpeg.googlecode.com/files/openjpeg_v1_4_sources_r697.tgz
$ tar xzf openjpeg_v1_4_sources_r697.tgz
$ cd openjpeg_v1_4_sources_r697
[openjpeg_v1_4_sources_r697]$ ./configure
[openjpeg_v1_4_sources_r697]$ make
[openjpeg_v1_4_sources_r697]# make install
Theora CentOS 公式パッケージはバージョンが古いため、ffmpeg の ./configure で認識できない。
$ wget http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2
$ tar xjf libtheora-1.1.1.tar.bz2
$ cd libtheora-1.1.1
[libtheora-1.1.1]$ ./configure
[libtheora-1.1.1]$ make
[libtheora-1.1.1]# make install
x264
$ wget ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20110104-2245.tar.bz2
$ tar xjf x264-snapshot-20110104-2245.tar.bz2
$ cd x264-snapshot-20110104-2245
[x264-snapshot-20110104-2245]$ ./configure
[x264-snapshot-20110104-2245]$ make
[x264-snapshot-20110104-2245]# make install
Xvid
$ wget http://downloads.xvid.org/downloads/xvidcore-1.2.2.tar.bz2
$ tar xjf xvidcore-1.2.2.tar.bz2
$ cd xvidcore/build/generic
[generic]$ ./configure
[generic]$ make
[generic]# make install
WebM
$ wget http://webm.googlecode.com/files/libvpx-v0.9.5.tar.bz2
$ tar xjf libvpx-v0.9.5.tar.bz2
$ cd libvpx-v0.9.5
[libvpx-v0.9.5]$ ./configure --disable-examples
[libvpx-v0.9.5]$ make
[libvpx-v0.9.5]# make install
本体
2011年1月現在の FFmpeg の安定板は 0.6.1 でした。開発版は git で取得します。
FFmpeg 最新版のページ
$ wget http://www.ffmpeg.org/releases/ffmpeg-0.6.1.tar.bz2
$ tar xjf ffmpeg-0.6.1.tar.bz2
$ cd ffmpeg-0.6.1
[ffmpeg-0.6.1]$ ./configure --enable-shared --enable-gpl --enable-version3 --enable-nonfree \
 --disable-ffplay --disable-ffserver --enable-pthreads --enable-libopencore-amrnb \
 --enable-libopencore-amrwb --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame \
 --enable-libopenjpeg --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid \
 --enable-libvpx --disable-debug
[ffmpeg-0.6.1]$ make
[ffmpeg-0.6.1]# make install
configure で使用可能なオプションは以下のコマンドで確認できます。
$ ./configure --help
コマンド例
対応しているコーデックを確認
$ ffmpeg -codecs
flv から mp4 へ変換
例では video codec を H.264 へ、audio codec を AAC へ変換します。
画面サイズ、ビットレート等は自動認識です。
コンパイル オプションによって "-vpre default" は不要になります。
$ ffmpeg -i test.flv -vcodec libx264 -vpre default -acodec libfaac -y test.mp4
2 Pass で変換
$ ffmpeg -i test.flv -vcodec libx264 -vpre default -pass 2 -passlogfile "./passlog" \
 -acodec libfaac -y test.mp4
mp4 から WebM へ変換
flv から変換するときも同様です。
予想以上に重いです。
$ ffmpeg -i test.mp4 -vcodec libvpx -acodec libvorbis -y test.webm
タグ: CentOS FFmpeg

©2004-2017 UPKEN IPv4