PHPとffmpegで、flvの再生時間を取得するメモ。
Windowsマシンで動かしてますが、ちょっと書き換えれば他のとこでも動くはず。
<?php
// ffmpegを使って、動画の情報を取得
$command = "ffmpeg.exe -i \"video.flv\"";
exec("{$command} 2>&1", $output);
// ffmpegの出力結果を取得
foreach($output as $line)
{
// 正規表現で時間を表示している文字列を取得
preg_match("/Duration: [0-9]{2}:[0-9]{2}:[0-9]{2}/s", $line, $matches);
// 時間を取得している場合は解析
if(count($matches) > 0)
{
$tmp1 = str_replace(" ", "", $matches[0]);
$tmp2 = split(":", $tmp1);
// 動画の時間を計算
$time = intval($tmp2[1]) * 3600 + intval($tmp2[2]) * 60 + intval($tmp2[3]);
echo "{$time} seconds.\n";
break;
}
}
?>