Я написал целую систему на PHP и bash на сервере для конвертации и потоковой передачи видео в HTML5 на своем VPS. Преобразование выполняется ffmpeg в фоновом режиме, и содержимое выводится в block.txt .
Посмотрев следующие посты:
Может ли ffmpeg показывать индикатор выполнения?
и
Индикатор выполнения кодирования видео ffmpeg
среди прочего, я не могу найти рабочий пример.
Мне нужно получить текущий закодированный прогресс в процентах.
Первый пост, на который я ссылался выше, дает:
$log = @file_get_contents('block.txt');
preg_match("/Duration:([^,]+)/", $log, $matches);
list($hours,$minutes,$seconds,$mili) = split(":",$matches[1]);
$seconds = (($hours * 3600) + ($minutes * 60) + $seconds);
$seconds = round($seconds);
$page = join("",file("$txt"));
$kw = explode("time=", $page);
$last = array_pop($kw);
$values = explode(' ', $last);
$curTime = round($values[0]);
$percent_extracted = round((($curTime * 100)/($seconds)));
echo $percent_extracted;
Извлеченная переменная $percent _повторяет ноль, и, поскольку математика не является моей сильной стороной, я действительно не знаю, как здесь продвинуться.
Вот одна строка из вывода ffmpeg из block.txt (, если это полезно)
time=00:19:25.16 bitrate= 823.0kbits/s frame=27963 fps= 7 q=0.0 size= 117085kB time=00:19:25.33 bitrate= 823.1kbits/s frame=27967 fps= 7 q=0.0 size= 117085kB time=00:19:25.49 bitrate= 823.0kbits/s frame=27971 fps= 7 q=0.0 size= 117126kB
Пожалуйста, помогите мне вывести этот процент, как только я закончу, я смогу создать свой собственный индикатор выполнения. Спасибо.