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 yasm
FFmpegとは?
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);