Темы XMEML

Эта подробная информация главы о выбранном Final Cut Pro темы XML, включая

Примечания по формату обмена XML

Вот некоторые дополнительные подробные данные о Формате обмена.

Для сводного описания изменений в Final Cut Pro Формат обмена XML и Окончательный вариант, посмотрите Версии XMEML и Окончательного варианта.

Синхронизация значений

Рисунок 4-1 иллюстрирует элементы синхронизации, кодирующие отношение между клипами, подклипами и носителями.

  Носители рисунка 4-1, синхронизирующие значения
Timing values

Элементы in и out закодируйте начальные и конечные пункты, указывающие мультимедийный контент, связанный с a clip или clipitem. (Напротив, элементы start и end проиллюстрированный ниже указывают размещение a clipitem в последовательности.) Элементы startoffset и endoffset закодируйте указание значений смещения a subclip.

Преобразовать in и out к значениям временного кода используйте стартовый временной код в носителях, если существует тот. Для носителей без временных кодов значение по умолчанию, начинающее временной код, является 00:00:00:00. Для носителей больше чем с одним временным кодом (таких как носители с source, aux1, aux2, sound), ищите primarytimecode подэлемент и использование то значение.

Рисунок 4-2 иллюстрирует элементы, кодирующие значения синхронизации для a clipitem в последовательности.

  Значения синхронизации последовательности рисунка 4-2
Mutliclip

Элементы start и end закодируйте запуск и конец a clipitem в последовательности включения. Элемент duration кодирует длину a clipitem. Обратите внимание на то, что duration значение для a clipitem может не соответствовать duration значение соответствующих носителей, даже когда clipitem и медиа-файл совершенно выровненный. Применение скорости к a clipitem, изменение его framerate или других редактирований может измениться duration из clipitem.

Преобразовать start и end к значениям временного кода используйте временной код в содержании последовательности, или, для клипов Браузера, временного кода на file из содержания clip.

Рисунок 4-3 иллюстрирует отношения синхронизации элементов для углов мультиклипа и мультиклипа.

  Значения синхронизации мультиклипа рисунка 4-3
Timing

angle кодирование для клипа 1 показывает, что угловой зажим может использовать in и out кодирование для указания, какая часть носителей должна использоваться для клипа.

Синхронизация in точка (synctype 1) означает что весь in точки для каждого углового зажима выстроены в линию в начале мультиклипа. В этом случае нет mediadelay требуется.

Упрощенный angle кодирование для клипа 2 показывает, как можно выстроить в линию угловые зажимы в мультиклипе. Второй угол будет черным с начала мультиклипа, в течение какого-то времени указанного в mediadelay. Тогда второй угловой зажим выведен на экран. (Обратите внимание на то, что это не целесообразно для mediadelay быть отрицательным, так как можно просто отметить более позднее in на клипе для достижения того же результата.)

Хороший способ понять эти, которые оценивает синхронизация, состоит в том, чтобы создать желаемое выравнивание мультиклипа в Final Cut Pro, затем изменить что-то (как in точка для одного клипа), и делают другой мультиклип, затем сравнивают XML для мультиклипов и видят, где они отличаются.

Скорость и специальные ключевые кадры

Окончательный вариант кодирует скорость на a clipitem с массивом специальных ключевых кадров.

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

Первый ключевой кадр всегда имеет значение 0 для when, и последний ключевой кадр всегда имеет продолжительность clipitem как значение для when

Скорость может быть или постоянной или переменной.

Специальные и виртуальные ключевые кадры

Окончательный вариант экспортирует четыре специальных ключевых кадра для a clipitem со скоростью. Они:

  1. speedkfstart— первый ключевой кадр. Не представляют если speedkfin находится на первом кадре.

  2. speedkfin— ключевой кадр в в точке.

  3. speedkfout— ключевой кадр в указывает.

  4. speedkfend— последний ключевой кадр. Не представляют если speedkfout в конце.

Время от времени Окончательный вариант выписывает ключевой кадр скорости в XML, который не находится фактически на clipitem. Эти «виртуальные» ключевые кадры отмечаются с помощью булева элемента speedvirtualkf набор к TRUE.

