Skip to content
Piers Deseilligny edited this page Jan 28, 2021 · 4 revisions

1. Adding files

  • Click on the "Add files" button, or "Add folder" to add all files within a given directory.
  • You can also drag files onto the interface (although this is a little buggy on macOS).
  • Any file path passed as an argument when opening the app will automatically be added

Before a file is added, it is first analyzed: a progress bar shows progress at the bottom of the window. It will then show up in the interface, whether it is a valid QuickTime/prores file or not.

2. Inspecting files

Once files have been added, any errors or warnings will show up in the "Errors" tab.

Errors have 5 different possible levels of gravity:

Critical
     Conflicting metadata The QuickTime Color header defines Color Primary / Transfer Function / Color Matrix differently than one or more ProRes frames
Multiple color atoms More than one QuickTime colr atom has been detected
Unable to open file A file system error prevented opening and analyzing the file (the detailed error will is specified)
Missing metadata
     Incompatible file This file does not contain any ProRes frames, nor does it contain any QuickTime color information
No ProRes frames This file possibly contains QuickTime color information, however it does not contain any ProRes frames
No color atom This file does not contain any QuickTime "colr" atom
Informational
     Unknown color parameter type The color parameter type in the QuickTime "colr" atom is unknown (the unknown type would be specified)
More than one creator ID The ProRes frames specify multiple conflicting creator IDs
Multiple resolutions The ProRes frames specify multiple conflicting resolutions
No Error
Other

(the above list is not exhaustive, but errors will always include a detailed description)

If you select a file, the detailed metadata can be found in the "Details" tab. If multiple files are selected (command-click or shift-click), metacolor.editor will display the metadata they have in common, and Multiple Selected for anything which differs between the selected files:

3. Patching files

In order to modify the metadata of one or more files, you first need to select them in the list (multi-select with command-click or shift-click). The "Process" button in the bottom-right will then be enabled. You can choose to replace the color primaries, transfer functions, or color matrix with any of the available values, or leave it on Don't Modify which will leave the value untouched.

The "Creator ID" is not used by any known decoders, but you may still want to replace it for a variety of purposes. You can use one of the predefined values or enter your own custom creator ID (limited to 4 characters from the ASCII character set).

Replacing the metadata in a file should be near-instantaneous: it was analyzed when bought into the program, and when you click "Process" it just has to replace a few hundred bytes. Once a file is patched, it is automatically removed from the list, along with any errors associated with it.

Output options

