fedora 14 で ffmpeg をソースから(まとめ)

いろいろとゴタゴタになってしまったので、
単純にやり方だけをまとめてみようと思います
動作環境は Fedora14 32bit です
yum -y groupinstall “Development Tools”
で開発ツールインストール
yum -y install yasm
でフリーソフト ffmpeg の外部ライブラリ使用に
必要なツールをインストール
cd /usr/local/src/
でインストール予定のディレクトリに移動し
cp /media/Fedora/article/toku3/ffmpeg-0.6.1.tar.bz2 .
で今回、付録に収録されているファイルを cp コマンド
でカレントディレクトリにコピーします
tar jxvf ffmpeg-0.6.1.tar.bz2
でファイルを解凍
さらに、今回このソフトを
コンパイルするのに必要なソースファイルも、付録としてついているので、
そのまま使わせてもらうことにします
cd /usr/local/src/
cp /media/Fedora/article/toku3/lame-3.98.4.tar.gz .
tar xzvf lame-3.98.4.tar.gz
cd lame-3.98.4
./configure
make
make install
これで、必要なファイルの準備完了です
mkdir -p build–ffmpeg
cd build–ffmpeg
で、作業ディレクトリ作成
次に configure をオプションつきで実行
../ffmpeg-0.6.1/configure –enable-shared –disable-static –enable-gpl –enable-version3 –enable-nonfree –enable-postproc –enable-avfilter –enable-avfilter-lavf –enable-pthreads –enable-x11grab –enable-vdpau –enable-libmp3lame
あとは、いつもどおりに
make
make install
必要なファイルが参照できない問題を解決するため
vi /etc/ld.so.conf
でファイルを開き、
2行目に
/usr/local/lib
を追記
ldconfig -v
でキャッシュを更新すると、ようやく設定完了
cd /usr/local/bin/
./ffmpeg -version
でエラーがでないなら成功です
ちなみに、趣旨からは外れますが、ubuntu の場合、
synaptics を使い、インストール可能のようです
使い方などは
ffmpeg 使い方
に載っています

fedora 14 で ffmpeg をソースから その5

