Я пытаюсь сделать что-то похожее на плеер YouTube. Самая большая проблема, с которой я сталкиваюсь сейчас, - это как мне обрабатывать загруженные пользователем видео файлы.
Например, поскольку я хочу переключаться между режимами 240p, 360p, 480p и 720p, мне нужно преобразовать каждый загруженный видеофайл в 4 разных файла для каждого разрешения, а поскольку не все браузеры могут воспроизводить .mp4, мне нужны .ogg, .mp4,. webm, так что получается 12 видеофайлов. Если на обработку 1-часового видеофайла уходит 10 минут, мне потребуется 2 часа, чтобы обработать этот файл, который безумен. Я знаю, что YouTube использует облачные серверы для обработки каждого видеофайла и обладает большой вычислительной мощностью, но я думаю, что в этом есть какая-то хитрость.
Итак, мой вопрос: что я могу с этим поделать и как YouTube справляется с этим?
Мой второй вопрос: подходит ли FFmpeg для такого рода работы, и если да, то почему для выполнения этой команды требуется много времени? Я выполнил эту команду для видеофайла длиной 3 минуты 720p, и после 15 минут обработки я просто отменил процесс.
ffmpeg -i hd.webm a.mp4
Этот, с другой стороны, занял около 7 минут, но сгенерировал 200 МБ видеофайла из 25 МБ файла:
ffmpeg -i hd.webm -c:v libx264 -preset ultrafast a.mp4