{"id":19321272,"url":"https://github.com/academysoftwarefoundation/openrv","last_synced_at":"2025-05-15T04:06:38.939Z","repository":{"id":65360446,"uuid":"559748217","full_name":"AcademySoftwareFoundation/OpenRV","owner":"AcademySoftwareFoundation","description":"Open source version of RV, the Sci-Tech award-winning media review and playback software.","archived":false,"fork":false,"pushed_at":"2025-05-14T01:49:02.000Z","size":23064,"stargazers_count":629,"open_issues_count":49,"forks_count":165,"subscribers_count":47,"default_branch":"main","last_synced_at":"2025-05-14T03:28:49.786Z","etag":null,"topics":["media","playback","review-tools"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AcademySoftwareFoundation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":"GOVERNANCE.md","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-10-31T02:19:25.000Z","updated_at":"2025-05-14T01:49:07.000Z","dependencies_parsed_at":"2023-12-20T11:06:18.092Z","dependency_job_id":"0e1246b6-1b15-4389-9788-824744803380","html_url":"https://github.com/AcademySoftwareFoundation/OpenRV","commit_stats":{"total_commits":297,"total_committers":32,"mean_commits":9.28125,"dds":0.7239057239057238,"last_synced_commit":"ee1ecd528431d4a2f446406fc11c890ac57fbce3"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AcademySoftwareFoundation%2FOpenRV","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AcademySoftwareFoundation%2FOpenRV/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AcademySoftwareFoundation%2FOpenRV/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AcademySoftwareFoundation%2FOpenRV/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AcademySoftwareFoundation","download_url":"https://codeload.github.com/AcademySoftwareFoundation/OpenRV/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254270646,"owners_count":22042859,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["media","playback","review-tools"],"created_at":"2024-11-10T01:36:24.973Z","updated_at":"2025-05-15T04:06:33.892Z","avatar_url":"https://github.com/AcademySoftwareFoundation.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Open RV\n---\n[![Open RV](docs/images/OpenRV_icon.png)](https://github.com/AcademySoftwareFoundation/OpenRV.git)\n---\n\n![Supported Versions](https://img.shields.io/badge/python-3.10-blue)\n[![Supported VFX Platform Versions](https://img.shields.io/badge/vfx%20platform-2023-lightgrey.svg)](http://www.vfxplatform.com/)\n[![docs](https://readthedocs.org/projects/aswf-openrv/badge/?version=latest)](https://aswf-openrv.readthedocs.io/en/latest)\n\n## Overview\n\nOpen RV is an image and sequence viewer for VFX and animation artists.\nOpen RV is high-performant, hardware accelerated, and pipeline-friendly.\n\n[Open RV Documentation on Read the Docs](https://aswf-openrv.readthedocs.io/en/latest/)\n\n## Cloning the repository\n\nOpenRV uses submodules to pull some dependencies. When cloning the repository, make sure to do it recursively by using\nthe following command:\n\n```bash\ngit clone --recursive https://github.com/AcademySoftwareFoundation/OpenRV.git\n```\n\nIf you cloned the repo without setting the `--recursive` flag, you can initialize the submodule in another step with the\nfollowing command:\n\n```bash\ngit submodule update --init --recursive\n```\n\n## Configuring Git to use the ignore file with `git blame`\n\nA `.git-blame-ignore-revs` file lists commits to ignore when running `git blame`, such as formatting commits. This allows you to use `git blame` without these commits cluttering the Git history. To configure Git to use this file when running `git blame`, use the following command:\n\n```bash\ngit config blame.ignoreRevsFile .git-blame-ignore-revs\n```\n\n## Building the workstation\n\nOpen RV is currently supported on the following operating systems:\n\n* [Windows 10 and 11](docs/build_system/config_windows.md)\n* [macOS](docs/build_system/config_macos.md)\n* [Linux Centos 7](docs/build_system/config_linux_centos7.md)\n* [Linux Rocky 8](docs/build_system/config_linux_rocky8.md)\n* [Linux Rocky 9](docs/build_system/config_linux_rocky9.md)\n\nSupport for other operating systems is on a best effort basis.\n\n## Building RV\n\nYou can use `source rvcmds.sh` to add common build aliases into your shell. After the first download following the\ninstallation of the required dependencies, use `rvbootstrap` to set up, configure, and build Open RV with the default\noptions.\n\nAfter the setup, you can use `rvmk` (the common build alias) to configure and build Open RV. You can also use `rvmkd` to\nconfigure and build in Debug.\n\nOn macOS, if you want to build for a different deployment target than your current operating system, make sure to define\nthe MACOSX_DEPLOYMENT_TARGET environment variable.\n\n### Contributor setup\n\nThis repository uses a pre-commit to execute formatting before a commit. To install the pre-commit hooks:\n\n```shell\npre-commit install\n```\n\n### Cleanup\n\nTo clean your build directory and restart from a clean slate, use the `rvclean` common build alias, or delete\nthe `_build` folder.\n\n### Using a Python Virtual Environment\n\nOpen RV automatically sets up a Python virtual environment when the user bootstraps (`rvbootstrap`), builds (`rvbuild`) or configures (`rvcfg`) their project. After each of these commands, you should see that the executing instance of the terminal is using a virtual environment with the name `.venv`.\n\nIf this is not the case or if you would like to set up your virtual environment directly, you can run the command `rvenv`.\n\n### Bootstrap\n\nBefore first your first Open RV build, you must install some python dependencies.\n\n#### Common build alias\n\nUse the `rvsetup` common build alias to run the bootstrap step.\n\n#### Manually\n\nPlease ensure that a virtual environment is running before this command is executed.\n\n```bash\npython3 -m pip install -r requirements.txt\n```\n\nNote that on Windows, use the following command instead from an MSYS2-MinGW64 shell:\n```bash\nSETUPTOOLS_USE_DISTUTILS=stdlib python3 -m pip install --user --upgrade -r requirements.txt\n```\n\n### Blackmagicdesign\u0026reg; Video Output Support (Optional)\n\nDownload the Blackmagicdesign\u0026reg; SDK to add Blackmagicdesign\u0026reg; output capability to Open RV (optional): https://www.blackmagicdesign.com/desktopvideo_sdk\u003cbr\u003e\nThen set RV_DEPS_BMD_DECKLINK_SDK_ZIP_PATH to the path of the downloaded zip file on the rvcfg line.\u003cbr\u003e\nExample:\n```bash\nrvcfg -DRV_DEPS_BMD_DECKLINK_SDK_ZIP_PATH='\u003cdownloads_path\u003e/Blackmagic_DeckLink_SDK_14.1.zip'\n```\n\n### NDI\u0026reg; Video Output Support (Optional)\n\nDownload and install the NDI\u0026reg; SDK to add NDI\u0026reg; output capability to Open RV (optional): https://ndi.video/\u003cbr\u003e\nThis must be done before the `configure` step.\n\n### Configure\n\nThe project uses CMake and requires a `configure` step before building. It is during the configure step that you provide\nyour Qt package.\n\nFrom the root of the repository, execute `cmake` and specify the path to an arbitrary build folder and the path to your\nQT5 package.\n\n#### Common build alias\n\nUse the `rvcfg` (the common build alias) to run the configuration step. You can also use `rvcfgd` to configure in Debug.\n\n#### How to enable non free FFmpeg codecs\n\nLegal Notice: Non free FFmpeg codecs are disabled by default. Please check with your legal department whether you have the proper licenses and rights to use these codecs. \nASWF is not responsible for any unlicensed use of these codecs.\n\nThe RV_FFMPEG_NON_FREE_DECODERS_TO_ENABLE and RV_FFMPEG_NON_FREE_ENCODERS_TO_ENABLE can optionally be specified at configure time to enable non free FFmpeg decoders and encoders respectively.\n\nExample:\n```bash\nrvcfg -DRV_FFMPEG_NON_FREE_DECODERS_TO_ENABLE=\"aac;hevc\" -DRV_FFMPEG_NON_FREE_ENCODERS_TO_ENABLE=\"aac\"\n```\n\n##### Apple ProRes on Apple Silicon\n\nOn Apple Silicon machines, Open RV supports hardware decoding through Apple's VideoToolbox framework. This feature is enabled by default but can be controlled using the `-DRV_FFMPEG_USE_VIDEOTOOLBOX` option. Set this option to `ON` to enable or `OFF` to disable VideoToolbox hardware decoding.\n\nTo enable decoding of ProRes media files, you must also specify the following option during the configuration step:\n\n```bash\n-DRV_FFMPEG_NON_FREE_DECODERS_TO_ENABLE=\"prores\"\n```\n\nNote that you should always have `-DRV_FFMPEG_USE_VIDEOTOOLBOX` enabled when decoding Apple ProRes videos on Apple Silicon machines. Failure to do so will result in performance issues and is not compliant with Apple's licensing requirements.\n\n**Important:** Before enabling ProRes decoding, you are required to obtain a proper license agreement from Apple by contacting [ProRes@apple.com](mailto:ProRes@apple.com).\n\n#### Manually\n\n##### Windows\n\nOn Windows, you must specify the path to Strawberry perl for the OpenSSL build.\n\n```bash\ncmake -B _build -G \"Visual Studio 16 2019\" -A x64 -DCMAKE_BUILD_TYPE=Release -DRV_DEPS_WIN_PERL_ROOT=/c/Strawberry/perl/bin -DRV_DEPS_QT5_LOCATION=/c/path/to/your/Qt/Root\n```\n\n##### Linux and MacOS\n\n```bash\ncmake -B _build -DCMAKE_BUILD_TYPE=Release -DRV_DEPS_QT5_LOCATION=/Path/To/Your/Qt5/Root\n```\n\n#### Tips\n\n##### 3rd Parties Outside Of Repository\n\nTo keep your third-party builds between build cleanups, set `-DRV_DEPS_BASE_DIR=/path/to/third/party`.\n\n### Build\n\nInvoke the previously specified generator tool using cmake to run the `build` step (recommended).\n\n#### Common build alias\n\nUse the `rvbuild` (the common build alias) to run the build step. You can also use `rvbuildd` to build in Debug.\n\n#### Manually\n\n```bash\ncmake --build _build --config Release -v --parallel=8 --target main_executable\n```\n\n### Test\n\nInvoke the tests using ctest.\n\n#### Common build alias\n\nUse the `rvtest` common build alias to start the tests.\n\n#### Manually\n\n```shell\nctest --test-dir _build\n```\n\n#### Tips\n\n##### Run The Tests In Parallel\n\nYou can run the `test` in parallel by specifying `--parallel X`, where X is the number of tests to run in parallel.\n\n##### Run A Subset Of The Tests\n\nYou can apply a filter with the `-R` flag to specify a regex.\n\n##### Run The Tests Verbose\n\nYou can run the tests with extra verbosity with the flag `--extra-verbose`.\n\n\u003e **Important:** You cannot use `--extra-verbose` with `--parallel`. It's one or the other, not both.\n\n### Run\n\nOnce the build ends, you can execute (or debug!) Open RV from the _build directory.\n\nThe path to the build is `_build/stage/app`. It contains everything required to have the proper debug symbols.\n\n### Install\n\nInvoke the `install` step using cmake. The install step prepares Open RV for packaging by building a copy of Open RV in\nthe `_install` folder.\n\nThe build system allows you to prepackage Open RV using cmake's `install` command. It will strip debug symbols if\nrequired.\n\nThen, it's up to you to either sign or package the result, or to do both. It should contain the minimum required to have\na functional Open RV.\n\n#### Common build alias\n\nUse the `rvinst` common build alias to install OpenRV.\n\n#### Manually\n\n```shell\ncmake --install _build --prefix _install\n```\n\nSee [THIRD-PARTY.md](THIRD-PARTY.md) for license information\nabout portions of Open RV that have been imported from other projects.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facademysoftwarefoundation%2Fopenrv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Facademysoftwarefoundation%2Fopenrv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facademysoftwarefoundation%2Fopenrv/lists"}