PHPで動画形式の各種変換が行えるffmpegのラッパークラスライブラリ「ffmpeg」
2007年03月27日-
スポンサード リンク
PHP Classes - Class: ffmpeg
This class is a wrapper around the ffmpeg program to manipulate and convert video files.
PHPで動画形式の各種変換が行えるffmpegのラッパークラスライブラリ「ffmpeg」。
ffmpegを使えば、あらゆる動画形式のファイルの相互変換を行うことが出来ます。
例えば、Flashのビデオ形式であるflvをmpegやmp3に変換したり、WindowsMedia形式の動画をiPod用の動画形式に変換することが出来ます。
今回はそのffmpegを、PHPから簡単に扱うためのクラスライブラリを紹介。
以下がffmpegクラスを使ったサンプルプログラム
<?php
define('FFMPEG_BINARY', '/usr/local/bin/ffmpeg');
define('FFMPEG_FLVTOOLS_BINARY', '/usr/bin/flvtool2');
require_once 'ffmpeg.php';
$files_to_process = array(
'xxxxx/ffmpeg/www/example/to-be-processed/MOV00007.3gp',
'xxxxx/ffmpeg/www/example/to-be-processed/Video000.3gp'
);
$video_output_dir = 'xxxxx/ffmpeg/www/example/processed/videos/';
$bitrate = 64;
$samprate = 44100;
$ffmpeg = new ffmpeg();
$ffmpeg->on_error_die = FALSE;
foreach($files_to_process as $file)
{
$filename = basename($file);
$filename_minus_ext = substr($filename, 0, strrpos($filename, '.'));
$ok = $ffmpeg->setInputFile($input_dir.$file);
if(!$ok)
{
echo $ffmpeg->getLastError()."<br />rn";
$ffmpeg->reset();
continue;
}
$ffmpeg->setVideoOutputDimensions(320, 240);
$ffmpeg->setFormatToFLV($samprate, $bitrate);
$ok = $ffmpeg->setOutput($video_output_dir, $filename_minus_ext.'.flv', TRUE);
if(!$ok)
{
echo $ffmpeg->getLastError()."<br />rn";
$ffmpeg->reset();
continue;
}
$result = $ffmpeg->execute(TRUE);
if(!$result)
{
echo $ffmpeg->getLastError()."<br />rn";
$ffmpeg->reset();
continue;
}
echo 'Video converted... <b>'.array_shift($ffmpeg->getLastOutput()).'</b><br />'."rn";
$ffmpeg->reset();
}
?>
次の流れで、変換が行え、ソースコードも比較的分かりやすいですね。
ffmpeg::setInputFile - 入力ファイルを設定
ffmpeg::setFormatToFLV - フォーマットをFLVに指定
ffmpeg::setOutput - 出力の設定
ffmpeg::execute - 変換の実行
最初はとっつきにくいかもしれませんが、クラスの形式なので慣れると結構使いやすそうです。
尚、本クラスはffmpegというバイナリプログラムをexecで単に呼び出しているにすぎないので、別途ffmpeg本体もインストールの必要があります。
関連エントリ
スポンサード リンク
Advertisements
SITE PROFILE
最新のブログ記事(新着順)
- CSSのみで実装された500種類のローディングアニメーション「CSS Loaders」
- 画像ホバーで様々なエフェクトをかけられる「Izmir」
- CSSのbox-shadowをGUIで生成できる「CSS Box Shadows Generator」
- 好きな画像や文字を埋め込んだQRコードをリアルタイムで作れるWEBツール
- 約7500種の汎用ピクトグラムアイコン集「Phosphor Icons」
- ほぼCSSで実装されたUIフレームワーク「Ellegant CSS」
- TailwindCSSベースの150種類以上のUIライブラリ「SailboatUI」
- 1700種類以上のSVGアイコン「MingCute Icon」
- 2000種類以上の汎用ピクトグラムアイコン集「Atlas Icons」
- かわいい手書き風フォント「うさぎとまんげつのサンセリフ」
- 過去のエントリ