[メモ] PHPとffmpegでflvの再生時間を取得する

Filed under ffmpeg, PHP

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;
    }
}
?>

Post a Comment

Your email is never published nor shared.