Skip to main content

Crate oximedia_proxy

Crate oximedia_proxy 

Source
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?;
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::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§

ProxyError
Errors that can occur during proxy operations.
Quality
Proxy quality preset for quick setup.

Type Aliases§

Result
Result type for proxy operations.