Как делать 4K DCP свободными средствами

dcp 4k

Франческо Сидди поделился опытом создания DCP в формате 4K для кинотеатров на примере короткометражки «Tears of Steel». Тема освещалась мало, так что мы решили поделиться с вами переводом.

В качестве инструментария были выбраны:

  • Blender, для создания кадров в TIFF с разрядностью 16bit;
  • OpenDCP, для конвертирования кадров в JPEG2000 и обёртки изображений со звуком;
  • EasyDCP Player, для проверки на соответствие спецификации DCP.

Упрощённая процедура мастеринга DCP выглядит следующим образом:

  • сбор «сырых» изображений и звука в формате, совместимом с DCI (Digital Cinema Initiative);
  • заворачивание их отдельно в контейнеры MXF;
  • индексирование и вставка в Digital Cinema Package;
  • контроль качества.

Давайте обстоятельно пройдёмся по каждому пункту.

Сбор данных

Для начала нужно сгенерировать последовательность кадров всего фильма, используя подходящий формат, такой как TIFF 16bit sRGB. В нашем случае речь идёт о 17616 кадрах, занимающих  850ГБ дискового пространства. Соответствующее 4K DCI разрешение при используемом соотношении сторон — 4096x1716px.

Как только экспорт выполнен, мы можем конвертировать результат в последовательность файлов в формате JPEG2000 12bit XYZ (с расширением .j2c). Для этого мы используем OpenDCP — отличный свободный инструмент, у которого есть как графический, так и консольный интерфейс. После конвертирования у нас получится около 12ГБ данных.

Чтобы ускорить процесс и пропустить шаг с генерированием 16-разрядных файлов TIFF, мы попытались экспортировать JPEG2000 XYZ напрямую из Blender (используя, рендер-ферму, конечно), но OpenDCP отказался работать с полученным выводом при обёртке в MXF. Надеемся, в будущем это будет исправлено, поскольку так мы бы сэкономили и время, и дисковое пространство.

Обёртка в MXF

Следующий шаг очень прост: надо «завернуть»последовательность полученных кадров (JPEG2000) и звуковых дорожек (6 монофонических 48КГц файлов WAV) в два отдельных контейнера Multimedia eXchange Files. Эта операция тоже выполняется в OpenDCP.

Создание и развёртывание DCP

На последнем шаге нужно проиндексировать только что созданные файлы MXF и дать правильное имя файлу DCP, чтобы с ним смогли работать серверы (Digital Cinema Servers). OpenDCP справляется и с этой задачей.

Наконец, папку с данными надо или упаковать в архив ZIP и загрузить  в каталог, видимый серверу, или скопировать (не в виде архива) на диск, отформатированный под Ext3 для «скармливания» серверу .

Контроль качества

Создание DCP включает в себя немало шагов, что повышает риск допущения ошибки. Типичная ошибка — повреждение файлов изображений и ошибки при их кодировании, чтобы может привести к рассинхронизации со звуковой дорожкой.

Поскольку в нашей студии нет ни сервера, ни плеера DCP (демонстрационная версия EasyDCP Player работает лишь первые 15 секунд), нам пришлось проверять последовательности файлов TIFF и JPEG2000 иначе. Мы подготовили несколько файлов .blend с помощью видеосеквенсера, чтобы сгенерировать превью видеофайлов со звуком — для проверки на рассинхронизованность и повреждённые кадры.

С помощью скрипта мы удаляли одну или даже несколько последовательностей кадров одновременно из папок с TIFF, JPEG2ooo и JPEG, чтобы можно было запустить цепочку «Экспорт в TIFF -> JPEG2000 и JPEG -> предпосмотр кино» с включенной галкой «Не перезаписывать» («No overwrite»).

Разные советы

Убедитесь в том, что:

  • дискового пространства достаточно для завершения всех операций по конвертированию;
  • времени на конвертирование у вас достаточно;
  • спецификации на размер изображения и частоту дискретизации звука соблюдены;
  • полученный DCP протестирован хотя бы за пару дней до показа.

Закон Мэрфи

Пока мы генерировали DCP, закон подлости не дремал:

  • первый DCP не прошёл тестирование, потому что созданные в Blender файлы JPEG2000 не соответствовали требованиям для обёртки;
  • второй DCP оказался без звука, потому что в ходе конвертирования звук оказался нечаянно приглушен (при просмотре превью мы это тоже не проверили);
  • третий DCP по невыясненным причинам сгенерировался с рассинхронизацией звука и видеоряда на два кадра;
  • мы попытались исправить это в четвёртом DCP, вручную отредактировав XML, но и это не помогло.

Пятый DCP оказался в порядке, но на этом беды не кончились:

  • Первая попытка скормить данные серверу провалилась, потому что Digital Cinema Mainframe читал и индексировал весь жёсткий диск, включая совершенно нерелевантные данные типа бэкапа данных студии.
  • Вторая попытка отдать данные серверу, как нам показалось, тоже не удалась: оператор не сообразил, что на Doremi DCS есть живая очередь импорта, и мы решили, что опять не судьба. На самом деле оказалось, что всё как раз нормально (разработчикам интерфейса в DCS стоит обратить на это внимание).

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

  • экспорт из Blender пригодных для использования файлов JPEG2000;
  • свободный плеер DCP! В FFMpeg появилась поддержка воспроизведения MXF и конвертации XYZ в sRBG, но пока никто не додумался наваять простой интерфейс для чтения XML-файлов DCP и воспроизведения графических и звуковых файлов MXF.

Мы усвоили немало уроков!


Оригинал: Open Source 4K DCP creation – lessons learned

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*


Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.