59 subscribers
27 photos
2 videos
31 files
5 links
Видеомонтаж, цветокоррекция, нытье. Обучаю. Автор — @alex_burato
Download Telegram
Вот вы спросите: «да какая польза от твоих этих ффмпегов?»

А вот только за сегодня было два случая, когда он помог:

1. Человек, работающий с видео довольно опосредованно, смог сильно сжать видео без особой потери качества (Premiere Pro и всякие ноунейм конвертеры сильно шакалили картинку)

2. Шот, прилетевший от фрилансера и записанный в непонятный для Adobe кодек, был оперативно пережат в ProRes.

Так-то!

#ffmpeg
🦄31
Давайте разбираться с темой, будоражащей умы миллионов людей во всем мире! Речь конечно же о цветовой субдискретизации.

Это невыговариваемое словосочетание в английском звучит поприятнее — chroma subsampling. Откуда вообще это пошло, и зачем монтажеру оно надо?

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

🎬Для начала немного важных фактов: видео в абсолютном большинстве случаев хранится не в пространстве RGB, а в цветоразностном пространстве YCbCr. Это делается для экономии места. То есть мы не описываем каждый пиксель тремя значениями R, G и B, а вместо этого используем другие три значения: Y (яркость), Cb и Cr (цветоразностный сигнал для синего и красного цветов). Перевести значение RGB в YCbCr и наоборот можно через специальные формулы (чем и занимаются кодек и декодер).


Теперь о том, как это работает.

Как я написал выше, мы используем видеосигнал в пространстве YCbCr. Чаще всего цветовую субдискретизацию представляют в виде трех компонент: Jab, где J — горизонтальный размер зоны, которую мы "сжимаем", a — число семплов первой строки, b — число цветовых изменений между первой и второй строками. Посмотрите на картинку ниже, так будет намного понятнее. Читать эту краденную с Википедии иллюстрацию удобнее снизу вверх.

🧐Итак, левое изображение: если мы принимаем значения a и b равными 1, то цветовая составляющая 4 пикселей по горизонтали становится одинаковой для всей первой строки (нижний уровень). Для второй строки аналогично. Затем, при добавлении яркостной компоненты (средний уровень) мы получаем изображение нашего семпла, называемого 4:1:1 (верхний уровень). Здесь горизонтальное цветовое разрешение в четыре раза ниже, чем если бы мы не сжимали видеопоток.

🧐Теперь смотрим правее. Здесь a = 2, b = 0. То есть верхняя строка состоит из двух разных оттенков, а нижняя просто дублирует верхнюю. При добавлении яркостной компоненты получаем семпл 4:2:0. Горизонтальное и вертикальное цветовые разрешения сжаты вдвое.

🧐Средняя картинка показывает формирование семпла цветовой субдискретизации 4:2:2 для a = 2 и b = 2, то есть теперь у нас 4 цветовых семпла, которые при наложении яркостной составляющей дадут более точное изображение. Горизонтальное разрешение сжато вдвое.

🧐Четвертую картинку попробуйте проанализировать сами (но учтите, что такой формат субдискретизации почти не используется, я вообще ни разу такого не видел🤓).

🧐А вот самое интересное — это последняя картинка с дискретизацией 4:4:4. Цвета здесь не пережимаются, на выходе мы имеем для нашего региона 4x2 пикселя все пиксели, несущие информацию, заложенную в видео с самого начала. Никаких фокусов и искажений цвета. Но тут и субдискретизации нет :)

Продолжение после картинки!
Зачем нам это все-таки, а?

🎬Все просто: при работе с видео часто возникает проблема пережатия исходного материала, чтобы с ним можно было комфортно работать всем департаментам. Здесь речь и о CG, и о цветокоррекции. Если исходный материал с субдискретизацией 4:2:2, то зачастую нет смысла отдавать его дальше по пайплайну в 4:4:4, а если исходники в 4:4:4, то нужно договориться с человеком, который будет работать с графикой, нужен ли ему материал в 4:4:4 или достаточно будет 4:2:2.

Отмечу, что телефоны и недорогие потребительские камеры снимают чаще всего в 4:2:0, чего недостаточно для нормальной работы с цветом и всякими тонкими вещами вроде ротоскопа, и перекодировние в ProRes 422HQ не улучшит качество, информации неоткуда взяться :)

Из очевидных плюсов цветовой субдискретизации (потерпите, немного осталось читать это словосочетание) можно выделить следующие:

Сжатие потока, то есть экономия места на диске и пониженные требования к ширине интернет-канала при прямых трансляциях. В идеале это выглядит так (на практике обычно сильно иначе):

444 занимает 1 ГБ
422 занимает 683 МБ (на треть меньше)
420 занимает 512 МБ (вдвое меньше)

Совместимость со многими устройствами и поддержка разных кодеков.

Минусы тоже есть:

Могут появиться видимые артефакты сжатия, пропасть детали.

Снижается гибкость работы с материалом в CG-департаменте.

Снижается динамический диапазон видеосигнала.


🎬Еще пара замечаний.

