SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

flvtool2のインストール

 FFMPEG-PHP Class内でflvファイルへの動画変換時にメタデータを付与するツールflvtool2を使用していますので以下のコマンドでインストールします。

Linuxの場合

[リスト5]flvtool2インストール
# wget http://rubyforge.org/frs/download.php/17497/flvtool2-1.0.6.tgz
# tar xzf flvtool2-1.0.6.tgz
# cd flvtool2-1.0.6
# ruby setup.rb config
# ruby setup.rb setup
# ruby setup.rb install

Windowsの場合

 flvtools2配布サイトより最新アーカイブflvtool2-1.0.6.zipをダウンロードし、解凍します。

 解凍してできたフォルダ内のflvtools2.exeをパスの通ったディレクトリに配置します。

ライブラリ、動画ファイルの配置

 FFMPEG-PHP Classは、プロジェクトのWebページからphpvideotoolkit0.1.5.zipをダウンロードして解凍後、phpvideotoolkit.php5.php、adapters/videoto.phpをsampleフォルダに配置します。

 またこのライブラリと一緒に配布されているサンプル動画examples/to-be-processed/MOV00007.3gp、examples/to-be-processed/cat.mpeg もサンプルフォルダに配置します。

 Zend_Http_Clientは、Zend FrameworkのページよりZend Framework 1.10 fullをダウンロードして解凍後、libraryフォルダ内のZend/Http、Zend/Uri、Zend/Validateをフォルダごと、Exceprion.php、Loader.php、Uri.phpをsampleフォルダ内に配置します。

 サンプルではApacheのDocumentRootを「/var/www/html」としていますので、実行環境に応じて読み換えてください。

 また、便宜上DocumentRoot直下に各ライブラリを配置しておりますが、実際のシステム開発ではDocumentRoot以外の場所に配置してinclude_pathを通すようにしてください。

ライブラリの修正

 phpvideotoolkit.php5.php内でffmpeg、flvtool2のパスが設定されていますのでサンプルを実行する環境に合わせて編集します。

 本記事の例に従ってインストールした場合には、ffmpeg、flvtool2共にphpvideotoolkit.php5.phpでデフォルトで設定されているパスにインストールされますので修正の必要はありません。

[リスト6]phpvideotoolkit.php5.phpの66行目以降
/**
 * Set the ffmpeg binary path
 */
if(!defined('PHPVIDEOTOOLKIT_FFMPEG_BINARY'))
{
    define('PHPVIDEOTOOLKIT_FFMPEG_BINARY', '/usr/local/bin/ffmpeg');
}
/**
 * Set the flvtool2 binary path
 */
if(!defined('PHPVIDEOTOOLKIT_FLVTOOLS_BINARY'))
{
    define('PHPVIDEOTOOLKIT_FLVTOOLS_BINARY', '/usr/bin/flvtool2');
}

 本記事ではMP3エンコーダにlameを使用していますので、phpvideotoolkit.php5.php内のMP3エンコーダーの定義を次のように変更します。

[リスト7]phpvideotoolkit.php5.phpの222行目 変更前
const FORMAT_MP3             = 'mp3';
[リスト8]phpvideotoolkit.php5.phpの222行目 変更後
const FORMAT_MP3             = 'libmp3lame';

 adapters/videoto.php内のFLVメソッドで指定されている一時的にファイルを出力するパスの後ろに「/」がついておらず、環境によってはうまく動作しませんので、次のように「/」をつけます。

[リスト9]videoto.phpの33行目(修正前)
public static function FLV($file, $options=array(), $target_extension='flv')
{
//     merge the options with the defaults
    $options = array_merge(array(
        'temp_dir'                    => '/tmp',
        'width'                        => 320,
[リスト10]videoto.phpの33行目(修正後)
public static function FLV($file, $options=array(), $target_extension='flv')
{
//     merge the options with the defaults
    $options = array_merge(array(
        'temp_dir'                    => '/tmp/',
        'width'                        => 320,

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

この記事は参考になりましたか?

目的に応じて適材適所で使う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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5173 2010/06/10 14:00

おすすめ

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー