К содержанию
fohbookбета/ TouchDesigner

Кодеки

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
рядом по смыслу