Очередь заданий Linux для преобразования FFmpeg

1648
Flock Dawson

Я запускаю веб-сервер Debian, на котором будет размещаться веб-сайт, на котором пользователи смогут загружать видеофайлы и воспроизводить их.

Следовательно, видеофайлы должны быть преобразованы в надлежащий формат (mp4, ogg, webm) для совместимости с различными браузерами.

До сих пор я написал скрипт bash, который добивается цели с помощью FFmpeg. Проблема в том, что когда многие пользователи загружают видео одновременно, мой веб-сервер работает очень медленно.

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

Любая помощь высоко ценится

2
Немного не по теме, но вам, вероятно, не нужно беспокоиться о ogg для видео HTML5 - mp4 и webm будут охватывать все основные веб-браузеры (и большинство второстепенных тоже). evilsoup 11 лет назад 0

2 ответа на вопрос

1
LtWorf

Поместите все готовые загруженные файлы в один каталог на любом используемом веб-языке.

Затем вы можете запланировать cronjob с вашим сценарием, например, запускать каждый час и конвертировать видео, которые находятся в каталоге pending /.

Возможно, вы захотите использовать flock, чтобы только один экземпляр этого скрипта мог работать одновременно, даже если это занимает больше времени, чем ожидалось, и cron запускает другой скрипт.

Внутри скрипта вы можете использовать команду nice, чтобы уменьшить ее приоритет, чтобы веб-сервер имел более высокий приоритет.

Спасибо за ваши ответы, я очень признателен за усилия, которые я закончил, добавив простую очередь в bash, основываясь на информации, которую я нашел на этом сайте http://andrew-hills.blogspot.be/2008/02/simple-bash-based -queue-system.html Flock Dawson 11 лет назад 0
0
cbxbiker61

Я создал сервер кодирования видео python3 для внутреннего использования. С несколькими модами это должно помочь вам. На моем python-сервере все, что вам нужно сделать, это создать символическую ссылку в специальном каталоге очереди, и он обрабатывает ее оттуда, а также обрабатывает коммерческий пропуск (из которых я являюсь портером Linux), который вы могли бы прокомментировать, если вы не заинтересованы в этом.

http://www.xilka.com/xilka/source/VideoEncodeServer.py

http://www.xilka.com/xilka/source/VideoToCuBox.py