PHPは複数の関数を介してビデオを処理し、次の一般的な関数をリストします。
ffmpeg_open()は、ビデオファイルを開き、ビデオハンドルを返すために使用されます。使用の例は次のとおりです。
$ffmpeg = ffmpeg_open('video.mp4');
FFMPEG_SEEK()関数は、ビデオファイルの指定された場所を見つけるために使用されます。たとえば、ビデオの再生ポインターを30秒まで見つけます。
ffmpeg_seek($ffmpeg, 30); // ビデオポインターを移動します302番
FFMPEG_FRAME_TO_PNG()関数は、ビデオ内の特定のフレームをPNG画像ファイルとして保存するために使用されます。サンプルコードは次のとおりです。
ffmpeg_frame_to_png($ffmpeg, 'output.png');
PHPを使用して、ビデオをGIFアニメーションにトランスコードします。まず、PHPのFFPHP拡張機能をインストールし、次のコマンドを使用してインストールする必要があります。
sudo pecl install ffphp
インストールが完了したら、ビデオをGIFアニメーションに変換するための完全なコードを次に示します。
$ffmpeg = ffmpeg_open('video.mp4');
$frames = 30; // 每2番生成30フレーム
$width = 240; // GIF図幅
$height = 180; // GIFフィギュアの高さ
$gif = new GifEncoder();
for ($i = 0; $i < $frames; $i++) {
ffmpeg_seek($ffmpeg, $i * 1 / $frames * $duration); // 计算每一フレーム对应的时间点
$tmp_file = tempnam(sys_get_temp_dir(), 'movie_frame');
ffmpeg_frame_to_png($ffmpeg, $tmp_file); // 获取当前フレーム并保存为PNG形式
$im = imagecreatefrompng($tmp_file); // 意思PNGに変換しますGD画像
imagedestroy($im); // 無料のメモリ
$gif->addFrame($im); // 意思当前フレーム添加到GIFアニメーションで
unlink($tmp_file); // 一時ファイルを削除します
}
$gif->finish(); // 仕上げるGIFファイル生成
上記のコードでは、ビデオフレームをGIFENCODERクラスを介してGIFアニメーションに変換します。 Githubからクラスをダウンロードできます。これは、GIFエンコーダの純粋なPHP実装です。
PHPは、ビデオ処理に強力な機能を提供します。組み込みのFFMPEG関数を使用することにより、ビデオ編集、トランスコーディング、画像抽出、その他の操作を簡単に実装できます。この記事では、ビデオファイルをGIFアニメーションに変換する方法を示します。これらの例があなたを助け、PHPでビデオ編集をよりよく実行できるようにすることを願っています。