Hello. This discussion was on another thread about Archiving and future-proofing, but I decided to split it because I hope that things discussed here may have a broader scope, as they embrace:
- use of ACESclip and other ACES components (LUTs, LMT, CLF/CTL files, etc.) in production environments;
- improvement of the ACES workflow, for fostering better automation and integration of the above components.
First of all, TB-2014-009
mentions that the metadata link between some footage (either a frame-based file-sequence, or an individual video-clip file) and its ACESclip is carried by the <aces:ClipID>
element (which contains 0-1 <ClipName
>, 0-1 <Source_MediaID>
and 0-1 <ClipDate>
elements). More than one ClipID
element can be present, especially if the footage can be referenced by several logical labeling schemes at the same time (e.g. either filename, tape-name, file UUID and timestamp).
Itâs important to stress that different clips should always be referenced by different ACESclip XML files, even if the metadata contained therein (apart from the ClipID
s) are the same).
For many reasons (including vendor-neutrality), no naming conventions are even suggested in the AMPAS documentation for the sub-element types ClipName
and Source_MediaID
. I feel that ACESclip effficacy is significantly hindered because of this: Vendors can (and will) implement it differently so that interoperability may be compromised. Therefore I am drafting here a âsupplementalâ use case.
As per TB-2014-009
, §3:
-
ClipName
is attached to clip (or segment of a clip): often used in conform-files (EDL, ALE, Premiere/FCP XML, Avid bins, âŠ) to describe the version of images used within the edited sequence. -
Source_MediaID
is the general term for identifying the source-name of clips (or frame-per-file sequences) at their creationâs time (often referenced in EDLs as well). This can also be called âTape Nameâ (CMX EDLs) and âReelNameâ; an example of it isA004B003
, which locates the footage as clip the clip âB003â, stored in the 4th magazine, shot by camera âAâ.
As per §5.1:
- The link between a clip (single video file or frame-per-file sequence) and its ACESclip is loosely based on similarities between the two filesystem objectsâ filenames. This will be clarified here (below).
In addition to that:
- The link between ACESclip and the color transformations is carried over by directly describing them in the ACESclip (e.g. âinline CDLâ as shown in §A of the above document), referencing them in a separate CLF (CommonLUT) file, or by the
TransformID
of either the ACES transform; transforms can also be indirectly referenced by storing them in a separate section of an ACESclip XML file (within the<aces:TransformLibrary>
element), indexed byProcessList id
, and cross-referencing them from the color-pedigree part of the ACESclip (<aces:Config>
element) by means of the aboveid
s. - Color transformations in CTL language can and âfor as much as possible for Academy-provided CTLsâ should be validated by means of their
TransformID
tag (more on that later).
Most professional image/video file formats have a UUID or UUID-like metadata field that uniquely identifies the asset. Some formats also contain specific metadata field to address logical labelling like tape/reel/clip names. In order to create an interoperable representation of footage-ACESclip association, particularly for those footage that is not (yet) entered ACES color-managed pipeline (e.g. raw files straight from the cameras), I would like to suggest a unique association between the two metadata above, for each non-ACES production file formats, and the ClipName
/Source_MediaID
elements of the corresponding ClipID
element in the referencing ACESclip.
My proposal is therefore:
-
MXF â
ClipName
= UUID;Source_MediaID
= UMID (of the underlying video essence, not of the MXF container). -
ARRIRAW â
ClipName
= 8-chars âReel IDâ;Source_MediaID
= âUUIDâ or âSMPTE UMIDâ (both from Camera Device Information header). -
R3DCODE â
ClipName
= 8-chars âReel IDâ;Source_MediaID
= âReel ID Fullâ. -
OpenEXR â both
ClipName
andSource_MediaID
reference custom, same-name metadata (ofstring
type) in the EXR header;Source_MediaID
is a UUID or UMID. -
DPX â
ClipName
= tape/clip name from DPX header;Source_MediaID
= film reelâs first-frame KeyKode (if present, and laid out as string, e.g. âKN728-0000-0000
â), otherwise unused.
As regards the naming convention to link an ACESclip XML file to its asset, the above cross-referral scheme, ignoring filename similarities and using file-header metadata referenced as ClipID
s, is a stronger link because itâs more persistent in case the footage is:
- separated from its ACESclip sidecar at filesystem level (e.g XML files are ignored or archived on other media/paths, while âingestionâ applications only take care of specific image file formats);
- bulk-renamed as part of an automated software, scripts, and/or rendering pipeline;
- converted to a different file format (which may include filename/extension changes as well), e.g. camera-originals or film-scans becoming graded, composited plates or finished footage;
- processed along the timeline, possibly blending/compositing frames from several sources (with different creative and technical color decisions).
This scheme is valid for either ACES-color-managed footage (e.g. encoded as ST2065-4 OpenEXRs or ST2065-5 MXFs), and for generic footage in production file-formats, like camera-native (ârawâ) or film scans.
However, in order to encourage ACES Product Partners towards an interoperable naming convention for reading/writing ACESclip sidecar files, I would suggest for all vendors and in-house tools to use the following rules.
First of all ACESclip sidecar file should be created and âat least as first tryâ searched for in the same directory path where the associated clip is stored. Its file extension is always .ACESclip.xml
. Then:
- For file-per-frame formats, they are usually {
basename_12345.ext
,basename_12346.ext
, âŠ,basename_98765.ext
}, where_
is an optional, non-alphanumeric separator-character between the basename and the frame-number of the file-sequence (5 digits in this example).
In this case, the ACESclip name shall bebasename.ACESclip.xml
(ignoring separator_
, if any). - For single-file video clips, whose name is generically
FileName.EXT
, the associated ACESclip name shall beFileName.ACESclip.xml
. - Additional naming conventions restrictions may apply; they will be enforced before creating ACESclip sidecar file, and shall not be part of the ACESclip filenameâs generation algorithm. Examples of such conventions may be, for example, restricting the use of characters outsize
A-Za-z0-9.-_
ASCII characters and prohibiting starting and ending symbols.