Three output options are available (from the "Output options" button, just above "PROCESS" in the bottom-right corner):

  • Override original files: This will patch the selected file directly; if you use this, make sure you have a back-up somewhere!

  • Create new files, alongside the originals: This will create a new file in the same folder as the original, with a different file name (video.mov becomes video.mov_modified0.mov. If that file already exists, it will create video.mov_modified1.mov instead, or video.mov_modified2.mov etc...

  • Create new files, into specified directory: Here you can select a specific directory where the patched files will be saved to

4. Advanced features

Log

The third tab (after Details and Errors) includes a detailed page where everything the program does is saved to a log, along with the exact time at which it occurred. Any errors processing a file will show up here

Settings

There's a few settings that can be configured, although you normally wouldn't really need to touch these (other than the output options):

Name Default Description
Detect QuickTime colr atom true Untick if you don't want the program to search for (and patch) the QuickTime `colr` atom.
Detect ProRes frame headers true Untick if you don't want the program to search for (and patch) ProRes frames.
Skip over ProRes frame content (Recommended) true To make the analysis faster, metacolor.editor does not search for frames or the `colr` atom in the actual image content of ProRes frames. Untick if you don't want this behaviour
Use VLC for context menu "Open" false If enabled, right-clicking on a file and choosing "Open" will open a `vlc://` link instead of the default program.

Right-click menu

Right-clicking on an added file (or a selection of files) will display the following options:

  • Open File: Opens the file with your default program, or VLC if the Use VLC for context menu "Open" setting is enabled

  • Show in File Explorer / Reveal in Finder: Open the file explorer or finder with the given file selected

  • Export as JSON: Export the file(s) as a JSON file (see bottom of page for more details)

  • Re-Analyse: Remove the file and re-analyze it with either:

    • Default analysis: Analyze with the optimizations enabled in the settings
    • Slow analysis: Analyze without any optimizations (so every single byte within the file will be searched for a QuickTime colr atom and ProRes frame headers - this should always be unnecessary)

Keyboard shortcuts

Del Remove selected files from list
Ctrl/Cmd + R Reset modifications to "Don't modify"
Ctrl/Cmd + E Export .json for selected files

Re-analyze

Export JSON

Once a file is analyzed, you can export a JSON file which contains the result of this analysis. Right-click on a file, and click on "Export as JSON". It will create a fairly large JSON file, with the following structure:

{
    //Values starting with 'Display' are human-friendly descriptions of the metadata
    "DisplayColorPrimary": "Unspecified (2)",
    "DisplayTransferFunction": "Unspecified (2)",
    "DisplayColorMatrix": "ITU-R BT.709",
    "DisplayPixelFormat": "Unkown",
    "DisplayAlphaInfo": "No alpha",
    "DisplayCreatorId": "bmd0",
    "DisplayResolution": "1920x1080",
    "DisplayChrominanceFactor": "N/A",
    "DisplayPictureType": "Progressive"

    "WorstError": 0,
    "Container": null,
    "FileName": "Afterglow - ProRes FILM 1 - Copy (2).mov",
    "FilePath": "C:\\Users\\piers\\Videos\\Prores test files\\Afterglow - ProRes FILM 1 - Copy (2).mov",

    "ColorPrimary":{ "2":[1,2,3,4,5,6,7] }, //An object comprised of keys specifying the primary ('2'), and an array ([1,2,3,4,5,6,7]) with every single frame in which it was detected
    "TransferFunction":{ "2":[1,2,3,4,5,6,7] },
    "ColorMatrix":{ "1":[1,2,3,4,5,6,7] },
    "PixelFormat":{ "0":[1,1,2,2,3,3,4,4,5,5,6,6,7,7] },
    "AlphaInfo":{ "2":[1,2,3,4,5,6,7] },
    "ChrominanceFactor":{},
    "CreatorID":{ "bmd0":[1,2,3,4,5,6,7] },
    "Resolutions":{ "1920x1080":[1,2,3,4,5,6,7] },
    "PictureType":{ "0":[1,2,3,4,5,6,7] },
    "ChromaQuants":{ "System.Byte[]":[1,2,3,4,5,6,7] },
    "LumaQuants":{ "System.Byte[]":[1,2,3,4,5,6,7] },
    
    "FrameCount":7,
    //This large array contains the exact metadata of every single frame
    "Frames":[{
        "FrameSize": 917308,
        "HeaderSize": 148,
        "Offset": 4096,
        "Version": 0,
        "CreatorID": "bmd0",
        "FrameWidth": 1920,
        "FrameHeight": 1080,
        "PictureFormat": 0,
        "FrameType": 0,
        "Primaries": 2,
        "TransferFunction": 2,
        "ColorMatrix": 1,
        "SourcePixelFormat": 0,
        "AlphaInfo": 0,
        "CustomLumaQuant": false,
        "CustomChromaQuant": false,
        "QMatLuma": null,
        "QMatChroma": null,
        "IgnoredFirst": 0,
        "IgnoredSecond": 3,
        "ChrominanceFactor": 0
    }, 
    {...}],

    "ColorAtom": {
        "PrimariesIndex": 1,
        "TransferFunction": 1,
        "ColorMatrix": 1,
        "Offset": 178913703,
        "Type": 0,
        "RawColorParam": "nclc",
        "Size": 18
    }
}