ffmpeg-phpを使った動画プロパティの取得
FFMPEG-PHP Classと一緒に配布されているサンプルの動画を利用して、動画のプロパティを取得するサンプルを作成します。
php_ffmpegをインストールしたことでphpからffmpegの機能を利用できるffmpeg_movie、ffmpeg_frameというクラスが使えます。
ffmpeg_movieのメソッドの代表的なものに以下のメソッドがあります。
| メソッド名 | 概要 |
| getDuration() | 再生時間(秒)を取得 |
| getFileName() | ファイル名を取得 |
| getFrameRate() | フレームレートを取得 |
| getAudioCodec() | オーディオコーデックを取得 |
| getFrame(フレームのコマ数) | 指定された動画のコマをffmpeg_frameオブジェクトとして取得する |
| メソッド名 | 概要 |
| getWidth() | フレームの幅を取得する |
| getHeight() | フレームの高さを取得する |
| toGDImage() | フレームをGDオブジェクトとして取得する |
ffmpeg_movieを使って動画のプロパティを取得するサンプルを作成します。
ファイル名をクエリの変数名「file」で指定してffmpeg_movieの各メソッドで値を取得します。
<?php // ファイル名を取得 $movie_file = $_GET['file']; // ffmpeg_movie をコール $movie = new ffmpeg_movie($movie_file); ?> <html> <body> FileName : <a href="<?php echo $movie_file; ?>"><?php echo $movie->getFileName(); ?></a><br /> Framerate : <?php echo $movie->getFrameRate(); ?><br /> VideoCodec : <?php echo $movie->getVideoCodec(); ?><br /> BitRate : <?php echo $movie->getBitRate(); ?><br /> AudioCodec : <?php echo $movie->getAudioCodec(); ?><br /> AudioSampleRate : <?php echo $movie->getAudioSampleRate(); ?><br /> <br /> <img src="3gp_image.php?file=<?php echo $movie_file; ?>" /> </body> </html>
ffmpeg_frameのメソッドを利用して動画内の特定のフレームを取り出して画像に変換します。
// ファイル名を指定
$movie_file = $_GET['file'];
// ffmpeg_movie をコール
$movie = new ffmpeg_movie($movie_file);
// 10フレームを取得
$frame = $movie->getFrame(10);
// 取得したフレームを画像の形式に
$image = $frame->toGDImage();
// 表示
header('Content-Type: image/jpeg');
imageJpeg($image,null,100);
imageDestroy($image);
画像を表示させる際に「Content-Type: image/jpeg」のヘッダを付加してimgJpeg関数でjpegとして出力しています。
http://[ドメイン]/3gp.php?file=MOV00007.3gpでアクセスすると次のように表示されます。