Есть еще важное уточнение об альфа-канале, то есть канале прозрачности. Он добавляет нам еще одну цифру в формат цветовой субдискретизации, в самый конец. И 4:4:4 превращается в 4:4:4:4! В подавляющем большинстве случаев вы будете сталкиваться именно с таким форматом субдискретизации, когда речь будет заходить об альфе, и чаще всего это будет ProRes 4444XQ.

❗️Не забывайте, что сжимая материал в угоду экономии места, мы можем получить проблемы в пайплайне, так как какому-либо департаменту может не хватить качества видео для нормальной работы. Обычно считается хорошим тоном хранить исходный материал в максимальном качестве, как снято, плюс пересчитывать его в монтажный кодек, что дает огромный прирост в скорости монтажа, а зачастую монтажного кодека еще и хватает для работы в других департаментах. Да, это отнимает место, но зато избавляет от лишней головной боли по ходу работы над проектом.

Ищите баланс!

#воркфлоу #цветоваясубдискретизация
5
Сейчас расскажу про довольно частую вещь, которую не все принимают во внимание. Пиксель не всегда квадратный.

🎬Да, мы привыкли к тому, что у нас есть наши 1920x1080, соотношение сторон пикселя (на которое вообще никто не смотрит) тут 1.0, то есть высота и ширина пикселя одинаковы. Но так не всегда и не везде. Есть два основных направления использования неквадратного пикселя.


1. Древние (но все еще живые) стандарты ТВ.

Если вы когда-то что-то готовили для телевидения, особенно регионального, то сталкивались с DV PAL, где разрешение составляет 720x576, но при этом в него вписываются два соотношения сторон: 16:9 и 4:3. Как так?

Поскольку развитие видео идет и всегда шло рука об руку вместе с проблемой сжатия данных, особенно когда дело касается телевидения, вполне логично, что раньше в ТВ-трансляциях пытались передать как можно больше информации как можно меньшим потоком. Стандарт PAL не исключение. Помимо использования прогрессивной развертки (о ней напишу в следующих постах), соотношение сторон пикселя (PAR — pixel aspect ratio) тоже решили изменить. Давайте посчитаем.

Для 720x576 с соотношением сторон 4:3

720/576 = 1,25
4/3 = 1,33

1,33/1,25 = 1,067

🧐Что отсюда можно понять?
Мы втискиваем в более узкий по горизонтали формат 4:3 наш более широкий видос, сжимая также по горизонтали пиксель. При вещании видео растягивается обратно.

Для 720x576 с соотношением сторон 16:9

720/576 = 1,25
4/3 = 1,78

1,78/1,25 = 1,422

Здесь аналогично: более широкий формат сживается по горизонтали, чтобы быть втиснутым в узкий канал разрешения. А потом мы это видео точно так же растягиваем в 16:9.

❗️При этом нужно заметить, что размеры пикселя для DV PAL в настройках секвенций в Premiere Pro почему-то отличаются, там используются значения 1,094 и 1,4587, но это тянется уже много лет, все на это давно забили, потому что ну зачем нам тратить ресурсы на умирающий формат. Но лучше об этом помнить на всякий случай.

❗️Ну и да, нам это менее актуально, но в западных странах такая же ерунда со стандартом NTSC, только там другие разрешения и PAR. Также очень редко встречаются нестандартные материалы вроде DVCPRO HD или что-то похожее, где PAR обычно 1,33 или 1,5. Это тоже не стоит забывать.


2. Анаморфотные объективы и насадки.

Тут я мало разбираюсь со стороны железа, потому что я не оператор, но принцип действия описать могу! Вместо обычных круглых в фронтальной плоскости линз используют вытянутые, которые позволяют захватить большую ширину кадра. Но из-за того, что матрица камеры имеет фиксированное соотношение сторон, кадр проецируется сжатым по горизонтали. Потом на монтаже и в графике эти кадры «растягивают» до нормального размера и работают себе спокойно.

🤩К счастью, монтажные программы прекрасно понимают неквадратный пиксель, сразу разворачивают видео до нужного размера (при условии, что соотношение сторон прописано в метадате). Но для нас как монтажеров важно не забывать проверять размер пикселя в настройках наших сорсов. Особенно при передаче их в графику, поскольку при этом часто метадата не прописывается.


🎬Как это сделать?

Очень просто: в Premiere Pro советую включить Preview Area (прям насовсем включите), чтобы видеть краткую сводку по выделенному сорсу, либо вытащить вкладку Video Info в панели метадаты куда-то на видное место. В DaVinci Resolve в Media Pool нужно кликнуть ПКМ по панели метаданных и поставить галочку напротив PAR.

#пиксель
👀4
🤬Я долго пытался убеждать себя в том, что монтажеры в FCPX в порядке, просто выбрали вот такой вот софт. Но сегодня в очередной раз убедился, что использование файнала для рекламы — это ад. Все чаще всего упирается в техническую некомпетентность монтажера, в невозможность адекватно передавать секвенции, ведь если .xml или .edl читает любой софт, то вот .fcpxml открывает только DaVinci Resolve, да еще и последнюю версию держать необходимо (потому что Apple регулярно выкатывают апдейты по .fcpxml, которые не работают впредыдущих версиях DVR). Ну и да, неумение загуглить и отдать более старую версию .fcpxml (такая возможность есть) тоже отдельно доставляет.

