【コラム】

OS X ハッキング!

76 OS Xの動画環境を整理する(3)

    海上忍  [2004/01/26]

    1984年に誕生したMacが、ついに20歳を迎えた。1984年といえば筆者は中学生、Z80の機械語でゲーム作りに勤しんでいた頃だ。ハンドアセンブルという苛酷な開発環境だったなあ、芸夢狂人さんや中村光一さんのプログラムからいろいろ学んだなあ……と昔を思うと話がDJNZするためこの辺で。

    さて、今回も前回に続き動画のエンコードについて。予定どおりffmpegの高度な活用法を紹介するのだが、その前にffmpegの使い方を訂正&補足しておきたい。基本的な書式は以下のとおりで、最初に「-i」オプションでソースとなる動画ファイルを、続いていくつかのエンコード用オプションを、最後に生成するファイル名を指定する。MPEG-1の場合、「-target vcd」と既定値を利用すれば、より簡単にエンコードできるはずだ。

    $ ffmpeg -i sozai.dv -s 352x240 -b 1150 -ar 44100 -ab 128 movie.mpg
    または
    $ ffmpeg -i sozai.dv -target vcd movie.mpg

    ○ffmpegでMPEG-4

    簡単に動画をエンコードできるとなれば、次は画質にこだわりたくなるはず。そこで、高画質と高圧縮率で人気を博している「MPEG-4」に目を向けてみよう。ffmpegには数種類のMPEG-4系コーデックが含まれているため、QuickTime Proの力を借りずともMPEG-4ムービーを生成できるのだ。

    なお、OS XではQuickTimeベースのMPEG-4のほかに、QuickTime非依存のコーデック「DivX」も選択肢となるが、どちらも有償となってしまう。DivXには無償版が用意されているものの、画面サイズを変更できないほかオーディオストリームがPCMのみとなるため、ファイルサイズが嵩むというデメリットもある。コーデックの性能はともかくとして、ffmpegならばどちらの問題もクリアできる。

    ただし、ffmpegにはAAC LCのオーディオストリームを生成する機能がないほか、ビデオ/オーディオストリームを多重化する機能も実装されていないため、他のフリーウェアの力を借りることになる。まずは以下に示す手順にしたがい、AACエンコーダ「FAAC」と多重化ツール「MPEG4IP」をインストールしてほしい。

    faacのインストール(要開発環境、作業は管理者権限を持つユーザとして行うこと)

    $ tar xzf faac_040118.tar.gz
    $ cd faac
    $ mv bootstrap bootstrap.orig
    $ sed 's/libtoolize/glibtoolize/' bootstrap.orig > bootstrap
    $ sh bootstrap
    $ ./configure
    $ make
    $ sudo make install

    MPEG4IPのインストール(要開発環境、作業は管理者権限を持つユーザとして行うこと)

    $ tar xzf mpeg4ip-1.0.tar.gz
    $ cd mpeg4ip-1.0
    $ mv bootstrap bootstrap.orig
    $ sed 's/libtoolize/glibtoolize/' bootstrap.orig > bootstrap
    $ cd lib/gnu
    $ mv Makefile.in Makefile.in.orig
    $ sed 's/ -Werror//' Makefile.in.orig > Makefile.in
    $ cd ../..
    $ sh bootstrap --disable-mp4live --disable-shared
    $ mv mpeg4ip_config.h temp1
    $ sed 's/#define HAVE_GETOPT 1//' temp1 > temp2
    $ sed 's/#define HAVE_GETOPT_H 1//' temp2 > temp3
    $ sed 's/#define HAVE_GETOPT_LONG 1//' temp3 > mpeg4ip_config.h
    $ make LDFLAGS='-flat_namespace -undefined warning'
    $ sudo cp server/mp4creator/mp4creator /usr/local/bin (※)
    $ sudo strip /usr/local/bin/mp4creator

    ※:「sudo make install」を実行すればMPEG4IPの全内容をインストールできるが、ここでは多重化に使うコマンドのみ/usr/local/binディレクトリへコピーした

    以上でAACエンコードを行うfaacコマンドと、MPEG-4のビデオ/オーディオストリームを多重化するmp4creatorコマンドがインストールできたはずだ。次はいよいよエンコードと多重化の作業になるが…紙幅が尽きたので、続きはまた来週。

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン