Remote VideoToolbox for FFmpeg

Use a Mac or Apple Silicon system on your LAN as a hardware H.264/HEVC encode, decode, and transcoding server.
Drop-in FFmpeg codecs for Linux, Windows, and macOS clients.

The Problem

Apple’s VideoToolbox is a fast hardware encoder for H.264 and HEVC on Apple Silicon, but it only runs on macOS. If your FFmpeg workflow lives on a Linux server, Windows workstation, NAS, or homelab box, you are usually choosing between slow software encoding, a separate GPU path, or moving the whole pipeline to a Mac.

VideoToolbox Remote exposes a Mac on your LAN as a remote VideoToolbox endpoint for FFmpeg. Keep inputs, filters, audio, subtitles, and muxing local. Offload only the H.264/HEVC work that benefits from the Mac’s media hardware.

How It Works

A lightweight server (vtremoted) runs on macOS and wraps the VideoToolbox API. On the client side, custom FFmpeg codecs connect over TCP and appear as normal -c:v choices:

ffmpeg -i input.mkv \
  -c:v h264_videotoolbox_remote \
  -vt_remote_host 192.168.1.50:5555 \
  -b:v 6000k \
  output.mkv

The rest of FFmpeg stays familiar. Filters, multi-stream muxing, audio codecs, subtitles, and local I/O continue to run on the client.

Three Modes, One Protocol

Remote Encode

Send raw NV12/P010 frames to the server, receive compressed H.264/HEVC packets. Ideal when you have raw video and need hardware compression.

Remote Decode

Send compressed packets, receive raw frames. Offload decode-heavy workloads to Apple Silicon's dedicated media engine.

Remote Transcode

Send packets in, get packets out. The server handles the video decode-to-encode path; FFmpeg I/O, filters outside vtremote transcode options, audio, subtitles, and muxing stay on the client.

Built for LAN Performance

See benchmarks for hardware, network, and reproduction details.

Documentation