Перейти к основному содержимому

Производительность: потоки, кодеки, память

Скорость создания видео на устройстве задают три настройки. Число потоков стоит в разделе «Экспорт». Ограничение процессоров и выбор кодека - в разделе «Производительность». Цена ошибки здесь высокая: лишние потоки занимают всю память, а аппаратный кодек отключает облако. Ниже - числа и границы по каждой настройке.

Сколько потоков задать?

Поток - это одно видео, которое создаётся прямо сейчас. Пять потоков означают пять видео одновременно.

ПолеРазделГраницыПо умолчанию
«Количество локальных потоков»«Экспорт»0-99 999 999половина логических ядер устройства, но не больше 5
«Количество облачных потоков»«Экспорт»0-1000
«Максимум логических процессоров на поток»«Производительность»1-99 999 9991

Поле локальных потоков принимает любое число до 99 999 999. Разумное число подскажет лист проверки перед запуском.

Потолок облачных потоков задаёт Ваш тариф. Когда Вы докрутите счётчик до потолка руками, над полем всплывёт подсказка: «Вы достигли максимального количества облачных потоков. Чтобы увеличить лимит облачных потоков - обратитесь в поддержку.»

Что такое безопасное число потоков?

Лист проверки перед запуском показывает прогноз расхода памяти. Прогноз учитывает разрешение видео, набор настроек и резерв под операционную систему. Резерв - это 2 ГиБ или 30 % всей памяти устройства, смотря что больше. Плюс одно логическое ядро.

Дальше лист сравнивает прогноз с числом заданных потоков и показывает одну из двух строк:

Строка листаЧто означаетЧто сделать
«Локальных потоков больше рекомендованного»памяти хватит не всем потокамнажмите кнопку «Поставить N» рядом со строкой
«Возможен отказ системы: слишком много локальных потоков»заданное число потоков занимает больше памяти, чем есть на устройственажмите «Поставить N» либо уменьшите число руками

Обе строки стоят в разделе «Предупреждения», запуску они не мешают. Кнопка «Поставить N» подставляет безопасное число сразу.

Сколько памяти нужно одному видео?

Числа ниже сняты замером на устройстве с 12 логическими ядрами. Вход - видео H.264. Правая колонка - расход при автоматическом числе внутренних потоков кодировщика.

РазрешениеОдин поток кодировщикаАвтоматическое число потоков
720p264 МБ444 МБ
1080p511 МБ883 МБ
4K1859 МБ3191 МБ

Расход почти пропорционален площади кадра. Настройка «Сжатие файла» его меняет: «Минимальное» примерно вдвое дешевле «Среднего», «Максимальное» - примерно в полтора раза дороже. Самая дорогая настройка кадра - интерполяция кадров: на 1080p расход растёт с 883 до 1355 МБ.

Отсюда простое правило. Умножьте число из таблицы на число потоков и добавьте резерв под систему. Сумма не должна превышать объём памяти устройства.

Что даёт ограничение логических процессоров?

Переключатель «Ограничить количество логических процессоров на поток» стоит на странице «Производительность». Он открывает поле «Максимум логических процессоров на поток».

Настройка экономит сразу две вещи. Она снижает нагрузку на процессор и примерно вдвое сокращает расход памяти на 1080p. Причина - в устройстве кодировщика. Он держит свои буферы на каждый внутренний поток. Число таких потоков по умолчанию - около полутора на каждое ядро.

Плата за это - скорость. Создание видео длится заметно дольше. Настройка пригодится, когда Вы работаете в других тяжёлых приложениях параллельно.

Пример из подсказки приложения:

Пример: У Вашего процессора 10 логических процессоров. Вы указали количество потоков = 2 и количество логических процессоров на один поток = 3. В итоге при создании видео VUB будет использовать максимум 6 логических процессоров ( <60% Вашего ЦП).

Число логических процессоров Вашего устройства видно в диспетчере задач, на вкладке «ЦП».

Чем аппаратные кодеки отличаются от программных?

Выбор кодека открывает переключатель «Выбирать кодек и контейнер». По умолчанию он выключен, и тогда результат получается в mp4 с кодеком H.264 и звуком AAC. Подсказка переключателя: «Пока выключено - создание видео идёт как раньше: H.264 + AAC + mp4.»

Программный кодек считает видео на процессоре. Аппаратный отдаёт работу видеокарте.

Программные кодекиАппаратные кодеки
Кто считаетпроцессор устройствавидеокарта устройства
Скоростьнижезаметно выше
Нагрузка на процессорвысокаянизкая
Создание видео в облакедоступнонедоступно
Видны в спискевсегдатолько когда работают на Вашей видеокарте

