k01ken’s b10g

He110 W0r1d!

ffmpegを利用する

開発環境は、Windows10 Pro(64bit)。

動画から一部のフレームのサムネイル画像を作成したくて、ffmpegを利用してみることにしました。

1.公式サイトへアクセスする
https://www.ffmpeg.org/

2.左サイドバーのDownloadと書かれたリンクをクリック
f:id:k01ken:20190528061412p:plain

3.Get the packagesと書かれた欄のWindowsのアイコンにマウスカーソルを合わせて、Windows Buildsのリンクをクリック
f:id:k01ken:20190528061625p:plain

4.Versionは現時点で4.1.3を選択し、ArchitectureはWindows 64-bitを選択し、Linkingはstaticを選択し、Download Buildボタンをクリックし、zipファイルをダウンロードする
f:id:k01ken:20190528061912p:plain

5.ダウンロードしたzipファイルを解凍し、ファイル内へアクセスし、bin,doc,presetsディレクトリが直下にあるディレクトリの名前をffmpegに変更して、Cドライブ直下へ移動させる。

6.ffmpegディレクトリ内のbinディレクトリへのパス(今回はc:\ffmpeg\bin)を、Windowsの開発環境PATH内に設定する
k01ken.hatenablog.com

7.コマンドプロンプトを起動し、

ffmpeg -version

と入力し、バージョン情報が表示されたら、正しくパスが通っている。

8.Cドライブ直下に、ffmpeg_testというディレクトリを作成し、その中に、サムネイルを作成したい動画(名前は一応、input.mp4)を入れる。
※Cドライブ直下に、動画を設置すると、管理者権限でコマンドプロンプトを起動しないと、動作が失敗するので注意。

9.コマンドプロンプトを起動し、カレントディレクトリを上記のffmpeg_testにして、以下のコマンドを入力。

ffmpeg -i input.mp4 -f image2 -ss 120 -vframes 1 -s 426x240 thumbnail.jpg

成功すれば、動画の120秒の位置のフレームのthumbnail.jpgが、幅426px、高さ240pxで、同じディレクトリ内に作成されているはずです。

PHP経由で実行してみる

PHPからffmpegを実行して動作させたいと思います。といっても、単に、PHPのexec関数を使うだけです。

<?php
$output = '';
$status = '';
$command = 'ffmpeg -i input.mp4 -f image2 -ss 120 -vframes 1 -s 426x240 thumbnail.jpg';
exec($command, $output, $status);

if($status === 0){
  echo '成功しました';
}else{
  echo '失敗しました';
}
?>