PHP機能拡張:画像(ImageMagick)と映像(FFmpeg)モジュールのインストールと「php.ini」設定
『ImageMagick』と『FFmpeg』のダウンロードとインストール設置、「php.ini」設定及び動作確認を理解
『ImageMagick』のダウンロード※画像クリックで拡大表示(リンク)
- 「ImageMagick」のダウンロードサイトにある
http://www.imagemagick.org/script/binary-releases.php の『Windows Binary Release』にある「ImageMagick-6.8.8-2-Q16-x64-dll.exe」が最新版(2014.1.13現在)であるが、PHP5.3.28では動作しない。
- 2014年1月以降では、windows用バイナリーの『msi』タイプの旧バージョンの「ImageMagick」をダウンロードするサイトが見つからず、このサイトに設置しました。
(注)「ImageMagick」の色々のバージョンを試してみたがいずれもNGとなってしまったため、以下のバージョンを利用して下さい。『Q16』(クオンタム16)は、1ピクセル当り16bit処理のコンポーネットを意味します。
『ImageMagick-6.6.2-10-Q16-windows-dll.exe』のダウンロード
PHP機能拡張モジュールの「php_imagick.dll」のダウンロード
- 『PHP5.3』用のダウンロードサイトがクローズしたので、下記のものをダウンロードして下さい。
『php_imagick_ts.dll』のダウンロード - PHP5.4+「php_imagick.dll」のダウンロードサイトは、
http://www.peewit.fr/imagick/ で「php_imagick.dll」をダウンロードできます。('Windows用 PHP5.4/5.5のThread Safe'のもの)
『ImageMagick』のインストール
- ImageMagickのインストール場所の開始
ダウンロードした『ImageMagick-6.6.2-10-Q16-windows-dll.exe』をダブルクリックしてインストールを開始します。「Next」ボタンをクリック。
- ImageMagickのライセンスに同意
『I accept the agreement』にチェックを入れて、「Next」ボタンをクリック。
- ImageMagick情報の確認
『Welecome to ImageMagick!』の情報を確認して、「Next」ボタンをクリック。
- ImageMagickのインストール場所の設定
Cドライブ直下にインストールするため、『C:\ImageMagick-6.6.2-Q16』にパスを変更して、「Next」ボタンをクリック。
- ImageMagickのスタートフォルダの指定
デフォルトのままの『ImageMagick6.6.2Q16』として、「Next」ボタンをクリック。
- ImageMagickの他言語用モジュールの指定なし
デフォルトのままのチェックマークとして、「Next」ボタンをクリック。
- ImageMagickのインストール内容の確認
インストールする場所等の内容を確認して、「Install」ボタンをクリックしてインストールを開始します。
- ImageMagickのインストール実行中
- ImageMagickのテスト情報の確認
コマンドプロンプトのテスト情報を確認して、「Next」ボタンをクリック。
- ImageMagickのインストール完了
『Completing the ImageMagick ...』のダイアログが表示されてインストール完了です。「Finish」ボタンをクリックして閉じます。
- ImageMagickのHTMLドキュメントの表示
インストールされた『ImageMagick』の使い方等のページ「HTMLドキュメント」が表示されます。
(注)インストールが正常に終了すると、「スタート」ボタンにある「すべてのプログラム」に『ImageMagick6.6.2Q16』が追加されます。
加えて、コマンドプロンプト動作ができるように、環境変数の「システム環境変数」にある「Path」にインストール場所の内容『C:\ImageMagick-6.6.2-Q16;』が追加されます。(「;」は、パスの項目区切り)
『php_imagick_ts.dll』の設置場所と「php.ini」ファイルの設定内容
- 「php_imagick_ts.dll」の設置場所
PHPの機能拡張モジュールは、PHPフォルダの『ext』フォルダに設置するため、ダウンロードした「php_imagick_ts.dll」を設置。
- 「php.ini」ファイルへ機能拡張モジュールの『php_imagick_ts.dll』を追加してファイル更新
「php.ini」ファイルの『Dynamic Extensions』の項目の後ろに『extension=php_imagick_ts.dll』を追加する
- 「php.ini」ファイルの変更した内容を有効にするためには、WEBサーバーの『Apache』の再起動が必要のため、「Apache Service Monitor」を起動し『Restart』ボタンをクリックする。
以下のエラーメッセージが表示された場合は、「ImageMagick」と「php_imagick_ts.dll」のミスマッチのため発生すると思われるため、『php_imagick_ts.dll』のバージョン『5.3.4-dev』を確認してください。
- 『php_imagick_ts.dll』のバージョン違いによるエラーが多いので、注意が必要です。「php_imagick_ts.dll」のプロパティ表示で『5.3.4-dev』のバージョンを確認してください。
PHPプログラムによる『ImageMagick』の動作確認
- PHPインストールモジュール表示の「phpinfo.php」プログラムで確認
「phpinfo.php」を起動すると以下の『Imagick』が表示されれば、インストールが正常であることが確認できます。
- PHPテストプログラムによる『ImageMagick』の動作確認
「Apache」の再起動(Restart)がOKであっても、PHPの機能拡張モジュール『php_imagick_ts.dll』がマッチしないとエラーが発生するので実際にPHPテストプログラムで確認する必要があります。 - PHPテストプログラムと画像のダウンロード
『imagick_inst_testprogram.zip』のダウンロード
(注)ダウンロード後に解凍して『C:\WEBserver\htdocs\』(HTMLドキュメント・ルート)に設置して下さい。 - PHPテストプログラム「imagick.php」の内容
背景画像にロゴ画像を重ねて、新たな画像を作成してその内容を表示するものです。
- PHPテストプログラム「imagick.php」の表示内容
テストプログラム『imagick.php』を起動して、背景画像の船舶の上にロゴ画像が重なり新たな画像が完成した内容が表示されれば、『php_imagick_ts.dll』の動作が正常であると確認できます。
(注)プログラム実行で『Fatal error ...』のエラーが発生した場合は、「php_imagick_ts.dll」のバージョン違いであると思われるので再度確認する必要があります。
『FFmpeg』のダウンロード
- PHP機能拡張の『ffmpeg-php』をダウンロード
PHPで映像編集の「FFmpeg」が利用できるように『Zeranoe FFmpeg』サイトから『ffmpeg-php』をダウンロードする。
PHP5.3の場合『Zeranoe FFmpeg』サイトにあるhttp://x32.elijst.nl/ffmpeg6-php53-win32-vc9-all.zip
からダウンロード。
『ffmpeg-php』設置とモジュール確認
- 「ffmpeg-php」の設置場所
ダウンロードした「ffmpeg6-php53-win32-vc9-all.zip」を解凍して、「php_ffmpeg.dll」(赤の枠のもの)がPHP機能拡張モジュールとして、PHPフォルダ下の『ext』フォルダに設置し、それ以外のモジュール(緑の枠のもの)は『PHP』フォルダ直下に設置する。
- 「php.ini」ファイルへ機能拡張モジュールの『php_ffmpeg.dll』を追加してファイル更新
「php.ini」ファイルの『Dynamic Extensions』の項目の後ろに『extension=php_ffmpeg.dll』を追加する
- 「php.ini」ファイルの変更した内容を有効にするためには、WEBサーバーの『Apache』の再起動が必要のため、「Apache Service Monitor」を起動し『Restart』ボタンをクリックする。
- 「php_ffmpeg.dll」の機能拡張モジュールの確認
「phpinfo.php」を起動すると以下の『ffmpeg』が表示されれば、インストールが正常であることが確認できます。
PHPプログラムによる『php_ffmpeg』の動作確認
- PHPテストプログラムと映像のダウンロード
『ffmpeg_php_testprogram.zip』のダウンロード
(注)ダウンロード後に解凍して『C:\WEBserver\htdocs\』(HTMLドキュメント・ルート)に設置して下さい。 - PHPテストプログラム「test_ffmpeg_frame01.php」の表示内容
テストプログラム『test_ffmpeg_frame01.php』を起動して、『cat.mpeg』の映像データからフレーム画像を取得して「img_cvt」フォルダに保存して表示。また映像データの「所要時間」「フレームの幅、高さ、数、レート」「映像コーデック」「音声の有無」の情報を取得して内容が表示されれば、『php_ffmpeg.dll』の動作が正常であると確認できます。
PHP機能拡張を追加した「php.ini」のダウンロード
『php.ini_extension.zip』のダウンロード
ffmpeg-php extensionのクラスとメソッド一覧
ffmpeg_extensionの仕様一覧の表示(PDF)
『FFmpeg』のPHP classオブジェクトの構成方法
『FFmpeg』のPHP classオブジェクトは、
『FFmpeg』関連のコマンドプロンプトをインストールして、PHPクラス・オブジェクトのラッパー(wrapper)として動作させることでPHPプログラムから映像・音声コーディック変換が可能になります。
(注)『FFmpeg』のインストール構成方法については、「FFmpegのPHPクラス インストール」を参照ください。