さて、今回、あらたに問題が発生しています
それは、必要なファイルが参照できないということです
find / -name libavdevice.so.52
で探すと、
/usr/local/lib/libavdevice.so.52
/usr/local/src/build–ffmpeg-3/libavdevice/libavdevice.so.52
とでてきます
これを解決するには
Fedora14 がライブラリのヘッダーファイルを参照する
ディレクトリが記載されているファイルを
cat /etc/ld.so.conf
で調べます
include ld.so.conf.d/*.conf
/usr/local/lib
と表示されるので
cd /etc/ld.so.conf.d
cat *.conf
で内容を確認すると、
/usr/local/lib
より下が参照できない状態なので
vi /etc/ld.so.conf
でファイルを開き、
2行目に
/usr/local/lib
を追記します
あとは
ldconfig -v
でキャッシュを更新すると、ようやく設定完了です
cd /usr/local/bin/
./ffmpeg -version
でようやくまともに動きました
ソースからインストールするのはかなり面倒でしたが
やってみると楽しいものです

fedora 14 で ffmpeg をソースから その4

今回も、フリーソフトの編集のつづきです
参考資料は

さて、今回足りないソースを入手したいのですが、残念ながらFedora14
の場合、yum でインストールできません
(まだパッケージ化されていないようです)
仕方ないので、
ソースからいれます
ちなみに、さきに必要なソースをいれてから
コンパイルしないとだめです
つまり、
1、必要なソースをコンパイル
2、ffmpeg をオプションつけてコンパイル
ということになります
この必要なソースファイルも、付録としてついているので、
そのまま使わせてもらうことにします
cd /usr/local/src/
cp /media/Fedora/article/toku3/lame-3.98.4.tar.gz .
tar xzvf lame-3.98.4.tar.gz
cd lame-3.98.4
./configure
make
make install
これで、コンパイル & インストール完了です
確認のため
find . -name lame.h
を実行すると、
./include/lame/lame.h
./src/lame-3.98.4/include/lame.h
がでてくるので、成功です
find コマンドに関しては
UNIXコマンド辞典 > ファイルとディレクトリの操作 > find
が参考になります
私なりの解釈ですと
find 調べるディレクトリ オプション 探すファイル
というかんじです
ちなみに、
. はカレントディレクトリ
.. は親ディレクトリを意味します
詳しくは
参考サイトにリンクのあった
絶対パスと相対パス
をみてもらえば、より詳しい説明が見られます
ここまでおこなったらようやくコンパイル開始です
まずは実験用ディレクトリ作成します
cd /usr/local/src/
mkdir -p build–ffmpeg-3
cd build–ffmpeg-3/
次に configure をオプションつきで実行
../ffmpeg-0.6.1/configure –enable-shared –disable-static –enable-gpl –enable-version3 –enable-nonfree –enable-postproc –enable-avfilter –enable-avfilter-lavf –enable-pthreads –enable-x11grab –enable-vdpau –enable-libmp3lame
あとは、いつもどおりに
make
make install
でインストールされますが、まだ設定が必要になります

fedora 14 で ffmpeg をソースから その3

オプションなしでは、MP3が有効にはなりませんでした
こういった場合、大抵は INSTALL ファイルに対処が載っています
less ../ffmpeg-0.6.1/INSTALL
で内容を確認すると
../ffmpeg-0.6.1/configure –help
で見れるとのことなので、
../ffmpeg-0.6.1/configure –help | less
で調べると
–enable-libmp3lame enable MP3 encoding via libmp3lame [no]
となっています
この一番右端の [no] は、
configure を実行するときに、オプションなしで実行すると
無効にする
という意味です
このため、オプションなしで実行した場合、MP3変換ができなかったということです
ちなみに、configure のときにオプションをつければOK?
と思いたいのですが、残念ながら必要なソフトが入っていないと
エラーになります
今回、新たにディレクトリを作成し、以下のように実行したのですが
必要なファイルがないのでエラーとなりました
cd /usr/local/src
mkdir -p build–ffmpeg-2
cd build–ffmpeg-2/
../ffmpeg-0.6.1/configure –enable-libmp3lame | tee ff-config.log
この場合、必要とされているファイルを
パッケージ、もしくはソースから入れる必要があります

fedora 14 で ffmpeg をソースから その2

さて、今回は、解凍した続きからになります
たいていのフリーソフトでは、
中に README ファイルがあります
説明書みたいなものです
これと重要なのが INSTALL ファイル
これは読んで字のごとく、インストール方法です
ファイルの一覧をみるには
ls -F
と行うと、ファイルの一覧を見れます
今回なら
ls -F /usr/local/src/ffmpeg-0.6.1
です
コマンドで説明書をみるときには、cat コマンドより
less コマンドを使います
ページで管理できるし。読み終わったら qを押せば終了なので
便利です
詳しい情報については、「less コマンド」で
ぐぐればでると思われます
おすすめなのは
UNIX入門 > Linuxコマンド一覧 > less
とか
less(1)コマンドの便利な使い方10
などなど探すといろいろでてきます
実際にファイルを開いてみるとわかるのですが
大抵の場合、内容は英語で記述されています
とはいっても、難しく考えることはありません
いまは便利なもので、google 翻訳などをつかったり、ある程度は掲示板できくことでも
対処できると思います
(掲示板で書くときには、ある程度自分で調べたあとのほうがいいと思います)
google 翻訳はこちら
掲示板に関しては、
ubuntu 日本語フォーラム

fedora user forum
などもありますので、こういったところで聞いてみるのもよいでしょう
コマンド操作に関してはある程度の慣れが必要です
キーボードの打ち込む速度のように、使っているとなれてきますので
英語やコマンドもなるべく使っておくと、自然に使えるようになってきます
さて、話を元に戻します
英語マニュアルによれば、新規にディレクトリをつくって実験みたいなかんじで
書いてあるので
cd ..
mkdir -p build–ffmpeg-1
cd build–ffmpeg-1/
と作成しておきます
cd ..
は、1うえのディレクトリに移動です
これを使うと、移動が楽です
ここまでいったら
../ffmpeg-0.6.1/configure | tee ff-config.log
を実行し、まずはオプションなしで実験します
teeコマンドは、標準出力とファイルの両方に出力する
コマンドです
解説についてはUNIXコマンド辞典
に載っています
今回、参考にした雑誌、日経Linux によれば
フリーソフトのコンパイルのときのポイントは2つあり、
1、まずはオプションなしで実行
2、confiture のときに tee コマンドを使ってログを書いておくこと

ということだそうです
このあたりの詳しい説明は

に載っています
ここまでの実験でできたログファイルをみると
オプションなしなので、mp3 が使えない状態になっています

fedora 14 で ffmpeg をソースから

今回の 日経 Linux に、フリーソフトのコンパイルについての記事がのっていたので
復習の意味をかねて実践してみようと思います

今回、ソースから導入したソフトウェアは、フリーソフトの
ffmpeg というソフトです
このソフトは、動画変換ツールで
動画や音声のファイル形式を変換するツールです
最近では、Linux でのソフトのインストールといえば
Ubuntu の Synaptics のようなGUIツールをつかったり
RPM パッケージ
debパッケージ
といったパッケージされたものからのインストールが多いと思います
しかし、最新版のインストールとなると、
やはりソフトウェアのコンパイルからインストールすることが多いと
思います
ちなみに、サーバー構築などでは
ソースからのインストールがメインだと思います
ソースからのインストールを簡単に書くと
1、ソフトの解凍
2、configure コマンドでコンパイルに必要なものをチェック
3、make コマンド でコンパイル
4、make install コマンドで make で作られた
バイナリファイルを配置
といったかんじになります
今回は、やりかたが載っていたので、これを参考に行いました
まず、実行環境ですが、基本に忠実に
Fedora 14 を使います
Fedora14 32bit については、付録OSとしてついているので
これを VMware Player に仮想環境でインストールします
インストール完了後、
必要な開発環境をインストールします
yum -y update
yum -y install yum-fastestmirror
yum -y install nautilus-open-terminal
これで、必要なものを設定
一度ログアウトし、端末の中に開くを有効化
um -y groupinstall “Development Tools”
で開発ツールインストール
yum -y install yasm
でフリーソフト ffmpeg の外部ライブラリ使用に
必要なツールをインストール
cd /usr/local/src/
でインストール予定のディレクトリに移動し
cp /media/Fedora/article/toku3/ffmpeg-0.6.1.tar.bz2 .
で今回、付録に収録されているファイルを cp コマンド
でカレントディレクトリにコピーします
. はカレントディレクトリを示すので、今後指定するときに
この方法を書くと、長いカレントディレクトリのパスを書いたり
今、どこかな?と pwd コマンドで調べる必要性もなくなります
また、今回のパッケージの解凍には tar コマンドを使います
tar コマンドは、圧縮解凍に使うコマンドです
よくある tar.gz ならば tar zxvf で解凍するのですが
今回は tar.bz2 となっているので
tar jxvf ffmpeg-0.6.1.tar.bz2
とします
ちなみに、この操作は管理者権限でおこなわないと、パーミッションの関係で
エラーになります
Linux 関連の解凍は、サーバーなどになるとほぼコマンドから
操作することになるので、
Linux 上での解凍・圧縮方法
という情報が載っていましたので、ここのサイトを
参考に、圧縮解凍の勉強をしておくと、のちのちすごく便利です