31 июля, 2015

Cinelerra-CV и Pan/Crop в SonyVegas (Windows)

Иногда мне пишут линукс-пользователи, интересующиеся Cinelerra.
Один из них хотел получить в cinelerra подобие инструмента Pan/Crop  в SonyVegas (Windows).
 
Инструмент `Crop - Обрезка` в Cinelerra не позволяет проводить динамическую автоматизацию своих параметров с течением времени.

Пользователь же хотел,  свободно перемещаясь с течением времени кадрирующей рамкой размера 1690х720 по всему изображению размера 1920x1080, отбирать нужные участки и в результате получить из видео размером 1920x1080 видео размером 1690х720, в котором бы отображалось только то содержимое, которое он отобрал рамкой. 

При этом, в ходе манипуляций в Cinelerra он хотел видеть всё изображение полностью, для того, чтобы ориентироваться, куда, собственно, двигать "отбирающую" рамку.

Pan/Crop  в SonyVegas имеет: собственно окно инструмента, в котором отображается исходная картинка полностью, производятся манипуляции и окно предварительного просмотра, в котором отображается результат манипуляций.

Опытные пользователи Cinelerra спросят: а чего это ему штатных опций не хватало - ведь можно отбирать материал из исходной картинки при помощи инструмента Камера (и не только), установив соответственно "Размер Трека" (он же размер окна обзора "Камеры-Проектора", он же размер временного кадра) и "Размер Вывода". А затем выравнивать Проектором картинку по рамке Вывода. Разумеется всё это устанавливая ключевые точки на огибающих управления Камерой/Проектором. Если нежелательные участки находятся по периметру картинки, можно пользоваться одним Проектором, не трогая Камеру.

 

 Но дело в том, что согласно специфике программного конвейера Cinelerra,   установив "Размер Трека" (он же размер окна обзора "Камеры", он же размер временного кадра) меньше, чем исходное изображение (в частности 1690х720 меньше чем 1920x1080), участки изображения, не попадающие в "Размер Трека", становятся скрытыми. 
 Нет, они полностью не теряются, не исчезают; мы можем, перемещая Камеру в окне `Compositor - Составитель (Вывод)`, отображать их в окне обзора Проектора и следовательно в окне "Составитель (Вывод)".
 Но, если пользователь испытывает трудности в ориентировании по содержимому видеокартинки, отбор нужных участков на протяжении видео может оказаться в некоторых случаях затруднительным.
 "Размер Вывода" (он же "Размер холста") также отсекает-скрывает участки изображения, большие, чем его ("Размера Вывода") размер.


 Та же самая ситуация возникает и если использовать для отбора "Проектор", хотя в данном случае им пользоваться несколько удобнее, чем "Камерой". 

Надо просто установить "Размер Вывода" 1690х720, а "Размер Трека" 1920x1080 (он же размер окон обзора Камеры и Проектора) и, смещая Проектором картинку по сторонам, можно ориентироваться в тех участках изображения, которые скрыты за краями рамки Вывода. 
Затем при помощи ключевых кадров подгонять картинку  Проектором под рамку "Размера Вывода" так, чтобы в рамку Вывода (то-бишь в результирующий файл) попадало требующееся вам содержимое исходной видео-картинки.

Для тех, кого текст выше вверг в ступорозное состояние, но желание разобраться не погасло; для тех, кто открывая Cinelerra,  пребывает в состоянии барана перед новы.. былинного персонажа перед неким объектом, охотно попробую объяснить подробнее. 


Сначала краткий ликбез:

- камера "ходит" по исходной картинке.
- камера определяет как будет отображаться исходная картинка в рамке проектора; 

точнее сказать: камера определяет: что из исходной картинки будет отображаться в рамке проектора 
или другими словами: что из исходной картинки попадёт во временный кадр.
-  проектор "таскает" снятую камерой картинку
(временный кадр) по холсту.
- проектор определяет где и как будет отображаться переданная (снятая) камерой картинка
(временный кадр) в рамке холста.
- рамка Вывода (её размер) - он же "Размер холста" (как я писал уже выше) тоже влияет на то, где и как будет отображаться картинка.
- можно сказать и, что определять где и как будет отображаться картинка относительно рамки Вывода, можно и при помощи Камеры, но строго технически так говорить неверно ибо фактически этим занимается Проектор даже если он у вас не активирован.


То, что хотел пользователь, можно сравнить с тем, как если-бы оператор стоял с камерой перед огромным полотном и проводил его съемку, смотря в видоискатель камеры.
При этом он периодически отрывался-бы от
видоискателя, чтобы сориентироваться в материале, исходя из его полного размера.

Но в программе получается, что пользователь смотрит только в видоискатель (окно обзора Камеры). 

Проектор передает на холст (в окно Вывод (Compositor)) всё то и в том размере, что сняла Камера с размером окна обзора согласно заданным цифрам в "Размере Трека" (ПКМ по треку).
Точнее сказать, Камера снимает картину, формируется временный кадр  и Проектор его отправляет на холст.
 

Но вот из того, что Проектор передал, пользователь видит на холсте в Выводе (Compositor) лишь то, что вписалось в размер Вывода (Размер холста - Canvas Size).

