ダウンロード サンプルファイル (1.5 KB)
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でアクセスすると次のように表示されます。

この記事は参考になりましたか?
- 目的に応じて適材適所で使うPHPライブラリ連載記事一覧
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 片渕 彼富(カタフチ カノトミ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
