Кодеки
HAP распаковывает видеокарта, но читать его тяжело; H.264 лёгкий на диске, но тяжёлый для декодера. Таблица кодеков, потоки HAP в цифрах и как кодировать.
Кодек решает, кто распаковывает кадр — видеокарта или процессор — и сколько данных надо прочесть с диска. Отсюда и число слоёв, которые потянет машина.
Movie File In читает .mov, .mp4, .mpg, .avi, .wmv, .dpx,
Cineform, все варианты HAP, NotchLC, ProRes, H.264/H.265 (на NVIDIA —
в том числе 10 и 12 бит и YUV 4:4:4), VP8, VP9, AV1 и прочее, что умеет
встроенный FFmpeg, а из картинок .jpg, .png, .tif, .exr, .dds.
Полный список — страница File Types в документации.
| Кодек | Кто распаковывает | Альфа | Поток с диска | Когда брать |
|---|---|---|---|---|
| HAP | GPU, лёгкий этап на CPU | нет | большой | Много слоёв, простая картинка |
| HAP Alpha | GPU + CPU | да | вдвое больше HAP | Слои с прозрачностью |
| HAP Q | GPU + CPU | нет | вдвое больше HAP | Качество важнее места; высокое разрешение |
| HAP Q Alpha | GPU + CPU | да | втрое больше HAP | HAP Q с прозрачностью |
| NotchLC | GPU | да | очень большой | Качество выше HAP Q, 10 бит, нагрузка на GPU выше |
| H.264 | CPU или NVDEC на NVIDIA | нет | маленький | Один-два слоя, длинный контент |
| H.265 | CPU или NVDEC на NVIDIA | нет | маленький | То же, лучше сжатие, тяжелее декод |
| ProRes | CPU на Windows, аппаратно на macOS | 4444 — да | большой | Обмен с монтажом, точная перемотка |
| PNG/EXR-секвенция | CPU/диск | да | огромный | Точность, короткие вставки |
Есть ещё HAP R — качество выше HAP Q и возможная альфа — и HAP HDR с 16-битным float для HDR-контента.
Hardware Decode
Переключатель на странице Tune у Movie File In. На NVIDIA он включает
аппаратный декодер для H.264/H.265, VP8, VP9, AV1 и JPEG, на macOS —
аппаратный ProRes и то, что умеет железо Mac. Не вышло декодировать
аппаратно — TouchDesigner молча переходит на процессор, и узнать об этом
можно по каналу hardware_decode у Info CHOP.
HAP и NotchLC этот переключатель не трогает: их основная распаковка всегда на видеокарте. У HAP поверх текстурного сжатия есть ещё сжатие Snappy, и его снимает процессор, поэтому HAP в высоком разрешении тоже тратит заметное время CPU. Зато пять слоёв HAP в FullHD машина играет спокойно, а пять слоёв H.264 уже нет — поэтому шоу и делают на HAP.
Сколько читать с диска
Текстурное сжатие HAP даёт постоянный размер кадра, и поток можно посчитать заранее. 4096 × 2160 при 60 кадрах, худший случай:
| Вариант | Байт на пиксель | Поток |
|---|---|---|
| HAP | 0,5 | ≈ 265 МБ/с |
| HAP Alpha | 1 | ≈ 530 МБ/с |
| HAP Q | 1 | ≈ 530 МБ/с |
| HAP Q Alpha | 1,5 | ≈ 800 МБ/с |
Snappy на спокойной картинке часто ужимает ещё вдвое, на шумной не даёт ничего. Поэтому под HAP берут NVMe и отдельный диск под контент, а двухчасовой фильм в один слой разумнее держать в H.265.
Подготовка файлов
Разрешение делают точно под выход: 4K туда, где экран 1408 × 896, не нужен (LED-экран). Частоту кадров — как в проекте, иначе 30 fps на 60 fps дадут рывки (Идеальное воспроизведение). Для перемотки и обратного хода нужен внутрикадровый кодек — HAP, ProRes, NotchLC; длинный GOP у H.264/H.265 такого не любит.
HAP кодируют FFmpeg — ffmpeg.exe лежит в папке bin установки, —
плагины для Adobe (бесплатный HAP Exporter, коммерческий Jokyo) и сам
TouchDesigner через Movie File Out:
ffmpeg -i in.mov -c:v hap -format hap_q -chunks 12 out_hapq.mov
ffmpeg -i in.mov -c:v hap -format hap_alpha -chunks 12 out_alpha.mov
chunks режет кадр на части, и каждую распаковывает своё ядро. Derivative
советует не меньше числа физических ядер, сам TouchDesigner пишет HAP
с 12 частями. Без них HAP Q в высоком разрешении может не успевать.
Держите звук отдельным файлом. Внутри видео он по-своему ведёт себя
при зацикливании и перемотке — у Movie File In для этого даже есть
отдельный параметр Audio Loop.
Проверяйте ровно тот файл, который пойдёт в шоу. Два HAP Q одного разрешения из-за Snappy могут отличаться по потоку, и упереться в диск получится как раз на площадке.
Нашли в статье ошибку, устаревшее или непонятное место?
На других пультах
весь переводчик →- ResolumeDXV3
- disguise (d3)HAP / NotchLC
- HippotizerHAP