И, если размер оригинала 1920x1080, размер трека (он же размер окна обзора камеры/проектора) 1920x1080, а холста 1690х720 - то края по периметру не вписались.
А если наоборот: размер трека 1690х720, а холста 1920x1080 то пользователь все равно не видит на холсте в Выводе (Compositor) полностью исходную картинку, так как
размер окна обзора камеры/проектора (задан в "Размер трека")
меньше исходной картинки и значит передают они на холст, только то,что попало в размер их окон обзора (то, что видно в их окнах (зеленой и красной рамках ).
И мы должны перемещать эти инструменты, чтобы отобразить в окне Вывода скрытые за их границами участки изображения.

 Однако пользователь упорно хотел видеть в ходе отбора полностью исходную картинку и спрашивал о том, что можно-ли всё-таки как-то "выкрутиться", чтобы .. 

ибо: "выбирать камерой, не видя всего видео, ему очень неудобно". А масштабировать Камерой-Проектором видео пользователь не хотел, чтобы не растягивать картинку.

 И мы "выкрутились": я и Cinelerra - мощная, гибкая Linux-программа для видеомонтажа и композитинга.


Не следует искать в приведённом ниже примере художественной ценности - моя цель была просто показать технику.


Итак,  способ состоит в следующем:

(я буду использовать другие цифры 720х576 и 400х300):

 

- В настройках проекта устанавливаем цветовую модель с альфаканалом
- Устанавливаем 2 видео-трека (я использую только видеотреки, поскольку аудио в моём видео отсутствует)

 - Размещаем на них одно и тоже видео строго одно под другим без смещений
- Размер нижнего трека ставим 720х576 (ПКМ по треку) и отключаем для него возможность редактирования - выключаем красную кнопку (Arm track).  Всё, пока он не нужен.
- Размер верхнего трека ставим тоже 720х576, размер Вывода (Установки -> Формат проекта -> Размер холста) ставим 400х300



- Теперь включаем инструмент Маска в окне `Compositor - Составитель` и создаем - растягиваем рамку Маски размером  400х300 - используем в качестве шаблона рамку Вывода
Угловые узлы рамки Маски ставятся в 4 клика по углам рамки Вывода: правый верхний - правый нижний - левый нижний - левый верхний. 

На скриншоте ниже я сделал (для наглядности) рамку Маски чуточку больше рамки Вывода


Если нужно задать точные координаты узла - активируется этот узел и корректируются координаты в параметрах маски.




Можно и грубо "забить" узлы, а потом, последовательно активируя каждый, уточнять координаты в параметрах. Или вовсе не морочить голову, а просто сделать рамку "Маски" чуть больше рамки "Вывода" - потом откорректируем Проектором.

- Теперь устанавливаем размер Вывода 720х576 

- Задаем режим Маски "Умножение прозрачности"

Маска работает, но, так как внизу под верхним треком - копия видео, на экране отображается полная исходная картинка.



- Теперь в меню "Вид" -> "Маска" ---  включаем отображение ключевых кадров "Маски" на треке.
- И включаем в главном окне или в окне Compositor кнопку автогенерации ключевых кадров (кнопка "ключик" подсвечена)
- Удерживая Ctrl+Alt мы можем двигать рамку Маски левой кнопкой мыши как единое целое.
- Перемещаем курсор воспроизведения в главном окне или слайдер в окне Compositor, двигаем рамку Маски, захватывая в неё нужные участки изображения и программа при этом автоматически создаёт для Маски ключевые кадры в тех временных точках, в которых происходит изменение её параметров. Проходим всё видео.



Например, если на участке с 10 по 50 секунду вы хотите, чтобы рамка Маски сохраняла своё положение, а с 51 по 55 изменила местоположение, то вы должны задать в 50 секунде параметры ключевого кадра Маски те же, что и в 10 секунде, а в 55 установить ключевой кадр Маски с новыми соответствующими параметрами (он будет установлен автоматически при смещении рамки Маски).


В тех временных точках, где вы смещаете рамку Маски, обязательно устанавливайте метки (переместились в точку-поставили метку-сместили рамку Маски).


- Теперь на нижнем треке слева на панели управления отключаем зеленую треугольную кнопочку "Play Track". 

Этот трек нам уже не нужен.
- Наблюдаем работу Маски в режиме "Умножение прозрачности"



- Закрываем окно Маски и отключаем кнопку автогенерации кл. кадров.
 
- Устанавливаем размер Вывода 400х300 


- Ставим курсор воспроизведения в начало видео.
- Переключаемся в режим Проектора в окне Compositor.
- В меню "Вид" включаем отображение на треке огибающих (Х, Y) управления Проектором.
- Включаем кнопку автогенерации ключевых кадров.
 Наша задача теперь при помощи устанавливаемых ключевых кадров Проектора выровнять отображение отобранной Маской картинки по рамке Вывода и удерживать её в рамке Вывода на протяжении всей длительности видео. Если рамка Маски была несколько больше рамки "Вывода" - на этом этапе можно это откорректировать. Главное - чтобы не меньше.

Создав первый ключевой кадр для Проектора, теперь перемещаемся при помощи соответствующей кнопки к следующей метке, расположенной во временной позиции, где у нас было изменение местоположения рамки Маски. Выравниваем картинку Проектором по рамке Вывода (при этом автом. генерируется ключевой кадр для Проектора), идём к следующей метке, где повторяем процедуру. Проходим всё видео.

Важный момент - сегменты между ключевыми точками огибающих (X, Y) управления Проектором должны
быть на дорожке линейными !
Для этого, установив первый ключевой кадр для Проектора, нажмите в окне параметров Проектора
на кнопочку "linear" Tangent on current Projector Keyframes (см. на скриншоте ниже). Все последующие сегменты между создаваемыми кл. кадрами будут линейными.
Но в принципе, действуйте исходя из ваших требований: сглаженные и линейные сегменты между кл. точками на огибающих просто определяют характер нарастания изменений параметров Проектора между кл. кадрами.


Если в ходе манипуляций огибающие управления Проектором исчезают из вида, откорректируйте их отображение, нажав на кнопку `Fit all autos to display - Отобразить диапазон автоматизации по высоте дорожки ( Alt + f )` (вертикальная двунаправленная стрелочка вверху на панели инструментов главного окна программы).


 Успехов Вам !
 
 

Комментариев нет:

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