Поэтому я пытаюсь выяснить, какой лучший способ транскодирования с использованием FFMPEG был бы в коммерческом масштабе. В настоящее время у меня есть только очень тяжелые облачные экземпляры, которые запускают FFMPEG с параметрами, установленными как баланс между скоростью и качеством. Однако сейчас я ищу долгосрочное решение, которое позволит мне по-настоящему транскодировать сотни видеофайлов ежедневно, возможно, несколько десятков одновременно. Итак, я посмотрел на ускорение GPU, и, похоже, из-за того, что алгоритмы сжатия структурированы, CPU в общем случае быстрее, чем GPU (подробнее об этом здесь). Итак, далее будет выделенное оборудование, есть ли какой-то специальный кодер h.264 / h.264, который я мог бы получить и физически установить на своем сервере, который бы позволил быстро транскодировать FFMPEG?
2 ответа
Вы должны понимать, что аппаратные кодировщики обычно генерируют изображения немного более низкого качества с тем же битрейтом (или более крупные файлы с тем же качеством). Если все в порядке, ваши лучшие варианты - быстрая синхронизация на процессорах Intel или nvenc на графических процессорах Nvidia. Если вы переходите на Nvidia, обязательно проверьте спецификации на карте, так как большинство из них ограничены 2 параллельными кодировками.
Аппаратные кодировщики обычно используются для оперативного кодирования, обеспечивая гораздо большую стабильность, чем программное обеспечение, основанное на операционной системе общего назначения.
Также аппаратные кодировщики ограничены определенным набором опций, в то время как программные кодировщики открыты для любой мыслимой опции. Разработка аппаратного кодировщика стоит несколько миллионов долларов, и это совсем не гибкая вещь. Например, чипы Nvidia NVENC пока не поддерживают профиль цвета 4:2:2 (но будущие поколения будут поддерживать). Почему Nvidia не создает платы кодировщиков без всех графических функций? ... потому что в этом бизнесе нет денег.
Предполагается, что вы хотите сохранить закодированный результат как "файл на жестком диске", аппаратные кодировщики - это не тот путь, который вам нужен. Любой известный мне аппаратный кодировщик предназначен для сетевого распространения и использования только в режиме реального времени.
Поэтому, пока вы находитесь в облачной среде, вам лучше использовать кодирование процессора и просто использовать процессор с максимальной частотой, если вам нужна скорость.