Существует несколько способов решения этой проблемы.
Во-первых, это действительно зависит от того, сможете ли вы получить информацию о ходе выполнения любого процесса, который вы используете для конвертации вашего видео.Если нет, я рекомендую просто использовать некоторую оценку прогресса во внешнем интерфейсе, т. Е. Установить таймер в JavaScript и заставить его работать без фактического разговора с серверным.
Если вы можете получить прогрессинформация, существует два основных способа взаимодействия между интерфейсами и серверами.
Во-первых, вы можете использовать старый добрый HTTP и HTML в синхронном процессе.Вы можете позвонить flush , чтобы записать все свои выходные данные клиенту.Вы можете настроить страницу HTML, вызвать flush, чтобы написать ее клиенту, а затем периодически добавлять новые элементы HTML (или вызовы функций JavaScript), которые вы сбрасываете на клиент.Другими словами, добавьте что-то вроде:
<div class="progressbar" width="77px"></div>
Индикатор выполнения класса CSS установит координаты элемента и установит цвет фона, а ширина (постоянно увеличивающаяся) заставит это покрывать большепространство с течением времени.
Путь JavaScript, вероятно, несколько проще:
<script>
updateProgress(77);
</script>
Вам просто нужно создать функцию во внешнем интерфейсе, которая обновляет фактический индикатор выполнения.
Лучший способ сделать это - асинхронно.Вместо того, чтобы работа выполнялась в процессе PHP, который идет с запросом PHP, используйте сервер заданий (я рекомендую Gearman ) или очередь ( Amazon SQS или RabbitMQ *)1024 * являются хорошими вариантами) чтобы эта работа была выполнена в другом процессе.Этот процесс может отправлять информацию о ходе выполнения на сервер заданий или в базу данных.
Интерфейс будет использовать либо обновленную HTML-страницу, либо что-то с AJAX, чтобы каким-либо способом запросить завершенность заданияидентификатора.Серверная часть, которая получает запрос, проверит сервер заданий или базу данных с этим идентификатором, чтобы определить, насколько далеко он находится.