Бесит.

#нытье
Please open Telegram to view this post
VIEW IN TELEGRAM
5
🔥Современного человека, живущего в мегаполисе, в принципе не должны волновать такие вещи, как сбор урожая, пастеризация молока и уборка навоза. Еще меньше его должна волновать проблема развертки применительно к видеоматериалу. Но увы, эта проблема все еще возникает, словно свежая куча после конной полиции, поэтому давайте разбираться.


Что за развертка?

Если коротко, то развертка — это тяжкое наследие телевещания. Картинку на экране (аналоговом или цифровом) можно разделить на строки. Например, в формате 1920x1080 будет 1080 строк по вертикали. В эру SD-вещания основным форматом в Европейской части был 720x576, то есть луч электронно-лучевой трубки должен был, двигаясь зигзагами, отрисовывать за секунду 576 строк, что на тот момент было тяжеловато. Поэтому из-за ограничений, налагаемых техникой середины прошлого века, а также из-за ограничений ширины канала передачи данных от телебашни и до конечного потребителя, придумали технологию, которая отображает не все строки подряд, а через одну. Либо сначала нечетные, а потом четные (то есть сначала 1, 3, 5, 7, ... 575, а затем 2, 4, 6, 8, ... 576), либо наоборот, сначала четные, а потом нечетные. В английском языке это называется interlaced video (вы могли видеть формат видео 576i, где i — interlaced), в русском языке это называют разверткой, интерлейсом и полями (или полуполями).

Нечетные поля называют еще верхними или upper, четные — соответственно нижними и lower.

Чтобы собрать кадры с полуполями в нормальное видео, используется процесс деинтерлейсинга (deinterlacing).

Такой проблемы нет с подавляющим большинством современных камер, поскольку они все снимают в прогрессивной развертке (progressive), то есть каждый кадр по умолчанию целый, без разделения на полуполя. В телекамерах и, возможно, в некоторых камерах двойного назначения режим съемки с полуполями остался.


В чем проблема?

Проблемы могут возникнуть на нескольких этапах:

1. При работе с видео с полуполями в прогрессивной секвенции
2. При рендере видео

Во-первых, вне зависимости от типа развертки секвенции, в которой вы работаете (лучше работать в прогрессивной развертке, поверьте, хотя есть исключения), все материалы должны быть корректно интерпретированы. Приложу скриншоты, как это сделать в Premiere Pro и в DaVinci Resolve. Вообще любой софт самостоятельно интерпретирует исходники корректно, но бывают неприятные исключения, поэтому этот момент лучше контролировать. Нужно сказать, что в секвенции с прогрессивной разверткой исходник с любыми полями будет чувствовать себя комфортно. Чаще всего.

Во-вторых, когда вы будете рендерить видео, в настройках многих кодеков можно указать поля. Обычно мы рендерим или .mp4/h264(h265), или .mov/ProRes, поэтому проблем не возникнет. Но если мастер идет на ТВ, но до сих пор требуется указывать верные поля, обычно информация есть в технических требованиях, либо ее нужно нещадно выбивать.


Чем чревато использование не тех полей?

Если коротко, то видео будет выглядеть ужасно :) Будут рывки, будут заметные полосы, особенно в движении. Это нужно фиксить, отдавать видео с верной разверткой. Наверное, видели когда-то такой материал, как на этой замечательной картинке с машиной из Википедии? Если вам нужно работать с таким исходником, то нужно провести упомянутый выше обряд процесс деинтерлейсинга. Это можно сделать либо через тот же HandBrake, либо попробовать в Premiere Pro поиграть с настройками Field Options. Обычно все легко можно исправить, но нужно понимать, что вот тот человек, от которого пришло дерганное видео, как раз неверно выполнил первый или второй пункт из прошлого параграфа. Не будьте такими!

Надеюсь, не доведется вам поработать с интерлейсом в своей жизни, желаю вам только прогрессивную развертку и чтобы про поля только на рендере вспоминали (и запилили себе пресет под нужный ТВ-канал!)

#развертка #интерлейс #деинтерлейс
Please open Telegram to view this post
VIEW IN TELEGRAM
4
😱1
В Premiere Pro идем в окно проекта, ПКМ по исходнику (или по нескольким), modify — interpret footage... Выставляем нужные поля.

В DaVinci Resolve идем в Media Pool, ПКМ по исходнику (или по нескольким), clip attributes... — field dominance. Выставляем нужные поля.

Если сомневаетесь, поставьте наугад и проверьте при воспроизведении, вы увидите проблему, если она будет, поверьте :)
👍2
А вот если нужно пофиксить плохой исходник, уже кем-то отрендеренный, то в Premiere Pro выбираем нужный клип в секвенции, ПКМ — field options... Выбираем или always deinterlace, или flicker removal. Но по возможности попробуйте поправить в HandBrake и сравните результат, возможно, Premiere Pro не справится.
🤯4