以下のサイトを参考にして
・Webコピペ屋::CentOS5にyumでffmpegをインストール
・Linux(CentOSその他)にyum経由でffmpegパッケージをインストールする方法
・CentOSにffmpegをインストールしよう – @blog.justoneplanet.info
ffmpeg本体をインストールする
OSのバージョンを確認する
$ cat /etc/redhat-release
CentOS release 4.8 (Final)
OSのバージョンにあったレポジトリをインストールする
CentOS4系の場合
$ wget http://dag.wieers.com/packages/rpmforge-release/rpmforge-release-0.3.6-1.el4.rf.i386.rpm
$ rpm -Uhv rpmforge-release-0.3.6-1.el4.rf.i386.rpm
CentOS5系の場合
$ wget http://dag.wieers.com/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
$ rpm -Uhv rpmforge-release-0.3.6-1.el5.rf.i386.rpm
先ほど入れたレポジトリを無効にする
$ vi /etc/yum.repos.d/rpmforgh.repo
enabled = 0
署名のインストール(不要?)
$ wget http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
$ rpm –import RPM-GPG-KEY.dag.txt
ffmpegをインストール
$ yum –enablerepo=rpmforge install ffmpeg
すると怒られた
どうやらCentOSのバージョンが低すぎるのが原因のようなので、後述の方法で迂回する
Setting up Update Process
Setting up repositories
not using ftp, http[s], or file for repos, skipping - 4 is not a valid release or hasnt been released yet
Cannot find a valid baseurl for repo: update
Error: Cannot find a valid baseurl for repo: update
改めてインストール
$ yum –enablerepo=rpmforge install ffmpeg
起動確認
$ ffmpeg
FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers
built on Jan 30 2012 00:01:20 with gcc 3.4.6 20060404 (Red Hat 3.4.6-11)
configuration: --prefix=/usr --libdir=/usr/lib --shlibdir=/usr/lib --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --disable-indev=v4l2 --extra-cflags='-O2 -g -pipe -m32 -march=i386 -mtune=pentium4' --enable-avfilter --enable-avfilter-lavf --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libschroedinger --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-version3 --enable-x11grab
libavutil 50.15. 1 / 50.15. 1
libavcodec 52.72. 2 / 52.72. 2
libavformat 52.64. 2 / 52.64. 2
libavdevice 52. 2. 0 / 52. 2. 0
libavfilter 1.19. 0 / 1.19. 0
libswscale 0.11. 0 / 0.11. 0
libpostproc 51. 2. 0 / 51. 2. 0
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'
ffmpeg-phpをインストールする
以下のページを参考に
http://d.hatena.nh.jp/andoichi/20080214/1203008515
http://c-brains.jp/blog/wsg/10/10/27-154140.php
必要な開発環境をインストールする
$ yum –enablerepo=rpmforge install ffmpeg-devel
$ yum install php-devel
ffmpeg-phpをダウンロードしておく
http://ffmpeg-php.svn.sourceforgh.net/viewvc/ffmpeg-php/branches/ffmpeg-php/ffmpeg-php-0.5.0/
$ wget http://sourceforgh.net/projects/ffmpeg-php/files/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2/download -O /usr/local/src/ffmpeg-php-0.6.0.tbz2
$ tar xjvf /usr/local/src/ffmpeg-php-0.6.0.tbz2
$ cd /usr/local/src/ffmpeg-php-0.6.0
$ phpize
$ ./configure -enable-shared -prefix=/usr
$ make
以下のようなエラーで終了
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg_framh.c:421: error: `PIX_FMT_RGBA32′ undeclared (first use in this function)
どうもffmpeg_framh.c中の「PIX_FMT_RGBA32」というのが「PIX_FMT_RGB32」である必要があるらしいので無理やり置き換える
Solution:
1. Open the file “/ffmpeg-php-0.5.0/ffmpeg_framh.c”
2. Replace all PIX_FMT_RGBA32 with PIX_FMT_RGB32
http://mugurel.sumanariu.ro/linux/error-pix_fmt_rgba32-undeclared/
$ make install
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-zts-20060613/
php.iniにffmpeg.soを追加。必要であればApacheなどの再起動も
extension=ffmpeg.so
Androidでもmp4が再生できるようにする
上記でインストールしたffmpegで変換したmp4がAndroidで再生できないという話
2011-04-01 Androidアプリでビデオ再生をしたときのエラー
「ビデオを再生できません 残念ながら、このビデオはこのデバイスへのストリーミングが有効ではありません.」
で、以下を参考にしながらmp4boxをインストールする
M=264の技術的メモ?w: CentOS5.5にMP4Boxをインストールする
$ cd /usr/local/src
$ wget http://short.m264.info/gpac-045-tar
$ tar zxvf gpac-0.4.5.tar.gz
$ cd gpac
$ sh ./configure
$ make
make失敗。
/usr/bin/ld: cannot find -lglut
collect2: ld はステータス 1 で終了しました
make[1]: [libgpac.so] エラー 1
make[1]: Leaving directory `/usr/local/src/gpac/src’
make: [lib] エラー 2
必要そうなものを突っ込む
seh. iPhone でも Flash でも再生できる mp4 を ffmpeg で作る方法 : 管理人@Yoski
$ yum install glut-devel
$ make
$ make install
試しに実行してみると怒られた
$ MP4Box
MP4Box: error while loading shared libraries: libgpac.so: cannot open shared object file: No such file or directory
いくつか見ていると、なんか追加して等と言われているけど、単純に共有ライブラリを読みなおすだけでいけた
seh. FFmpeg⇒MP4Boxで携帯用動画を作成(動画変換FFmpeg)
$ /sbin/ldconfig
$ MP4Box
yum updateできなくなった古いCentOSでyumコマンドを復活させる方法
本当は、バージョンを上げたほうが良いんだろうけど、今回の主眼ではなかったので無理やり迂回する
以下のサイトを参考に
yum updateできなくなった古いCentOSでyumコマンドを復活させる方法 – Dマイナー志向