Как вы знаете, в кинотеатрах нынче кино крутят с цифровых проекторов. Пленка потихоньку отходит в сторонку, на ее место приходят новые технологии. В чем прелесть этих технологий — так это в том, что они все более становятся доступными простым смертным. Последние проекторы уже гонят трехмерную цифровую картинку в полноценном 2К разрешении, в 12 битном цвете и 24 битном звуке.
В нашем городе стоят проекторы Christie, которыми Финнкино обставила все свои кинотеатры. Они отличаются размерами и мощностями лампы, но в целом их объединяет одно. Все они кушают фильмы в формате DCP.
На изучение этого формата я успешно потратил последние два дня, и теперь горю желанием поделиться этим с кем-то. Так что терпите 🙂 Или листайте дальше.
DCP это такая хитрая штука, в которую кодируют большие и маленькие студии свои фильмы. Оно поддерживает 2д и 3д презентации. В него же пакуется звук во всей его многоканальности. В общем, DCP это то, что полностью заменяет кинопленку для кинотеатра. По этой причине он поддерживает еще и шифрование материала.
DRM во всей его красе, с ключами, временем активации, количеством доступных показов фильма. Дистрибьютер с помощью ключа вполне может контролировать то, как будет использоваться его DCP пакет.
Так как речь идет о кинотеатрах, то DCP имеет ряд жестких ограничений (спецификаций), которые исторически вытекают от все той же кинопленки. Видео материал должен быть закодирован в 24 прогрессивных кадра в секунду, с разрешением 1998х1080 либо 2048х853. Картинка должна быть в цветном пространстве XYZ (вместо RGB, который нормально отображается на нормальных мониторах). Звук должен быть разбит на моно каналы, максимум 6 (5+1).
Дальше речь пойдет о том, как такой пакет собрать в домашних условиях.
Вариантов, на самом деле, немного. Первый — Fraunhofer easyDCP Creator.
http://www.iis.fraunhofer.de/EN/bf/bv/cinema/dcpcreation.jsp
На данный момент эта софтина практически недоступна простым смертным. По слухам она удобна, работает как надо. Стоит около 2500 евро. Никаких торрентов нет. Можно получить инвайт на загрузку триал версии.
Для этого нужно отписаться на упомянутом сайте. За три дня мне инвайт так и не пришел. Триал версия к тому же оставляет ватермарк на каждом кадре. Работает ли триал версия со стерео — большой вопрос.
Опен соурс проект. Активно развивается. На данный момент у них уже появился даже GUI, в котором можно вбивать параметры. Все бесплатно, но приготовьтесь к ньюансам.
Как это происходило у меня.
Этап подготовительный — чтение литературы. На reduser.net есть отличный тред на много, много, много страниц. Если есть время, с ним стоит ознакомиться.
Если времени нет, то с ним можно ознакомиться пока будут рендерится файлы. А рендерится они будут долго.
Этот линк очень хороший, но лишенный особых деталей. Человек, писавший эти инструкции, подразумевает что вы хорошо знакомы с тем как компилится опен соурс код у вас на машине, как писать собственные батники, и как собирать разные вещи воедино. В общем, отличный линк, особо не вдающийся в детали, но дающий неплохое направление.
Формат DCP / Конвертация в DCP
Полезная линка номер три: http://cinemaprofs.ru/viewtopic.php?f=70.4124564 0.3575761
0.1804375 0.2126729 0.7151522 0.0721750 0.0193339 0.1191920
0.9503041″ -gamma 2.6 convertedcnv_%%a
PAUSE
Уберите оттуда все слеши («»), и оформите команду конверта в одну строку. Иначе оно будет сильно ругаться. Разумеется, должен быть прописан PATH к бинарникам ImageMagick. 5000 кадров перекодировались около 2 часов.
Теперь все эти тифы нужно упаковать в JPEG2000. Если вы уже установили Open Cinema Tools, то бинарник image_to_j2k.exe будет прямо у них в папке. Все что остается это прописать путь к нему в PATH.
image_to_j2k.exe может начать жаловаться на нехватающий libtiff3.dll. Бинарник можно скачать например отсюда: http://gnuwin32.sourceforge.net/downlinks/tiff.php
Дальше создается похожий батник:
MD jpeg2k
FOR %%a in (*.tif) DO image_to_j2k -cinema2K 24 -i %%a -o %%a.j2c
PAUSE
Внимание. Если речь идет о стерео контенте, то команду image_to_j2k нужно задавать с параметром -cinema2K 48. Это нужно из-за ограничения битрейта в сервере на 250 мегабит. То есть, батник принимает такой вид:
MD jpeg2k
FOR %%a in (*.tif) DO image_to_j2k -cinema2K 48 -i %%a -o %%a.j2c
PAUSE
Двойной знак %% используется только в батнике, если команду вводить прямо в консоли то его нужно писать только один раз — %.
В первые разы когда я запускал этот скрипт, он генерировал j2c файлы размером в полтора килобайта. Сия вещь вогнала в ступор на долгое время. Голову я чесал долго, пока не попробовал открыть этот полуторакилобайтный файл в ирфанвьювере. Тот замечательно его открыл. Тода-то до меня доперло что вступительную темноту в ролике JPEG2000 замечательно ужимает до этого самого размера.
Дальше размер файлов полез вверх, и все закодировалось нормально.
К слову, JPEG2000 весьма интересный формат который может хранить 12 битную картинку. В отличие от строго 8 битного оригинального JPEG.
Шаг номер 2 — звук
Тут в общем-то все просто, за исключением одного ньюанса. Каждый канал должен быть в своем отдельном моно PCM uncompressed 48kHz WAV’e.
Вероятно каждый придумает свой способ, как разбить звук на отдельные моно каналы. После некоторого тыркания в Премьере CS4 подобная фишка обнаружена не была. Человек на reduser.net рекомендовал Adobe Audition или Soundbooth. В последнем вроде как даже есть прямая фишка под названием — «разбей мне все на моно каналы». Но Саундбуса у меня нет.
В общем, загнал я все в Audition, нашел фишку как из стерео сделать моно. Там же можно было микшировать каналы для моно. Сначала убил правый — отрендерил. Потом левый — отрендерил. Пляска с бубном началась, когда скрипт из Open Cinema Tools под названием asdcp-test стал громко матюгаться на мои вавы.
Пишет что-то вроде «я ожидал uncompressed pcm wav, а ты мне подсунул какую-то фигню». В общем, правильный вав файл рендерится так:
TYPE: Windows PCM
Format data as: 4-byte PCM (type 1, 24-bit) (на скриншоте отмечен 32битный формат, на самом деле звук должен быть в 24 бита макс).
Звук должен быть на 48 kHz!
Шаг номер 3 — создание, собственно DCP пакета
Запускается DcpMaker.exe. Теоретически вот тут если все вбить правильно, то оно работает на автомате, генерирует все что надо, и все путем. В него можно забить пути к вашим tif’aм, и оно сформатирует их в JPEG2000.
На практике оно у меня конкретно застряло на стадии генерирования плейлиста. Что-то там со звуком ей не нравилось. В итоге MXF со звуком я сгенерировал вручную, и скормил уже готовый MXF в DCP Maker.
Свой аудио MXF генерируется так:
asdcp-test -v -L -c PROJ.audio.mxf left.wav right.wav
Примечание: ключ -L означает что asdcp-test сгенерирует mxf пакет в SMPTE формате. Это одинаково для аудио и видео пакетов. В SMPTE как таковом ничего плохого нет, вот только сервера Dolby DSS100 по умолчанию его не принимают. Для них нужно генерить interop пакеты — то есть без ключа -L.
Свой стерео видео MXF генерируется следующей командой:
asdcp-test -v -3 -c PROJ_I.video.mxf j2k_left j2k_right
Два аргумента в конце это папки с JPEG2000 секвенциями, на левый и правый глаз.
На этой стадии как раз может выясниться, что ваш вав вовсе не в том формате, который ожидался.
Готовый вав скармливается в DCP Maker, туда же прописываются пути к уже сконверченным JPEG2000 секвенциям. Несколько минут шуршания процессором, и DCP пакет готов. Мой выглядит так:
Шаг номер 4 — запись пакета на мобильный носитель
Инструкции на reduser.net и на блоге bitfilms отчаянно советуют отформатировать ваш носитель под ext2fs. В крайнем случае ext3fs. Под Виндовс обычно подобную операцию не так просто проделать. Paragon Partition Manager умеет форматировать диски под все существующие форматы. С ним мне удалось отформатировать флешку под ext2fs.
Но Виндовс упорно продолжает ее игнорировать, даже после инсталляции драйвера ЕХТ2IFS. Который, по идее, должен помочь в этой ситуации. Но сами создатели драйвера пока не гарантируют его работу на Win 7 64-bit.
Из своего опыта могу сказать, что в прошлый раз музыкальный 3д клип был записан на флешку, отформатированную под HFS. Это из-под мака, который ничего другого не понимал. Уже готовясь запихнуть флешку в недра проектора Christie я поинтересовался у киномеханика, в какой файловой системе носитель должен быть. Механик сообщил что «в этом, ну.. который в линуксе». Флешку мы все равно запихнули, и проектор замечательно скушал с него клип, не смотря на HFS.
Только что отзвонился продюсер и сообщил что проделывал подобную операцию самостоятельно, в кинотеатре, на одном фестивале. Что под рукой был комп с виндовс, и проектор Кристи. Сказал что FAT проектору не пошел, но NTFS он понял и клип был перекачен.
Какие отсюда выводы? Не знаю, но собираюсь на следующей неделе выяснить. Если Кристи понимает NTFS, это будет просто здорово.
Заодно и ролик протестим.
Источник: cgtalk.livejournal.com
Как работает шифрование фильмов в формате DCP?
В этой заметке делается попытка обобщить, как работает шифрование DCP (Digital Cinema Package). Чтобы понять это, возможно Вам понадобятся некоторые знания методик шифрования.
Например, мы хотим отправить в кинотеатр «Суперсинема», фильм «Мойфильм», чтобы его там посмотреть.
Существуют два основных семейства методов шифрования. Один из них, с симметричным ключом шифрования, позволяет кодировать данные, используя некоторые цифровые клавиши. После кодирования, никто не может декодировать данные, если они не знают ключа.
Первым шагом в шифрования DCP является кодирование своих данных с каким-то ключом, используя симметричный ключ шифрования. Зашифрованный DCP может быть безопасно отправлен в любое место, зная, что даже если кто-то раздобыл копию фильма “Мойфильм”, то он не сможет расшифровать его.
Однако кинотеатру «Суперсинема» необходимо знать ключ, чтобы воспроизвести DCP в кинозале. Простой способ для нас, отправить ключ в кинотеатр “Суперсинема”. Тем не менее, если кто-то может перехватить DCP фильма, он также может перехватить наш ключ. Кроме того, кинотеатр «Суперсинема», имея этот ключ, может просто копировать его.
Умным решением является использование шифрования с открытым ключом. Используя эту технологию, можно зашифровать данные, используя открытый ключ. Эти данные могут быть расшифрованы только с помощью соответствующего секретного (частного) ключа, который отличается от открытого (публичного) ключа, передающегося по незащищенным каналам. Частные и публичные ключи образуют пару, которая математически связаны, но очень трудно (или, скорее, практически невозможно), извлечь секретный ключ из открытого ключа.
Шифрование с открытым ключом позволяет надежно привязать ключ к DCP «МойФильм». Производитель проектора, установленного в кинотеатре «Суперсинема» генерирует открытый и закрытый ключ. Они интегрируют секретный ключ внутри проектора (внутри микросхемы), где никто не может его прочитать. Затем они делают открытый ключ доступный для всех, кто в нем нуждается.
Конвертация видео в формат DCP
DCP (Digital Cinema Package) — цифровая технология, разработанная для показа картин в кинотеатрах. Фильмы распространяются на жестких или оптических дисках, флеш-накопителях, а также по спутниковым каналам. Проекция выполняется с использованием специальных проигрывателей и цифровых проекторов.