A high-performance AV1, VP8 & VP9 Importer and Exporter plugin for Adobe Premiere Pro, built natively in Rust. It utilizes FFmpeg (statically linked via vcpkg) to support decoding and encoding, with robust support for hardware acceleration and rich exporter settings.
- Cross-Platform Support: Native support for both Windows (
.prm) and macOS (.bundlefor both Apple Silicon M1/M2/M3 and Intel). - High-Performance Importer (Decoder): Decode AV1, VP8 and VP9 streams natively within the Premiere Pro timeline.
- Advanced Exporter (Encoder): Encode sequences into AV1, VP8, and VP9 video streams.
- Dynamic Parameter UI Update:
- Real-time interface updates when selecting Rate Control modes (Constant Bitrate, Constant QP, Variable Bitrate, or Variable Bitrate with Target Quality).
- Dynamically updates labels (e.g. "Constant QP (CQ / CQP Value)" or "Target Quality (CQ Value)") and hides/shows parameters based on the chosen mode.
- Dynamic Adobe Preferences Synchronization:
- Automatic Audio Cache Bypass: Dynamically checks Premiere Pro's "Save media cache files next to originals" setting. If enabled, the plugin bypasses conforming
.cfa/.pekfiles to prevent folder clutter; if disabled, it allows conformed cache in a centralized folder for better performance. - Dynamic RAM Cache Allocation: Uses system FFI (Win32 API on Windows,
sysctlon macOS) to fetch total physical RAM and automatically scales the timeline scrubbing cache size (from 4 up to 32 frames) for smooth navigation. - Global GPU Acceleration Sync: Disables hardware-accelerated decoding fallbacks automatically if Premiere Pro's project renderer is set to Software Only.
- Sequence Auto-fill: Auto-populates default export parameters (width, height, FPS) matching your most recent sequence settings in Premiere Pro.
- Automatic Audio Cache Bypass: Dynamically checks Premiere Pro's "Save media cache files next to originals" setting. If enabled, the plugin bypasses conforming
- Multiplexer Control: Dynamic multiplexer options (
MP4,3GPP,None), with automated audio stream silencing whenNoneis selected.
The project is structured as follows:
src/lib.rs: Main entry points (xImportEntryandxSDKExport) registered for Premiere Pro SDK FFI.src/ffi/: Isolated direct FFI bindings.adobe.rs: Auto-generated bindings to Premiere Pro C++ SDK.ffmpeg.rs: FFI bindings to static FFmpeg libraries.
src/plugin/: Core video plugin logic.importer/: Handles importing, frame-by-frame decoding, and asynchronous parsing of AV1, VP8 and VP9 video.exporter/: Manages exporting configurations, multiplexer preferences, and interfacing with FFmpeg encoders.shared.rs: Common pixel format and color space conversion utilities shared between importer and exporter to minimize binary size.
src/utils/: Shared helper files (UIBuilder, cache preference check, string conversions).
- Windows 10/11
- Rust (Edition 2024) installed via Rustup.
- Visual Studio Build Tools (MSVC C++ compiler).
- Git and CMake (required for
vcpkgto build dependencies).
- macOS 11.0 or newer
- Rust (Edition 2024) installed via Rustup.
- Xcode Command Line Tools (Clang).
- Homebrew packages:
brew install cmake ninja nasm.
Since the Adobe SDK contains proprietary headers, it is not distributed directly in this repository:
- Download the Premiere Pro C++ SDK (Version 26.0 recommended) from the Adobe Developer Console.
- Put the zip file into the
sdk/directory:- For Windows: Rename to
Premiere Pro 26.0 C++ SDK Windows.zip - For macOS: Rename to
Premiere Pro 26.0 C++ SDK Mac.zip
- For Windows: Rename to
Build the release binary by running:
cargo build --releaseNote
First Compile Duration: The first run triggers vcpkg to download and statically build FFmpeg, aom, dav1d, and libvpx. This process is fully automated and uses optimized binary caching in CI. The first local compilation can take 15 to 40 minutes depending on your CPU, while subsequent runs take only a few seconds.
Copy the output binary file:
- Source path:
target/release/NukeAV.dll - Target path:
C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore\NukeAV.prm
Create the plugin bundle folder structure:
- Source path:
target/release/libNukeAV.dylib - Target bundle structure:
NukeAV.bundle/
Contents/
Info.plist
MacOS/
NukeAV (copied from libNukeAV.dylib)
Copy NukeAV.bundle to:
/Library/Application Support/Adobe/Common/Plug-ins/7.0/MediaCore/NukeAV.bundle
Restart Adobe Premiere Pro to load the new plugin.
This project is licensed under the GNU General Public License v3.0 with the Adobe SDK Linking Exception under the name AnarchByte. See the LICENSE file for details.
FFmpeg is licensed under the LGPL/GPL; compilation artifacts must respect individual third-party licenses when packaged.