Окончательный вариант игнорирует виртуальные ключевые кадры на импорте, если они не находятся на первом или последнем ключевом кадре.

anchoroffset Элемент

anchoroffset элемент является новым в версии 5 Final Cut Pro Формат обмена XML (xmeml). Это - дополнительное значение, описывающее смещение от ключевого кадра для воспроизведения. Final Cut Pro использует его для сохранения точности по изменениям скорости.

Например, при применении 200%-й скорости к clipitem кадры воспроизвели бы в: 0, 2, 4... Но если speedkfin установлен в 3, воспроизведение запустилось бы с кадра, который больше не доступен. Для корректировки Окончательный вариант добавляет anchoroffset 1,0 так, чтобы известность воспроизвела бы в 1, 3, 5, 7... запустившись правильно с кадра, указанного speedkfin .

Корректировки ключевого кадра

По историческим причинам существует два modifications, которые необходимо иметь в виду при чтении или записи специальных ключевых кадров для скорости.

  • Последняя Корректировка Кадра — инкременты Окончательного варианта when и value в последнем ключевом кадре 1.

  • Постоянная Обратная Корректировка — Для постоянных обратных ключевых кадров, Окончательный вариант постепенно увеличивает все value настройки 1, за исключением value в последнем ключевом кадре, если это было уже постепенно увеличено Последней корректировкой Кадра.

Импорт ключевых кадров скорости

Окончательный вариант интерпретирует ключевые кадры скорости в импорте по-другому для переменной и постоянной скорости.

  • Для переменной скорости Окончательный вариант интерпретирует ключевые кадры скорости, как указано.

  • Для постоянной скорости Окончательный вариант создает свой график скорости:

    1. Чтение value спецификация первого ключевого кадра.

    2. Определение числа кадров, используемых путем чтения value спецификация последнего ключевого кадра и вычитания value спецификация первого ключевого кадра.

    3. Установка duration из графика скорости как when спецификация последнего ключевого кадра.

    4. Корректировка графика скорости как требуется, чтобы гарантировать, что установка графика в в точке соответствует speedkfin спецификация. Обратите внимание на то, что, если ключевой кадр отмечается как виртуальный и не является первым или последним ключевым кадром, Окончательный вариант игнорирует тот ключевой кадр.

Экспорт ключевых кадров скорости

Окончательный вариант пишет ключевые кадры для скорости после этих соглашений:

  • Если ключевой кадр не существует в speedkfn или speedkfout, Окончательный вариант добавляет один и отмечает его как виртуальный.

  • Окончательный вариант применяет поправки, упомянутые в разделе «Keyframe Adjustments» выше. Отметьте эти точки:

    • Установка для when в последнем ключевом кадре должен согласиться с duration из clipitem .

    • Если скорость является постоянной и если настройки ключевого кадра не производят линейный график, Окончательный вариант корректирует настройки для создания линейного графика при поддержании настроек для speedkfin.

Идентификация носителей

Одна общая причина ключевых кадров скорости считывания состоит в том, чтобы идентифицировать кадры носителей, используемые в speedkfin, или в speedkfout, или между speedkfin и speedkfout.

  • Для в точке в носителях, используйте установку value в speedkfin ключевой кадр.

  • Для точки в носителях, запустите с установки value в speedkfout ключевой кадр. Вычтите из этого наклон между speedkfout ключевой кадр и предыдущий ключевой кадр. Это вычисление требуется потому что speedkfout использует упорядочивание на основе 1 — посмотрите Примечание.

  • Для степени носителей, используемых, когда скорость будет contstant, проверьте value настройки в speedkfin и speedkfout; для переменной скорости проверьте ключевые кадры между speedkfin и speedkfout.

Управление компонентами проекта

Окончательный монтаж Pro Формат обмена XML позволяет Вам изменить или обновить открытые проекты с помощью элементов uuid и updatebehavior. Также, можно использовать itemhistory элемент для отслеживания истории редактирования a clipitem.

