Контейнерные клипы

## Определение контейнерного клипа

Контейнерный клип — это медиаэлемент и созданный на его основе клип монтажного стола состоящий из трёх компонентов, упакованных вместе в единый объект: программа, несобранное медиа и собранное медиа.

### Компоненты

1. Несобранное медиа — несобранное на монтажном столе медиа, которое не отображается в окне просмотра.
2. Программа — данные о сборке клипа на монтажном столе, иногда использующие несобранное медиа в качестве входного материала.
3. Собранное медиа — собранное на монтажном столе медиа, которое отображается в окне просмотра.

## Обоснование

- Производительность

  Контейнерные клипы предоставляют средства для преобразования ресурсоёмких элементов мультимедиа, таких как последовательность клипов, в собранные медиа

- Управление ресурсами

  Например, проектами Blender и сценариями G'Mic можно управлять благодаря их доступности через контейнеры.

- Расширение возможностей

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

- Взаимообмен

  В будущем будет создан центральный репозиторий для совместного использования ресурсов контейнерных клипов.

## Рабочий процесс

1. Создание контейнерного клипа через меню Проект → Создать контейнерный клип.
2. Правка контейнерного клипа осуществляется щелчком по нему правой кнопкой мыши и выбором Править данные контейнерного клипа если данные доступны.
3. Добавление контейнерного клипа на монтажный стол.
4. Сборка и управление контейнерными клипами на монтажном столе осуществляется щелчком по нему правой кнопкой мыши и выбором подменю Действия с контейнерным клипом.

## Типы контейнерных клипов

### Контейнерный клип из сценария G'Mic

##### Компоненты

- Несобранное медиа — видеоклип.
- Программа — сценарий G'Mic созданный и сохранённый в инструменте G'Mic.
- Собранное медиа — собранный клип с применённым эффектом G'Mic.

##### Случаи использования

- Сборка эффектов G'Mic только на участках клипов, используемых на монтажном столе.
- Упрощение использования одного пользовательского эффекта G'Mic для нескольких клипов.

##### Создание контейнерного клипа из сценария G'Mic

1. Откройте инструмент G'Mic.
2. Создайте сценарий эффекта G'Mic. См. раздел Эффекты G'Mic в главе Автономные инструменты.
3. Нажмите на кнопку Сохранить сценарий в левом нижнем углу и сохраните эффект.
4. Выберите в меню Проект → Создать контейнерный клип → из сценария G'Mic.
5. Выберите сценарий, который вы сохранили и клип, к которому он будет применён для создания контейнера.

### Контейнерный клип из проекта Blender

##### Компоненты

- Несобранное медиа — заполнитель видеоклипа, созданный при создании элемента медиа.
- Программа — файл проекта с расширением *blend.
- Собранное медиа — клип собранный из файла проекта.

##### Случаи использования

- Управление проектами Blender, с помощью дескрипторов Flowblade.
- Создание редакторов в проектах Blender, чтобы иметь возможность правки свойств в Flowblade
- Возможность внесения изменений и обмена интересными проектами Blender. Например, приятными текстовыми эффектами.

##### Создание контейнерного клипа из проекта Blender

1. Выберите в меню Проект → Создать контейнерный клип → из проекта Blender и выберите файл проекта Blender с расширением .blend.
2. При необходимости отредактируйте значения проекта Blender см. раздел Правка контейнерной программы.

### Создание контейнерного клипа из выбранного

##### Компоненты

- Несобранное медиа видеоклип MLT XML, созданный из выбранных клипов или последовательности, подобной составным клипам ранее.
- Программа видеоклип MLT XML, созданный из выбранных клипов или последовательности, подобной составным клипам ранее. Здесь программа та же, что в несобранных медиа
- Собранное медиа Собранный клип из видеоклипа MLT XML.

##### Случаи использования

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

##### Создание контейнерного клипа из выбранного

1. Выберите от двух до нескольких соседних клипов на одной дорожке.
2. Выберите Проект → Создать контейнерный клип → Из выбранных клипов.
3. Новый элемент медиа появится в текущей корзине.

