FFmpeg - mac・PHPで使う
macのバージョンは、10.11.4。El Capitan。
参考: Mac OS XでFFmpegのインストールとWebM動画の作り方
brewでインストールした。ここまで長いオプションは必要ないのかもしれない。
brew install automake celt faac fdk-aac git lame \libass libtool libvorbis libvpx \libvo-aacenc opencore-amr openjpeg \opus sdl schroedinger shtool speex texi2html \theora wget x264 xvid yasmFFmpegとは?
FFmpeg(エフエフエムペグ)は動画と音声を変換することのできるUNIX系OS生まれのフリーソフトウェアであり、libavcodec(動画/音声のコーデックライブラリ)、libavformat(動画/音声のコンテナライブラリ)、libswscale(色空間・サイズ変換ライブラリ)、libavfilter(動画のフィルタリングライブラリ)などを含む。ライセンスはコンパイル時のオプションによりLGPLかGPLに決定される。コマンドラインから使用することができる。対応コーデックが多く、多彩なオプションを使用可能なため、幅広く利用されている。
引用:FFmpeg
PHP-FFMpegを使う
最初ffmpeg-phpを使おうとしたけど、エラーでインストールできなかった。2012年で開発終了しているらしい。
PHPでffmpegを利用するには、PHP-FFMpegがおすすめです。Composer対応のモダンなPHP実装なので、PHP5.3以上のコードベースではとても扱いやすいです。 ffmpeg-phpというPHP拡張もありますが、2012年で開発が止まっているのであまりおすすめしません。
PHP-FFMpegを使ってみる。
上記のREADMEに詳しく書いてあった。composerに追加してupdateしたら下記のような感じで使えるようになる。
composer.json
{ "require": { "php-ffmpeg/php-ffmpeg": "~0.5" }}fuelphpのコントローラ内でテスト。保存されている動画を取得して、jpgのサムネイル画像を作成して保存している。その後、fuelphpのImageクラスでリサイズして保存した。
//ffmpegテスト$ffmpeg = FFMpeg\FFMpeg::create(array( 'ffprobe.binaries' => '/usr/local/bin/ffprobe', 'ffmpeg.binaries' => '/usr/local/bin/ffmpeg'));$video = $ffmpeg->open(DOCROOT.'assets/movie/'.$movie['file_name']);// $video// ->filters()// ->resize(new FFMpeg\Coordinate\Dimension(320, 180))// ->synchronize();$frame = $video->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(15));$img_path = DOCROOT.'assets/movie/thumb/'.$movie['id'].'.jpg';$frame->save($img_path);
//画像のリサイズ//ffmpegのリサイズが効かない為Image::load($img_path)->resize(320, null, true, true)->save($img_path);