Open EXR
License: PRO+ (Professional Edition or higher)
Plugin Type: Index Plugin
Author: Diskover Data, Inc.
Overview
The OpenEXR Info plugin extracts metadata from OpenEXR (.exr) image files during Diskover indexing. This enables searching, filtering, and analyzing EXR assets by compression type, resolution, render software, production metadata, and dozens of other attributes directly within Diskover.
OpenEXR files are the backbone of visual effects and animation pipelines, often containing rich embedded metadata about how, when, and where they were created. This plugin makes that metadata searchable, turning your EXR library into a queryable asset database.
Key Capabilities
7 configurable field categories: Technical, Dimensions, Camera, Render, Production, Color, and Workflow
70+ extractable metadata fields covering all aspects of EXR files
Custom field support with wildcard pattern matching for studio-specific metadata
SQLite caching with modification time validation for high-performance re-indexing
Selective field extraction to index only the metadata you need
Use Cases
For VFX and Post-Production Teams:
Shot Tracking — Find all EXR files for a specific production, sequence, or shot using embedded metadata
Render Auditing — Locate renders by software version, render engine, or render time
Version Management — Search for specific versions of assets across render farms
For Storage and IT Administrators:
Compression Analysis — Audit compression types across EXR libraries (PIZ, ZIP, DWAA, etc.)
Storage Optimization — Identify uncompressed or inefficiently compressed files consuming excess storage
Format Inventory — Catalog EXR assets by technical specifications before migration or archive
Understanding OpenEXR
OpenEXR is a high-dynamic-range (HDR) image file format developed by Industrial Light & Magic. It has become the industry standard for visual effects, animation, and film production pipelines due to its ability to store high-precision color data, multiple image layers, and extensive metadata.
Why OpenEXR Metadata Matters
EXR files commonly contain production information embedded in their headers, including:
Metadata Type | Examples | Why It's Useful |
|---|---|---|
Technical | Compression method, pixel aspect ratio, channel configuration | Storage optimization, format standardization |
Production | Show name, sequence, shot, version, artist | Asset tracking, shot management |
Render | Software, render engine, render time, samples | Pipeline auditing, troubleshooting |
Camera | Camera model, lens, focal length, ISO | Plate identification, VFX matching |
Color | Color space, gamma, chromaticities | Color pipeline QC, deliverable verification |
Common Compression Types
Understanding EXR compression helps you make informed decisions about storage optimization:
Compression | Best For | Trade-offs |
|---|---|---|
NONE | Maximum quality, fastest read | Largest file size |
PIZ | General purpose, natural images | Good balance of size and speed |
ZIP/ZIPS | General purpose | Single scanline (ZIPS) or block (ZIP) |
DWAA/DWAB | Lossy compression, streaming | Smallest size, some quality loss |
PXR24 | Lossy, 24-bit precision | Reduced precision, smaller files |
B44/B44A | Real-time playback | Fixed compression ratio |
Requirements
Python Dependencies
Package | Version | Purpose |
|---|---|---|
OpenEXR | 3.3.2 | Python bindings for reading OpenEXR files |
numpy | 1.26.4 | Required by OpenEXR module (specific version required) |
Important: The numpy version must be exactly 1.26.4 for compatibility with the OpenEXR module.
System Requirements
Python 3.9 or higher
Diskover indexer with plugin support enabled
Read access to EXR files during indexing
Write access to cache directory
Installation
Step 1: Install Python Dependencies
Linux:
python3 -m pip install numpy==1.26.4 OpenEXR==3.3.2
Windows:
python -m pip install numpy==1.26.4 OpenEXR==3.3.2
Step 2: Verify Installation
Linux:
# Verify OpenEXR is installed
python3 -c "import OpenEXR; print('OpenEXR installed successfully')"
# Check numpy version
python3 -c "import numpy; print(f'numpy version: {numpy.__version__}')"
Windows:
# Verify OpenEXR is installed
python -c "import OpenEXR; print('OpenEXR installed successfully')"
# Check numpy version
python -c "import numpy; print(f'numpy version: {numpy.__version__}')"
Step 3: Configure the Plugin
Navigate to Diskover Admin > Plugins > Index Plugins > OpenEXR Info
Enable the plugin and configure parameters as needed (see Configuration section below)
Save the configuration
Step 4: Enable in Index Task Configuration
Navigate to Diskover > Configurations > [Configuration Name]
Scroll to the bottom and locate Index Plugins Enablement
Enable the OpenEXR Info plugin
Save the configuration
The plugin will now run automatically during scans using this configuration.
Configuration
The OpenEXR Info plugin uses a Pydantic configuration model with parameters for caching and field selection.
Configuration Parameters
Parameter | Type | Default | Description |
|---|---|---|---|
| bool |
| Enable SQLite caching of extracted metadata. Improves re-indexing performance. |
| string | See below | Directory for SQLite cache database. Can be absolute or relative path. |
| int |
| Cache entry TTL in seconds. Set to |
| string |
| Elasticsearch field name for the metadata object. This value is fixed. |
| object | See below | Selection of which field categories to include in the index. |
Default cache directory paths:
Linux:
/opt/diskover/__openexrinfo_plugin_cache__/Windows:
C:\Program Files\Diskover\__openexrinfo_plugin_cache__\
Field Category Selection
The plugin organizes OpenEXR metadata into 7 categories. Each can be independently enabled or disabled to index only the metadata you need:
Parameter | Default | Description |
|---|---|---|
|
| Core EXR format information (compression, channels, pixel aspect ratio) |
|
| Image size and window information |
|
| Camera and lens information |
|
| Rendering software and settings |
|
| Project, shot, and sequence metadata |
|
| Color space and grading information |
|
| Creation and processing information |
|
| Custom/studio-specific fields with wildcard pattern matching |
Configuration Examples
Default Configuration (Storage Analysis)
Standard settings with only Technical and Dimension fields—suitable for basic storage analysis and compression auditing:
{
"enable_cache": true,
"cache_dir": "/opt/diskover/__openexrinfo_plugin_cache__/",
"cache_expire_time": 0,
"include_attributes": {
"enable_technical_fields": true,
"enable_dimension_fields": true,
"enable_camera_fields": false,
"enable_render_fields": false,
"enable_production_fields": false,
"enable_color_fields": false,
"enable_workflow_fields": false,
"enable_custom_fields": false
}
}
VFX Production Configuration
Comprehensive configuration for VFX studios needing production and render tracking:
{
"enable_cache": true,
"cache_dir": "/opt/diskover/__openexrinfo_plugin_cache__/",
"cache_expire_time": 0,
"include_attributes": {
"enable_technical_fields": true,
"enable_dimension_fields": true,
"enable_camera_fields": true,
"enable_render_fields": true,
"enable_production_fields": true,
"enable_color_fields": false,
"enable_workflow_fields": false,
"enable_custom_fields": false
}
}
Indexed Fields
The OpenEXR Info plugin adds an openexr_info object to indexed documents containing the extracted metadata.
Elasticsearch Field Mappings
Field Path | ES Type | Description |
|---|---|---|
| object | Container for all OpenEXR metadata |
| keyword | Compression method (PIZ, ZIP, DWAA, NONE, etc.) |
| keyword | Channel configuration (R, G, B, A, Z, etc.) |
| float | Pixel aspect ratio |
| keyword | Data window bounds |
| keyword | Display window bounds |
| keyword | Production/show name |
| keyword | Sequence identifier |
| keyword | Shot identifier |
| keyword | Software used to create the image |
| keyword | Error message if extraction failed |
Fields are stored dynamically based on what metadata is present in each EXR file and which categories are enabled in the configuration.
Example Document
An EXR file indexed with Technical, Dimensions, and Production fields enabled:
{
"name": "shot_010_comp_v003.exr",
"extension": "exr",
"size": 52428800,
"openexr_info": {
"compression": "PIZ",
"channels": "{'R': 'HALF', 'G': 'HALF', 'B': 'HALF', 'A': 'HALF'}",
"pixelAspectRatio": 1.0,
"dataWindow": "Box2i(V2i(0, 0), V2i(1919, 1079))",
"displayWindow": "Box2i(V2i(0, 0), V2i(1919, 1079))",
"production": "MyShow",
"sequence": "SEQ010",
"shot": "010",
"version": "v003",
"artist": "jsmith",
"software": "Nuke 14.0v5"
}
}
Note: EXR files only contain metadata that was written by the creating application. If a field is not present in the indexed document, the original file did not contain that metadata.
Searching in Diskover
Use these search queries in the Diskover web interface to find EXR files based on their metadata.
Basic Field Searches
Query | Description |
|---|---|
| Find all files with OpenEXR metadata |
| Find files using PIZ compression |
| Find uncompressed EXR files |
| Find files using lossy DWAA compression |
Production Searches
Query | Description |
|---|---|
| Find all EXRs for a specific production |
| Find files for a specific sequence |
| Find files for a specific shot |
| Find files by artist name |
| Find a specific version |
Software and Render Searches
Query | Description |
|---|---|
| Find files created with Nuke |
| Find files created with Maya |
| Find Arnold renders |
| Find V-Ray renders |
Color Pipeline Searches
Query | Description |
|---|---|
| Find files in ACEScg color space |
| Find files in sRGB color space |
Combined Searches
Query | Description |
|---|---|
| PIZ-compressed files larger than 50MB |
| Specific show and sequence |
| Find files that had extraction errors |
Troubleshooting
Common Issues
Issue | Cause | Solution |
|---|---|---|
OpenEXR module not installed | Missing Python dependency | Run |
numpy version mismatch | Incompatible numpy version | Run |
No metadata for valid EXR files | File permissions or corrupt file | Verify read access and file integrity |
Cache permission errors | Insufficient write permissions | Check ownership of cache directory |
Empty metadata results | EXR lacks embedded metadata | Expected behavior—EXRs only contain what the creating application wrote |
Verifying Python Dependencies
Linux:
python3 -c "import OpenEXR; print('OpenEXR OK')"
python3 -c "import numpy; print(f'numpy version: {numpy.__version__}')"
Windows:
python -c "import OpenEXR; print('OpenEXR OK')"
python -c "import numpy; print(f'numpy version: {numpy.__version__}')"
Testing EXR File Reading
To verify an EXR file can be read:
Linux:
python3 -c "import OpenEXR; f = OpenEXR.File('/path/to/image.exr'); print(f.header())"
Windows:
python -c "import OpenEXR; f = OpenEXR.File('C:\path\to\image.exr'); print(f.header())"
Cache Management
If you encounter cache-related issues, you can clear the cache directory:
Linux:
rm -rf /opt/diskover/__openexrinfo_plugin_cache__/
Windows:
rmdir /s /q "C:\Program Files\Diskover\__openexrinfo_plugin_cache__\"
Debug Logging
Enable verbose logging in Diskover Admin to troubleshoot plugin activity:
Linux:
tail -f /var/log/diskover/diskover.log | grep -i openexr
Support
Last Updated: January 2026
Diskover Data, Inc.
Comments
0 comments
Please sign in to leave a comment.