Open RV Documentation

repository·main·Indexed 18 days ago

https://github.com/academysoftwarefoundation/openrv

A high-performance, hardware-accelerated image and sequence viewer for VFX and animation pipelines. Documentation covers build instructions via Conan 2.x or traditional methods for macOS, Windows, and Rocky Linux, as well as using the generate_theme.py script to create custom UI themes via QSS templates.

Tokens
157.8K
Snippets
352
Records
697
Agent score
73%

What's inside Open RV

  1. Overview of Open RV, RVIO, and RVLS

    main

    Open RV, along with its companion tools RVIO and RVLS, provides high-performance tools for digital artists, directors, and production crews to review image sequences, movie files, and audio.

    Key capabilities include:

    • Loading, playing, inspecting, navigating, and editing image sequences and audio.
    • Extensive customization for proprietary pipelines via a rich command-line interface (CLI), hotkeys, and key-chords.
    • Advanced features accessible through smart drag-and-drop targets.
  2. Overview of RVIO command line tool

    main

    RVIO is a command line (re)mastering tool used to convert image sequences, audio files, and movie files between different formats. It supports bit depth changes, image color and resolution adjustments, and color space conversions (to a limited extent).

    Key capabilities include:

    • Converting formats for image sequences, audio, and movies.
    • Generating custom slate frames.
    • Adding per-frame information and matting directly onto output images.
    • Using .rv session files to specify complex compositing operations like split screens, tiling, color corrections, and pixel aspect ratio changes.
  3. Overview of the OTIO Reader Package

    main

    The OTIO Reader is an RV package based on the OpenTimelineIO (OTIO) project. It enables RV to import and export OTIO files, supporting all OTIO schemas from version 0.15.

    Import Behavior: The resulting RV node graph is added to the current view node.

    Export Behavior: The current view node serves as the root of the exported OTIO. Export is only available when the view node is one of the following:

    • RVSequenceGroup
    • RVStackGroup
    • RVSourceGroup
  4. Stereo Setup on macOS and Windows

    main

    There are no specific configuration requirements for macOS or Windows beyond having a GPU capable of producing stereo output.

    If the operating system's graphical environment can provide RV with a stereo GL context, the playback will function in stereo. If the environment cannot provide a stereo context, the console widget will appear and GL errors will be displayed.

  5. Mu Programming Language Overview

    main

    Mu is a high-level language designed for computer graphics (CG) tasks, including rendering, compositing, animation, modeling, and simulation.

    Key characteristics include:

    • CG Optimized: Designed for tasks like shading, scene generation, and per-pixel compositing scripting.
    • Performance: Built for performance to avoid becoming a bottleneck during scene evaluation. It can be used as an interpreted language or compiled.
    • Extensibility: Applications can add opaque types and APIs to Mu, which bind easily to internal functions.
    • Static Typing: Uses a static type system to improve code quality and maintainability.
  6. Use the Stereo Disassembly Package to process squeezed stereo media

    main

    The Stereo Disassembly Package (v1.1) is an experimental tool for loading 'squeezed' stereo media (where both eyes are contained in a single image, such as half-height top-and-bottom or half-width side-by-side) and splitting them into separate eyes. This allows the media to be processed and displayed by RV using standard stereo output formats.

    Requirements:

    • The media must be 'squeezed' (e.g., half-height for top-and-bottom, or half-width for side-by-side).
  7. Automate color and viewing management with the source-group-complete event

    main
    The source-group-complete event is triggered whenever media is added to a session (e.g., when a Source is created or its media set is modified). By binding a function to this event, you can automatically configure color spaces, pixel aspect ratios, or other image-dependent settings as soon as a file is loaded. This is the primary mechanism for implementing custom, facility-wide color management workflows in RV.
  8. Choosing between Python and Mu for RV customization

    main

    When customizing RV, you have two primary options: Python and Mu.

    • Python: The recommended language for most customization tasks. You can use Python 3 in RV either in conjunction with Mu or in place of it.
    • Mu: A language specifically targeted towards computer graphics applications. It features a static type system and is designed to be easily embedded in C++ applications.

    Interoperability: Python and Mu are peers within RV. It is possible to call Python commands from Mu and vice versa, allowing you to mix both languages in a single workflow.

  9. Understand the GTO file format structure

    main

    GTO (Geometry Toolkit Object) is a file format used for storing static geometric data such as polygonal meshes, NURBS surfaces, hierarchies, and material bindings. It supports both binary and text formats.

    Key Characteristics

    • Binary Format: Preferred for large datasets. It can be big or little endian and supports compression via libz (compressed files are typically ~60% smaller).
    • Text Format: Human-readable and editable, useful for "bag of parameters" files.
    • Data Model: GTO files are organized into a hierarchy: Object $\rightarrow$ Component (optional/nested) $\rightarrow$ Property.
    • Properties: Each property contains an array of a predefined data type with up to a four-dimensional shape (e.g., float[4,10,20,30]).
    • Protocols: The meaning of the data is defined by a "protocol." The GTO format provides the container, but the application must know the protocol to interpret specific property names and layouts (e.g., how to interpret a position property).
    Object “cube"
        Component “points”
          Property float [3][8] “position” 
          Property float[1][8] “mass”
        Component “indices”
          Property int[1][32] “vertex”
  10. Force preference values using RV_PREFS_CLOBBER_PATH

    main

    If you need to ensure certain preferences are always set to specific values (e.g., for a specific show or site), use the RV_PREFS_CLOBBER_PATH environment variable.

    Behavior:

    • Values in files found via RV_PREFS_CLOBBER_PATH will always take precedence over the user's personal preferences and any values found in RV_PREFS_OVERRIDE_PATH.
    • While a user can change these values during an active session via the Preferences dialog, the clobbering values will re-apply the next time RV is launched.
    • If multiple directories are provided in the path, files in directories earlier in the path override those in later directories.
  11. Choose between Realtime and Play All Frames playback modes

    main

    RV offers two distinct playback behaviors via Control → Play All Frames:

    1. Realtime Mode (Default): RV uses a realtime clock to determine which frame to play. If the system cannot render fast enough, video frames are skipped to maintain sync, but audio never skips.
    2. Play All Frames Mode: RV will never skip frames. If the target FPS cannot be reached, RV will adjust the audio (stretching or compressing it) to match the video playback.

    Visual Feedback: If frames are skipped during playback, a small red circle with a number appears on the right side of the timeline indicating the count of lost frames.