Вот вы спросите: «да какая польза от твоих этих ффмпегов?»
А вот только за сегодня было два случая, когда он помог:
1. Человек, работающий с видео довольно опосредованно, смог сильно сжать видео без особой потери качества (Premiere Pro и всякие ноунейм конвертеры сильно шакалили картинку)
2. Шот, прилетевший от фрилансера и записанный в непонятный для Adobe кодек, был оперативно пережат в ProRes.
Так-то!
#ffmpeg
А вот только за сегодня было два случая, когда он помог:
1. Человек, работающий с видео довольно опосредованно, смог сильно сжать видео без особой потери качества (Premiere Pro и всякие ноунейм конвертеры сильно шакалили картинку)
2. Шот, прилетевший от фрилансера и записанный в непонятный для Adobe кодек, был оперативно пережат в ProRes.
Так-то!
#ffmpeg
🦄3❤1
Давайте разбираться с темой, будоражащей умы миллионов людей во всем мире! Речь конечно же о цветовой субдискретизации.
Это невыговариваемое словосочетание в английском звучит поприятнее — 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 пикселя все пиксели, несущие информацию, заложенную в видео с самого начала. Никаких фокусов и искажений цвета. Но тут и субдискретизации нет :)
Продолжение после картинки!
Это невыговариваемое словосочетание в английском звучит поприятнее — 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 не улучшит качество, информации неоткуда взяться :)
Из очевидных плюсов цветовой субдискретизации (потерпите, немного осталось читать это словосочетание) можно выделить следующие:
✅Сжатие потока, то есть экономия места на диске и пониженные требования к ширине интернет-канала при прямых трансляциях. В идеале это выглядит так (на практике обычно сильно иначе):
Минусы тоже есть:
❌ Могут появиться видимые артефакты сжатия, пропасть детали.
❌Снижается гибкость работы с материалом в CG-департаменте.
❌Снижается динамический диапазон видеосигнала.
🎬Еще пара замечаний.
✅Есть еще важное уточнение об альфа-канале, то есть канале прозрачности. Он добавляет нам еще одну цифру в формат цветовой субдискретизации, в самый конец. И 4:4:4 превращается в 4:4:4:4! В подавляющем большинстве случаев вы будете сталкиваться именно с таким форматом субдискретизации, когда речь будет заходить об альфе, и чаще всего это будет ProRes 4444XQ.
❗️Не забывайте, что сжимая материал в угоду экономии места, мы можем получить проблемы в пайплайне, так как какому-либо департаменту может не хватить качества видео для нормальной работы. Обычно считается хорошим тоном хранить исходный материал в максимальном качестве, как снято, плюс пересчитывать его в монтажный кодек, что дает огромный прирост в скорости монтажа, а зачастую монтажного кодека еще и хватает для работы в других департаментах. Да, это отнимает место, но зато избавляет от лишней головной боли по ходу работы над проектом.
Ищите баланс!
#воркфлоу #цветоваясубдискретизация
🎬Все просто: при работе с видео часто возникает проблема пережатия исходного материала, чтобы с ним можно было комфортно работать всем департаментам. Здесь речь и о 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
Мы втискиваем в более узкий по горизонтали формат 4:3 наш более широкий видос, сжимая также по горизонтали пиксель. При вещании видео растягивается обратно.
Для 720x576 с соотношением сторон 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.
#пиксель
🎬Да, мы привыкли к тому, что у нас есть наши 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
.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. При работе с видео с полуполями в прогрессивной секвенцииВо-первых, вне зависимости от типа развертки секвенции, в которой вы работаете (лучше работать в прогрессивной развертке, поверьте, хотя есть исключения), все материалы должны быть корректно интерпретированы. Приложу скриншоты, как это сделать в Premiere Pro и в DaVinci Resolve. Вообще любой софт самостоятельно интерпретирует исходники корректно, но бывают неприятные исключения, поэтому этот момент лучше контролировать. Нужно сказать, что в секвенции с прогрессивной разверткой исходник с любыми полями будет чувствовать себя комфортно. Чаще всего.
2. При рендере видео
Во-вторых, когда вы будете рендерить видео, в настройках многих кодеков можно указать поля. Обычно мы рендерим или .mp4/h264(h265), или .mov/ProRes, поэтому проблем не возникнет. Но если мастер идет на ТВ, но до сих пор требуется указывать верные поля, обычно информация есть в технических требованиях, либо ее нужно нещадно выбивать.
Если коротко, то видео будет выглядеть ужасно :) Будут рывки, будут заметные полосы, особенно в движении. Это нужно фиксить, отдавать видео с верной разверткой. Наверное, видели когда-то такой материал, как на этой замечательной картинке с машиной из Википедии? Если вам нужно работать с таким исходником, то нужно провести упомянутый выше
Надеюсь, не доведется вам поработать с интерлейсом в своей жизни, желаю вам только прогрессивную развертку и чтобы про поля только на рендере вспоминали (и запилили себе пресет под нужный ТВ-канал!)
#развертка #интерлейс #деинтерлейс
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
В Premiere Pro идем в окно проекта, ПКМ по исходнику (или по нескольким), modify — interpret footage... Выставляем нужные поля.
В DaVinci Resolve идем в Media Pool, ПКМ по исходнику (или по нескольким), clip attributes... — field dominance. Выставляем нужные поля.
Если сомневаетесь, поставьте наугад и проверьте при воспроизведении, вы увидите проблему, если она будет, поверьте :)
В DaVinci Resolve идем в Media Pool, ПКМ по исходнику (или по нескольким), clip attributes... — field dominance. Выставляем нужные поля.
Если сомневаетесь, поставьте наугад и проверьте при воспроизведении, вы увидите проблему, если она будет, поверьте :)
👍2
А вот если нужно пофиксить плохой исходник, уже кем-то отрендеренный, то в Premiere Pro выбираем нужный клип в секвенции, ПКМ — field options... Выбираем или always deinterlace, или flicker removal. Но по возможности попробуйте поправить в HandBrake и сравните результат, возможно, Premiere Pro не справится.
🤯4