CodeZine(コードジン)

特集ページ一覧

PHPで行う動画変換(前編)

目的に応じて適材適所で使うPHPライブラリ(8)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2010/06/10 14:00
目次

ffmpeg-phpを使った動画プロパティの取得

 FFMPEG-PHP Classと一緒に配布されているサンプルの動画を利用して、動画のプロパティを取得するサンプルを作成します。

 php_ffmpegをインストールしたことでphpからffmpegの機能を利用できるffmpeg_movie、ffmpeg_frameというクラスが使えます。

 ffmpeg_movieのメソッドの代表的なものに以下のメソッドがあります。

ffmpeg_movieの代表的なメソッド
メソッド名 概要
getDuration() 再生時間(秒)を取得
getFileName() ファイル名を取得
getFrameRate() フレームレートを取得
getAudioCodec() オーディオコーデックを取得
getFrame(フレームのコマ数) 指定された動画のコマをffmpeg_frameオブジェクトとして取得する
ffmpeg_frameの代表的なメソッド
メソッド名 概要
getWidth() フレームの幅を取得する
getHeight() フレームの高さを取得する
toGDImage() フレームをGDオブジェクトとして取得する

 ffmpeg_movieを使って動画のプロパティを取得するサンプルを作成します。

 ファイル名をクエリの変数名「file」で指定してffmpeg_movieの各メソッドで値を取得します。

[リスト11]3gp.php(抜粋)
<?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のメソッドを利用して動画内の特定のフレームを取り出して画像に変換します。

[リスト12]3gp_image.php(抜粋)
// ファイル名を指定
$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でアクセスすると次のように表示されます。

3gp.php実行結果
3gp.php実行結果

  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:目的に応じて適材適所で使うPHPライブラリ

もっと読む

著者プロフィール

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

  • WINGSプロジェクト 片渕 彼富(カタフチ カノトミ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5