uuid и updatebehavior Элементы

uuid элемент уникально и постоянно идентифицирует отдельные компоненты (клипы, стеллажи и последовательности) в проекте. Так как это сохраняется с файлом проекта, можно использовать его для отслеживания подробных изменений во время потока операций.

updatebehavior элемент позволяет Вам изменять UUID-идентифицированные компоненты в открытом проекте. Целевой компонент в проекте может быть клипом, стеллажом или последовательностью. Также, можно использовать updatebehavior изменить метаданные в файле QuickTime. (Займитесь основными клипами),

Целевой компонент идентифицируется uuid запись. Например, вот отрывок XML, заменяющий клип в Браузере:

Перечисление 4-1  , заменяющее клип в браузере

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xmeml>
<xmeml version="5">
    <clip id="clip2 ">
        <uuid>7ACBD5FC-C166-40F9-AE36-55B39476D8E6</uuid>
        <updatebehavior>replaceiffound</updatebehavior>
        <!--Information about the replacement clip -->
    </clip>

Когда этот отрывок импортируется, Final Cut Pro ищет компонент в проекте с соответствием UUID. Если это находит один, это заменяет компонент клипом, указанным в документе формата обмена. (В этом случае заменяющий клип появляется на самом верхнем уровне Браузера.), Если это не находит целевой клип, ничто не происходит. 

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

Перечисление 4-2  , заменяющее клип в стеллаже

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE xmeml>
 <xmeml version="5">
    <bin>
        <uuid>4FDDECFA-D312-4272-8DE8-BE98E4BA5F92</uuid>
        <updatebehavior>replaceiffound</updatebehavior>
        <name>Bin 1</name>
        <children>
            <clip id="clip2 ">
                <uuid>7ACBD5FC-C166-40F9-AE36-55B39476D8E6</uuid>
                <updatebehavior>add</updatebehavior>
 <!-- Information about the replacement clip -->
 </clip>
    </bin>

Точно так же заменять деталь clipitem в последовательности необходимо заменить всю последовательность. 

Путем Вы указываете, что расположение заменяющего компонента в документе импорта имеет приоритет. Например, если целевой клип находится в Стеллаже 1 и если Вы импортируете отрывок, такой как Перечисление 4-1, Final Cut Pro удаляет клип из Стеллажа 1 и помещает заменяющий клип в верхний уровень Браузера.

Желаемое поведение во время импорта указано записью для updatebehavior. Действительные доступы:

replaceiffound
Заменяет целевой компонент, если найдено. Если не найденный, ничего не делает.
replaceoradd
Заменяет целевой компонент, если найдено. Если не найденный, добавляет импортированный компонент к проекту.
addifnotfound
Если целевой компонент не найден, добавляет импортированный компонент к проекту. Если целевой компонент найден и если целевой компонент является стеллажом, атрибуты стеллажа проигнорированы, и дочерние элементы стеллажа обрабатываются согласно их updatebehavior настройки.
add
Добавляет импортированный компонент к проекту. Если компонент с тем же uuid запись присутствует, изменения uuid запись импортированного объекта.
remove
Удаляет целевой объект, если найдено. Если не найденный, ничего не делает.

itemhistory Элемент

В первый раз Вы экспортируете XML для a clipitem, Окончательный вариант создает UUID для элемента. Если Вы изменяете clipitem и экспортируйте его снова, Окончательный вариант генерирует новый UUID для элемента. Элемент itemhistory кодирует список UUIDs, связанного с деталью clipitem. Главный UUID в списке является текущим UUID для элемента и, как гарантируют, будет уникален. Остальная часть списка является архивной записью UUIDs, связанного с элементом. (Нижней частью элемент UUID в списке является начальный UUID, сгенерированный для clipitem или UUID исходного элемента, из которого был получен текущий элемент.)

Например, предположите экспорт a clipitem впервые. Это присваивается начальный UUID:

<itemhistory>
  <uuid>3510A3C8-5C79-4AA4-9A81-38B40397C0DC </uuid>
</itemhistory>

