Expand description
Proxy and offline editing workflow system for OxiMedia.
This crate provides comprehensive proxy workflow management for professional video editing, enabling efficient offline-to-online workflows with full conforming support.
§Features
§Proxy Generation
- Multiple Resolutions - Quarter, half, and full resolution proxies
- Codec Selection - H.264, VP9, and other efficient codecs
- Quality Presets - Predefined quality levels for different workflows
- Batch Processing - Generate proxies for multiple files simultaneously
- Automatic Creation - Auto-generate proxies on media ingest
§Proxy Linking
- Original Association - Link proxies to high-resolution originals
- Database Management - Persistent link database with SQLite
- Link Verification - Validate proxy-original relationships
- Metadata Tracking - Store timecode, duration, and other metadata
§Conforming
- EDL Support - Conform from CMX 3600 and other EDL formats
- XML Support - Final Cut Pro XML and Premiere Pro XML
- Automatic Relink - Relink edited proxies to original media
- Frame-Accurate - Preserve exact frame accuracy during conform
§Workflows
- Offline Editing - Edit with low-res proxies for performance
- Online Finishing - Conform to high-res for final output
- Round-trip - Complete offline-to-online-to-delivery pipeline
- Multi-resolution - Switch between resolutions seamlessly
§Additional Features
- Timecode Preservation - Maintain accurate timecode across workflow
- Metadata Sync - Synchronize metadata between proxy and original
- Smart Caching - Intelligent proxy cache management
- Validation - Comprehensive validation and reporting
§Quick Start
§Generate Proxies
use oximedia_proxy::{ProxyGenerator, ProxyPreset};
// Generate a quarter-resolution H.264 proxy
let generator = ProxyGenerator::new();
let proxy_path = generator
.generate("original.mov", "proxy.mp4", ProxyPreset::QuarterResH264)
.await?;§Link Proxy to Original
use oximedia_proxy::ProxyLinkManager;
let mut manager = ProxyLinkManager::new("links.db").await?;
manager.link_proxy("proxy.mp4", "original.mov").await?;§Conform from EDL
use oximedia_proxy::ConformEngine;
let engine = ConformEngine::new("links.db").await?;
let conformed = engine.conform_from_edl("edit.edl", "output.mov").await?;§Complete Workflow
use oximedia_proxy::{OfflineWorkflow, ProxyPreset};
let mut workflow = OfflineWorkflow::new("project.db").await?;
// Ingest and create proxies
workflow.ingest("camera/clip001.mov", "proxy.mp4", ProxyPreset::QuarterResH264).await?;
// After editing, conform to original
workflow.conform("edit.edl", "final.mov").await?;Re-exports§
pub use cache::CacheCleanup;pub use cache::CacheManager;pub use cache::CacheStrategy;pub use cache::CleanupPolicy;pub use conform::ConformEngine;pub use conform::ConformResult;pub use conform::EdlConformer;pub use conform::XmlConformer;pub use generate::BatchProxyGenerator;pub use generate::BatchResult;pub use generate::PresetInfo;pub use generate::ProxyEncodeResult;pub use generate::ProxyEncoder;pub use generate::ProxyGenerationSettings;pub use generate::ProxyGenerator;pub use generate::ProxyOptimizer;pub use generate::ProxyPreset;pub use generate::ProxyPresets;pub use link::LinkDatabase;pub use link::LinkStatistics;pub use link::ProxyLink;pub use link::ProxyLinkManager;pub use link::ProxyVerifier;pub use metadata::MetadataSync;pub use metadata::MetadataTransfer;pub use registry::ProxyEntry;pub use registry::ProxyRegistry;pub use registry::RegistryRecord;pub use render::RenderConform;pub use render::RenderReplace;pub use resolution::ProxyResolution;pub use resolution::ProxyVariant;pub use resolution::ResolutionManager;pub use resolution::ResolutionSwitcher;pub use sidecar::Checksum;pub use sidecar::ChecksumAlgorithm;pub use sidecar::ProcessingRecord;pub use sidecar::SideCar;pub use sidecar::SidecarData;pub use sidecar::SidecarTimecode;pub use spec::ProxyCodec;pub use spec::ProxyResolutionMode;pub use spec::ProxySpec;pub use timecode::TimecodePreserver;pub use timecode::TimecodeVerifier;pub use validation::DirectoryValidation;pub use validation::EdlValidationResult;pub use validation::PathValidator;pub use validation::ValidationChecker;pub use validation::ValidationReport;pub use validation::WorkflowValidator;pub use workflow::MediaInfo;pub use workflow::OfflineWorkflow;pub use workflow::OfflineWorkflowPlan;pub use workflow::OnlineWorkflow;pub use workflow::RoundtripWorkflow;pub use workflow::StorageEstimate;pub use workflow::WorkflowPhase;pub use workflow::WorkflowPlan;pub use workflow::WorkflowPlanner;
Modules§
- cache
- Cache management module.
- conform
- Conforming module for proxy-to-original workflows.
- examples
- Examples and usage demonstrations for OxiMedia Proxy.
- format_
compat - Format compatibility matching between proxy and original media formats.
- generate
- Proxy generation module.
- generation
- Proxy generation: profiles, task management, and queue.
- link
- Proxy link management module.
- linking
- Proxy-to-original file linking and reconnection.
- media_
link - Media linking between original high-resolution files and their proxies.
- metadata
- Metadata management module.
- offline_
edit - Offline editing proxy management.
- offline_
proxy - Offline proxy workflows for OxiMedia proxy system.
- proxy_
aging - Age-based proxy lifecycle management and expiration.
- proxy_
bandwidth - Bandwidth estimation and throttling for proxy file transfers.
- proxy_
cache - Proxy cache management: LRU eviction, TTL-based staleness, and utilisation tracking.
- proxy_
compare - Proxy vs original quality comparison and validation metrics.
- proxy_
fingerprint - Proxy fingerprinting for integrity verification.
- proxy_
format - Format-oriented proxy configuration presets.
- proxy_
index - In-memory index mapping original media paths to proxy entries.
- proxy_
manifest - Proxy manifest — a serialisable record of all proxy variants for a project.
- proxy_
pipeline - Proxy production pipeline with ordered steps and phase tracking.
- proxy_
quality - Proxy quality tier definitions and bandwidth-adaptive selection.
- proxy_
registry_ ext - Extended proxy registry with best-match selection.
- proxy_
scheduler - Proxy task scheduler for managing concurrent proxy generation jobs.
- proxy_
status - Proxy generation status tracking and lifecycle management.
- proxy_
sync - Proxy synchronization for OxiMedia proxy system.
- registry
- Proxy registry: maps original source files to their proxy counterparts.
- relink_
proxy - Proxy relinking engine for reconnecting proxies to moved or renamed source media.
- render
- Render management module.
- resolution
- Resolution management module.
- sidecar
- Side-car metadata file management.
- smart_
proxy - Intelligent proxy selection and recommendation.
- spec
- Proxy specification: defines the desired proxy format, resolution, codec, and bitrate.
- timecode
- Timecode management module.
- transcode_
proxy - Proxy transcoding settings for OxiMedia proxy system.
- transcode_
queue - Proxy transcode queue management.
- utils
- Utility functions for proxy workflows.
- validation
- Validation module.
- workflow
- Workflow management module.
Enums§
- Proxy
Error - Errors that can occur during proxy operations.
- Quality
- Proxy quality preset for quick setup.
Type Aliases§
- Result
- Result type for proxy operations.