前の記事 ≪:JavaScriptでボックス要素の角丸を自由自在に操るライブラリ「RUZEE.Borders...
次の記事 ≫:Webサーバ上のエクスプローラー「PHPEXPLORATOR」

PHPで動画形式の各種変換が行えるffmpegのラッパークラスライブラリ「ffmpeg」

2007年03月27日-はてなブックマーク

スポンサード リンク
[PR] 英単語を忘却曲線アプリを使って超効率よく記憶する方法
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($filename0strrpos($filename'.'));
    
$ok $ffmpeg->setInputFile($input_dir.$file);
    if(!
$ok)
    {
        echo 
$ffmpeg->getLastError()."<br />rn";
        
$ffmpeg->reset();
        continue;
    }
    
$ffmpeg->setVideoOutputDimensions(320240);

    
$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本体もインストールの必要があります。

関連エントリ

関連の記事検索:ffmpeg, movie, 動画
スポンサード リンク

By.KJ : 2007年03月27日 10:02 livedoor Readerで購読 Twitterに投稿

間違いの指摘をしていただける方はメール、あるいはTwitter/FBでお願いします(クリック)