Media Extension#

Feature Overview#

The Media Extension plugin has currently 2 main features:

  1. A Media Converter, which allows to convert between different fileformats, resolutions, colorspaces and add burn-ins. The conversion settings can be saved as presets and can be applied automatically to generated playblasts or renders.

  2. Initial support for specifying an OCIO config for color management. See OCIO Workflow for more details.

Installation#

As any other plugin the Media Extension plugin can be installed with the Prism installer or using the Prism Hub. To verify the plugin is installed and loaded you can check the “Plugins” tab in the Prism User Settings and search for the “Media Extension” plugin in that list.

Media Converter#

../../_images/Media_Converter.jpg

Overview#

The media files, which are going to be converted are shown at the top of the Media Converter. On the bottom left there are the output settings like the output fileformat, colorspaces and more. On the bottom right there is a preview, which shows how the converted media will look like with the current settings. This preview gets updated every time an output setting gets changed.

Opening the Media Converter#

There are multiple ways how to open the Media Converter:

  1. From the “Options” menu in the Prism Project Browser choose “Open Media Converter…”

  2. In the “Media” tab in the Project Browser you can rightclick any media and in the “Convert” menu you can choose “Custom…”.

  3. Using the Prism Launcher plugin. In the settings menu of the Launcher choose “Detect apps on computer…”. This allows you to add the Media Converter to the Launcher.

  4. Using Python. If you want to open the Media Converter from a custom tool or plugin you can do that using the following Python code:

core.getPlugin("MediaExtension").openConverter()

Modes#

The Media Converter has 3 modes, which can be toggled from the main menu bar.

  1. Simple: This is the default mode. It provides a clean and simple interface with the most important settings. It allows to have one media input and one modifier of each type.

  2. Advanced: In this mode it is possible to add multiple media inputs, each with it’s own output settings. It’s also possible to add multiple modifiers of the same type. This can be especially useful with the burn-in modifier.

  3. Edit Presets: This mode allows to edit settings and load/save presets without the need to have an input widget.

Adding input media#

Media inputs can be set by drag&drop media into the input area of the Media Converter or by using the browse button to select files in a file explorer. Images, sequences and videos are supported. File sequences will be detected automatically. In the advanced mode multiple media inputs can be defined. Each has it’s own settings and each input will be converted in a queue.

Output settings#

In the output settings an output path can be set. Relative paths can be used, which will save the output files relative to the input files. The fileformat extension will be appended automatically. Currently these output formats are supported: .jpg, .png, .exr, .mov, .mp4, .bmp, .dpx, .gif, .hdr, .tga, .tif, .tx Some fileformats have unique settings like quality, compression or framerate. These settings will become visible when the format is changed in the dropdown menu.

Modifiers#

Modifiers are a collection of settings, which will modify the media input in a specific way, before it gets written to the output file. Each modifier can be enabled or disabled and the change of it’s settings will be applied to the preview on the right side. Currently these modifiers are available:

  • Crop

This modifier can crop a specific amount of pixels from each side. Negative values are possible and will extend the output image.

  • Scale

The scale modifier allows to scale the input image up or down. There are presets for 50% and 25% and it’s also possible to scale it to a custom resolution. If the aspect ratio of the custom resolution is not locked it can result in a stretched output image.

  • Color Conversion

The Color Conversion modifier converts the input from an input color space to an output color space. The available color spaces are defined by the current OCIO environment variable.

  • Burn-In

The Burn-In modifier will add text or a rectangle shape on top of the image. This modifier provides settings for position, size and color. This can be used to add information about the media directly into the pixels. In order to use multiple Burn-In modifiers the advanced mode of the Media Converter can be used. Variables can be used When using the text burn-in to generate the burn-ins dynamically. The variables need to be inserted between curly brackets. Available variables include: frame, start, end, rel_frame, num_frames, width, height. Additionally meta data from the media input version can be used as variables like asset, sequence, shot, comment and more.

In the simple mode one modifier of each type can be enabled. Applying multiple modifiers of the same type to the media input is possible in the advanced mode.

Managing presets#

Output settings can be saved as a preset so that they can be applied to different media inputs later on. The gear icon on the right side of the Media Converter provides options for saving and loading presets. These presets will be saved as a json file and can be edited manually if needed.

The Media Converter comes with a few default conversion presets. These presets will be shown by default, but they can be hidden by toggling the “Show default conversion presets” in the “Media” tab of the Prism Project Settings.

Presets can be loaded in the Media Converter and they are also available when rightclicking media in the Project Browser. That way the selected media will be converted using the preset settings without opening the Media Converter UI.

Presets can be saved in the user preferences, in the project folder and in the Media Extension plugin folder. The PRISM_CONVERSION_PRESET_PATHS and PRISM_CONVERSION_PRESET_SEARCHPATHS environment variables can be used to make presets available from custom locations, like a shared studio library.

Automatically convert playblasts and renders#

If the Media Extension plugin is loaded, the playblast and render states in the State Manager have a “Media Conversion” setting. If enabled a preset name can be selected from the dropdown. After the playblast/render is completed the media conversion will run automatically as a postprocess. At this point this feature doesn’t work with playblasts/renders, which are submitted to a renderfarm.

OCIO Workflow#

Overview#

OpenColorIO (OCIO) is the standard color management tool in CG productions and is integrated into most DCCs. It provides a way to work with consistent color values across different DCCs and across different departments. For detailed information see the official website. Colorspaces are usually defined in an OCIO config. In order to have a consistent color workflow the same OCIO config should be used for a project in all DCCs. DCCs which have support for OCIO are looking for the OCIO environment variable, which defines the path to the OCIO config file.

Setting the OCIO environment variable#

The Media Extension plugin can set the OCIO environment variable. In the Prism Project Settings in the “Media” tab you can view and set the value of the current OCIO environment variable. The “Prism Default” config is a slightly modified version of the CG Config. The config file can be found in the “Configs” folder of the Media Extension plugin. The CG config and the Studio config are built into OCIO. The original configs can be found here.

Limitations#

Prism sets the OCIO only for the current process and not globally on the system. Letting Prism set the OCIO variable works well for using an OCIO config within Prism and DCCs, which can detect modified OCIO environment variable. However many DCCs like Maya and Nuke require the OCIO variable to be set before the DCCs gets launched. By the time Prism gets loaded during the startup of a DCC it is already to late to define the OCIO environment variable. Therefore the recommended solution is to set the OCIO as a global system environment variable. At this point Prism is not handling that and you would need to add that environment variable to your system manually. Another solution is to use the Prism Launcher. In the Launcher you can specify environment variables like OCIO, which will be set before the DCC gets launched. This works well as long as you launch all your DCCs from the Prism Launcher.