PHPプロ!TIPS+
ffmpeg-phpで動画のデータを取得しよう
オープンソースで動画や音声を変換するツールと言えば、ffmpegがあります。多彩なコーデックに対応しており、いろいろなものに使われています。
このffmpegの機能の一部をPHPで簡単に使えるようにしたエクステンションがffmpeg-phpです。これを使えば、少ないコードで簡単に、動画のプロパティや画像を取得できます。
では、早速使い方の解説です。
ffmpeg-phpのインストールには、ffmpeg本体が必要で、ffmpegのコンパイル時に
--enable-shared
をつけておく必要があるのでご注意ください。
ffmpegの準備ができたら、ffmpeg-phpのソースコードを
http://ffmpeg-php.sourceforge.net/
からダウンロード、解凍して、
phpize ./configure make make install
とするだけでインストールは終了です。
動作の確認は、解凍したffmpeg-phpのディレクトリにあるtests と test_ffmpeg.phpをドキュメントルートにコピーしてアクセスし、テスト用ファイルのデータが出力されれば正常です。
次に、実際の使い方です。
dl("ffmpeg." . PHP_SHLIB_SUFFIX); //エクステンションをロード
$movie_path = 'tests/test_media/test.avi'; //画像のパス
$movie = new ffmpeg_movie($movie_path); //インスタンス生成
echo $movie->getFileName(); //ファイル名取得、表示
echo "
";
echo $movie->getFrameRate(); //フレームレート表示
/* 実行結果 tests/test_media/test.avi 24 */
以上、わずか数行書くだけで、test.aviのプロパティが取得できます。
次に、画像の取得と表示方法です。(GDが必要です)
$frame = $movie->getFrame(100); $image = $frame->toGDImage(); getFrameで取得するフレームを指定し、toGDImageでresouseを返しますので、 ob_end_clean(); header('Content-Type: image/jpeg'); imageJpeg($image,null,100); imageDestroy($image);
とすると、画像を表示することができます。
これらを応用すると、例えば、あるディレクトリに画像を置くだけで、動的に画像のタイトルを取得し、画像を出力してサムネイルを作成したり、動画のデータを自動的にデータベースに入力するなどの使い方がでます。
また、ここで紹介したものはほんの一部ですので、他に使用できるメソッドなどは、公式のAPIドキュメント
http://ffmpeg-php.sourceforge.net/apidoc.php
をご覧ください。
ffmpeg-phpは面倒な画像取得などを少しのコードで実現できるので、機会があれば使ってみてはいかがでしょうか。
バックナンバーについて
TIPS-MLは、毎週金曜日に更新され、新しい記事が掲載されます。





ページのトップへ


今回のような実践的な経験がエンジニアのキャリアに繋がると思います。是非サービスを成功させて下さい!