Есть ли способ использовать процессор удаленной машины для преобразования в ffmpeg? - PullRequest
0 голосов
/ 17 сентября 2010

Мой сайт построен на PHP. У меня есть WWW-сервер, где все загрузки заканчиваются для обработки, а затем они пересылаются на один из 4 медиа-серверов. Если есть медленный и устойчивый поток загрузок, сервер WWW преобразует их все достаточно быстро, но если группа людей загружает что-то одновременно, они помещаются в очередь, и для обработки файла может потребоваться несколько часов.

Медиа-серверы, как правило, бездействуют, поскольку подача файлов с SSD-дисков не приводит к iowait, поэтому процессор просто сидит, и я хотел использовать его для преобразований.

Какой хороший (простой) способ сделать это?

Ответы [ 3 ]

2 голосов
/ 17 сентября 2010

Пусть WWW-сервер скопирует файл на медиа-сервер и запустит там непрерывный процесс, который преобразует их, а затем каким-то образом информирует веб-сервер.

Вот пример использования базы данных для связи между состояниями:

  1. Веб-сервер получает выгрузку
  2. Веб-сервер копирует файл на один из медиасерверов, создает запись базы данных с состоянием «NEW» и назначает ее медиасерверу
  3. Рассматриваемый медиа-сервер замечает новую запись при опросе базы данных каждые 10 секунд или около того
  4. Сервер мультимедиа преобразует видео и обновляет запись базы данных в состояние «ОБРАБОТАНО»
  5. Видеотеперь отображается на веб-сайте.

Назначение может быть выполнено либо путем передачи файлов на серверы мультимедиа в циклическом режиме, либо вы даже можете заставить их сообщать о своей текущей рабочей нагрузке, чтобыможно использовать наименее загруженный сервер.

(Также у вас есть SSD-хранилище для видео? Я хочу кое-что из этого ...)

0 голосов
/ 17 сентября 2010

Вы можете использовать ssh -e none hostname command < infile > outfile для выполнения процесса преобразования на медиасервере с веб-сервера, передачи файла через stdin и получения выходного файла через stdout.

Если ваша сеть должным образом защищена, вы можете вместо этого использовать rsh и избежать затрат на шифрование, но вам нужно быть очень уверенными, что никто другой не сможет получить доступ к вашему медиа-серверу, так как rsh - это пример учебника по удаленному выполнению.

0 голосов
/ 17 сентября 2010

Почему веб-сервер в первую очередь выполняет преобразование ffmpeg?похоже, что медиасерверы должны делать это в любом случае.

Когда выгрузка приходит, скопируйте выгрузку медиасервера, циклический переборВы можете обнаружить нагрузку на медиа-серверы и скопировать на наименее используемый.Подайте сигнал на сервер, скопированный для преобразования ffmpeg.После завершения медиа-сервер копирует обработанный файл в папку rsync для остальных серверов.

мне кажется довольно простым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...