##### Создание контейнерного клипа из последовательности

1. Выберите Проект → Создать контейнерный клип → Из текущей последовательности.
2. Новый элемент медиа появится в текущей корзине.

##### Синхронизация звука слиянием 2 клипов

1. Выберите два элемента мультимедиа во вкладке Медиа.
   - Предполагается, что вы выберете 1 видео и 1 звуковой клип.
   - При выборе двух видеоклипов, в зависимости от порядка выбора, один видеоклип будет обработан как видео, другой как звук.
   - Звук в клипе, обработанном как видео, отключится.
2. Выберите Проект → Создать контейнерный клип → Синхронизация звука слиянием 2 клипов.
3. Если звуковая синхронизация прошла успешно, появится диалоговое окно. В диалоговом окне, присвойте имя новому элементу медиа.
4. Новый элемент медиа появится в текущей корзине.

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

## Создание редакторов в контейнерной программе Blender

В контейнерных клипах Blender можно создавать и добавлять редакторы, которые позволяют пользователям изменять клип на выходе.

Функция использует Blender Python API и запускает сценарий перед выводом данных для изменения значений атрибутов объектов сцены Blender

Это продвинутая функция, требующая практических знаний по написанию сценариев с использованием Python API Blender.

#### Редактируемые объекты

В настоящее время, для редактирования, доступно три типа объекта:

- Объекты — это объекты словаря bpy.data.objects, доступтные для сценария Python;
- Кривые — это объекты словаря bpy.data.curves, доступтные для сценария Python;
- Материалы — это объекты словаря bpy.data.materials, доступтные для сценария Python.

#### Редакторы

В настоящее время, для редактирования атрибутов объектов, доступны пять различных типов редакторов:

- Редактор строк выводит строку в кавычках в сценарии запуска;
- Редактор целого числа выводит целое число в сценарии запуска;
- Редактор плавающей выводит число с плавающей запятой в сценарии запуска;
- Редактор цвета выводит последовательность из 4 чисел, разделённых запятыми, которые определяют цвет;
- Редактор значений выводит строку без кавычек в сценарии запуска. Это может быть использовано в качестве значения для любого атрибута.

### Пример

В этом примере мы создаём редакторы строк и цвета для изменения текста и цвета, отображаемых в проекте Blender.

#### Шаг 1: Установка имён объектов и атрибутов с помощью сценария Blender

Панель сцен и сценариев Blender с открытым тестовым проектом.

Здесь мы установили, что:

- нам нужно изменить атрибут body объекта bpy.data.curves["Title1"] для написания текстовой строки;
- нам нужно изменить атрибут diffuse_color объекта bpy.data.materials["Title1.material"] для установки цвета текста.

#### Шаг 2: Правка данных программы контейнерного клипа

С помощью этой информации вы сможете создавать редакторы, с помощью которых можно изменять текст и цвет клипов, представленных в данном проекте.

- Создайте контейнерный клип из своего проекта Blender.
- Щёлкните правой кнопкой мыши по созданному медиаэлементу и выберите «Править данные контейнерного клипа».

- Чтобы создать редактор текста, мы задаём следующие установки в диалоге, обратите внимание, как они соотносятся с предыдущей информацией.

- Для создания редактора цвета, мы задаём следующие установки в диалоге.

- Не забывайте нажимать Добавить редактор, чтобы сохранять данные в качестве редактора.

#### Шаг 3: Установка значений клипа на монтажном столе

- Переместите клип на монтажный стол.

- Щёлкните правой кнопкой мыши по клипу и выберите Действия с контейнерным клипом → Править контейнерную программу. Измените данные в диалоговом окне.

#### Сценарий запуска

Редакторы в этом примере создают строки кода приведённые ниже, которые устанавливают значения атрибутов в сценарии lauch перед началом сборки.

obj = bpy.data.curves["Title1"]

obj.body = "Снова здрасте!"

obj = bpy.data.materials["Title1.Material"]

obj.diffuse_color = 1.0, 1.0, 1.0, 1.0