Как стать автором
Обновить

Комментарии 9

Спасибо за подробное описание! Мы строим сервис по онлайн редактированию видео, и ваш опыт во многом пригодится.

Скажите, почему вы предпочли mp4-parser тому же ffprobe?
Ffprobe мы то же используем так как поддерживаем не только MP4 контейнеры. Первичную информацию о файле мы как раз получаем с помощью ffprobe.
MP4Parser используется для тоого, что бы получить и проанализировать специализированные атомы, например GPS координаты с IPhone или Android, тэги Quick Time и т.д.
Понял.

А расскажите, пожалуйста, про нестабильность ffmpeg? Это наш основной инструмент на backend. Пока не сталкивались с «плавающими» проблемами с ним. В каких случаях возникали зависания или поглощение всех ресурсов системы? Есть ли закономерности/паттерны?
Я точно не скажу. Были 2 вида проблем: ffmpeg просто падает и сжирает память или процессор. Обычно это связано с конкретным видео файлом, который сжат или упакован с ошибками.
Добавлю немного информации — для минимизации эффекта от работы oom_killer'a при поглощение всех ресурсов ffmpeg'ом, мы ограничили доступные ресурсы средствами ulimit.
Зачет, но не понял одного момента
«То есть, если пользователь загружает контент на конкретный сервер, а тот вышел из строя или исчез доступ к сети, то все загрузка должна продолжиться на другом сервере»
Ок, пользователь нажал «загрузить» пошел запрос на lvs, попал на ip1, через некоторое время ip1 упал.
Каким образом запрос попадает на ip2?

Вы используете загрузку видео блоками от клиента? Javascript? А если на клиенте отключен\не поддерживается html5?
Сначала пробуем Javascript File API, если не поддерживается, то с помощью Flash.
Спасибо за статью!

Вопрос по transcoding queue:

Если из общей очереди видео пользователя уходит на конкретный преобразующий сервер с ffmpeg, то он временно «выпадает» из списка доступных серверов для обработки или же он принимает еще на себя другие видео? Если еще принимает, то сколько? Как вы регулируете/управляете загрузкой ядер процессора?
Сервер может взять на обработку несколько роликов. Есть контроль загрузки ядер.
Приблизительно это выглядит так, что сервер может взять не более 4 роликов на обработку при условии, что есть свободные ядра.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий