сделал выполнение с записью вывода ffmpeg в файл и потом по логу через php вывод %.
функция
<?php
function ffmpeg_progress($log)
{
$content = @file_get_contents($log);
$progress = 0;
if ($content) {
preg_match("/Duration: (.*?), start:/", $content, $matches);
$rawDuration = $matches[1];
$ar = array_reverse(explode(":", $rawDuration));
$duration = floatval($ar[0]);
if (!empty($ar[1])) $duration += intval($ar[1]) * 60;
if (!empty($ar[2])) $duration += intval($ar[2]) * 60 * 60;
preg_match_all("/time=(.*?) bitrate/", $content, $matches);
$rawTime = array_pop($matches);
if (is_array($rawTime)) {
$rawTime = array_pop($rawTime);
}
$ar = array_reverse(explode(":", $rawTime));
$time = floatval($ar[0]);
if (!empty($ar[1])) $time += intval($ar[1]) * 60;
if (!empty($ar[2])) $time += intval($ar[2]) * 60 * 60;
$progress = @round(($time / $duration) * 100);
}
return $progress;
}
запуск ffmpeg
<?php
exec('ffmpeg параметры...... 1> файл.log 2>&1');
Changed: JustZero (26.04.2015 / 22:43)