Программные кодеки в списке «Видеокодек»: «H.264 / AVC (libx264)», «H.265 / HEVC (libx265)», «AV1 (SVT-AV1, быстрый)», «AV1 (libaom, медленный)», «AV1 (rav1e)», «VP9 (libvpx)», «MPEG-4 Part 2», «Xvid (MPEG-4 Part 2)», «Apple ProRes (монтажный, крупные файлы)».

Аппаратные кодеки в том же списке: «H.264 (NVIDIA NVENC, GPU)», «H.265 / HEVC (NVIDIA NVENC, GPU)», «AV1 (NVIDIA NVENC, GPU - от RTX 40xx)», «H.264 (Intel Quick Sync, GPU)», «H.265 / HEVC (Intel Quick Sync, GPU)», «AV1 (Intel Quick Sync, GPU - от Arc)», «H.264 (AMD AMF, GPU)», «H.265 / HEVC (AMD AMF, GPU)», «AV1 (AMD AMF, GPU - от RX 7000)».

Отдельно про скорость: «AV1 (libaom, медленный)» кодирует примерно в 90 раз дольше, чем H.264.

Почему аппаратный кодек отключает облако?

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

Подсказка заблокированного поля: «Создание видео в облаке недоступно: выбран аппаратный кодек (NVENC / Quick Sync / AMF). Такие кодеки работают только на видеокарте Вашего устройства - в облаке их нет. Чтобы создавать видео в облаке, оставьте только программные кодеки.»

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

Почему в списке нет кодека моей видеокарты?

Приложение показывает аппаратный кодек только тогда, когда он работает на Вашем устройстве. Список сборки о железе ничего не сообщает, поэтому каждый кодек проверяется пробой: кодируется десятая доля секунды пустого кадра. На обычном устройстве это 3 пробы примерно по 0,3 секунды.

Ответ пробы сохраняется. Он перестаёт действовать при смене видеокарты, при обновлении драйвера с новой видеокартой и при обновлении приложения. Пока ответ действителен, список кодеков не меняется. Поэтому после установки новой видеокарты стоит перезапустить приложение.

Почему группа «Интервал ключевых кадров» неактивна?

Эта группа работает только вместе с выбором кодека. Включите переключатель «Выбирать кодек и контейнер», и группа станет доступной. Границы ползунка - от «1 кадр» до «500 кадров», по умолчанию 30-250.

Остальные настройки страницы «Производительность» разобраны на странице Качество результата.

Что сильнее всего замедляет создание видео?

  • «Стабилизация» в разделе геометрии;
  • «Сжатие файла» в положении «Максимальное»;
  • видеокодек «AV1 (libaom, медленный)»;
  • «Ограничить количество логических процессоров на поток»;
  • «Видимость» и «Скругление углов» в шаблоне;
  • способ проверки сходства «ИИ-проверка» при большом числе копий;
  • действие «Удалить и создать новое» в проверке сходства.

Что выбрать в типичных случаях?

ЗадачаПотокиКодекЕщё
Быстро сделать пачку, устройство свободнобезопасное число из листа проверкиаппаратный, если он есть в списке«Сжатие файла» - «Минимальное»
Работать в других приложениях параллельно1-2любой программныйвключите ограничение логических процессоров, поставьте 2-3
Создавать видео в облакелокальных 0, облачных по тарифутолько программныйаппаратный кодек обнулит облачные потоки
Устройство с 8 ГБ памяти, видео 4K1любойсверьтесь с таблицей расхода памяти выше
Наименьший размер файлабезопасное число«H.265 / HEVC (libx265)»«Сжатие файла» - «Максимальное», это медленно

Частые вопросы

Сколько потоков поставить, чтобы не зависало?

Столько, сколько показывает лист проверки перед запуском. Нажмите «Запуск» и посмотрите раздел «Предупреждения». Если там есть строка про потоки, нажмите кнопку «Поставить N». Это и есть безопасное число для Вашего устройства и Вашего проекта.

Почему приложение приостановило работу, хотя потоков немного?

Скорее всего, память занята другими приложениями. Новые локальные потоки не стартуют при занятости памяти 95 % и выше. Потоки в работе при этом не останавливаются. Подробнее - на странице Приложение не отвечает.

Ускорит ли работу увеличение числа потоков вдвое?

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

Почему выбранный контейнер не применился?

Приложение возвращается к сочетанию H.264 + AAC + mp4, когда пара кодеков не подходит контейнеру на этом устройстве. Сообщения на экране при этом нет. Пожалуйста, проверьте пару «Видеокодек» и «Контейнер» в разделе «Производительность».

Влияет ли выбор кодека на стоимость создания видео в облаке?

Аппаратный кодек в облаке недоступен вовсе. На объём в гигапикселях кодек не влияет, но он умножает сложность: H.265 дороже H.264 примерно в 1,9 раза, AV1 (rav1e) - примерно в 8 раз, AV1 (libaom) - почти в 20 раз. О расчёте стоимости - страница Режим создания видео.