Вы тогда блейд clipitem и экспортируйте оба элемента. XML для первого элемента:

<itemhistory>
  <uuid>CC70F2BC-1777-4FF6-8846-58A8A3D2DA0E</uuid>
  <uuid>3510A3C8-5C79-4AA4-9A81-38B40397C0DC</uuid>
</itemhistory>

XML для второго элемента:

<itemhistory>
  <uuid>DD30375E-5CF3-4EB7-B209-36624768C4BB</uuid>
  <uuid>3510A3C8-5C79-4AA4-9A81-38B40397C0DC</uuid>
</itemhistory>

Общий заключительный UUID для этих двух элементов показывает, что они возникают.

Управление метаданными QuickTime

Final Cut Pro 5.1.2 поддерживает метаданные в файлах QuickTime. Когда Final Cut Pro открывает или перечитывает файл QuickTime с метаданными, он кэширует копию метаданных в проекте. (Файл является авторитетным источником метаданных; если файл изменяется, кэшируемые изменения копии.)

Для управления метаданными QuickTime версией 3 Final Cut Pro, Формат обмена XML обеспечивает элемент metadata и его подэлементы. (См. Метаданные QuickTime) С этими новыми элементами можно вывести на экран метаданные в проекте путем экспорта документа формата обмена. В additionl можно фактически изменить метаданные в файле QuickTime путем импорта документа формата обмена с соответственно указанными элементами.

В Final Cut Pro метаданные QuickTime появляются на уровнях дорожки или фильме; т.е. родители metadata может быть file, video, или audio. Вот фрагмент XML, выводящий на экран некоторые метаданные на уровне фильма.

  Демонстрационные метаданные перечисления 4-3

<file id="clouds">
    <name>clouds</name>
    <pathurl>file://localhost/Users/. . .</pathurl>
    <rate>
        <timebase>8</timebase>
    </rate>
    <duration>91</duration>
    <metadata>
        <storage>QuickTime</storage>
        <key>com.mycompany.myapp.myid.mymd</key>
        <size>11</size>
        <type>UTF8</type>
        <value>My metadata</value>
    </metadata>
    <media>
    . . .

При импорте документов формата обмена с информацией о метаданных Final Cut Pro кэширует импортированные метаданные. Однако, когда переподключения Final Cut Pro сослались на файлы QuickTime к проекту, метаданные в этих файлах заменяют метаданные, которые Вы импортировали.

Можно постоянно изменить метаданные в файле QuickTime при помощи элемента updatebehavior как подэлемент metadata. В этом контексте, updatebehavior имеет два действительных доступа: add или remove. Вот использование фрагмента XML add.

Перечисление 4-4  , добавляющее метаданные

    <metadata>
        <updatebehavior>add</updatebehavior>
        <storage>QuickTime</storage>
        <key>com.mycompany.myapp.myid.mymd</key>
        <size>22</size>
        <type>UTF8</type>
        <value>My additional metadata</value>
    </metadata>

Метаданные в файлах QuickTime сохранены как пара ключ/значение. В Перечислении 4-4 значение и ключ добавляются к метаданным в файле. Если файл уже имеет идентичный ключ, импортированное значение не заменяет существующих значений. Вместо этого новое значение сохранено рядом с существующими значениями для того ключа. Обратите внимание на то, что a key указан с обратной-dns строкой, чтобы помочь гарантировать уникальность.

Используя remove, с другой стороны, действительно влияет на существующие метаданные в файле. Вот пример:

Перечисление 4-5  , удаляющее метаданные

    <metadata>
        <updatebehavior>remove</updatebehavior>
        <storage>QuickTime</storage>
        <key>com.mycompany.myapp.myid.mymd</key>
    </metadata>

Это удаляет указанный ключ и все его присваиваемые значения от файла. (Обратите внимание на то, что не необходимо указать подэлементы type, size, или value.)

Когда Вы импортируете документ формата обмена с metadata спецификации, Final Cut Pro сначала обрабатывает спецификации с remove, и затем те с add. (Это позволяет Вам легко заменять значения для определенного ключа из единственного документа импорта.)