Skip to content

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 25 Mar 05:30
· 360 commits to main since this release

Remote VideoToolbox for FFmpeg: use a Mac or Apple Silicon system over LAN as an IP-based H.264/HEVC encode/decode/transcoding accelerator.

1-minute quickstart

  1. On the Mac server, download vtremoted-macos-arm64.tar.gz (Apple Silicon) or vtremoted-macos-x86_64.tar.gz (Intel Mac).
  2. On the client, download the FFmpeg build for your platform: ffmpeg-linux-x86_64.tar.gz, ffmpeg-macos-arm64.tar.gz, ffmpeg-macos-x86_64.tar.gz, or ffmpeg-windows-x86_64.tar.gz.
  3. Start vtremoted on the Mac:
tar -xzf vtremoted-macos-arm64.tar.gz
./vtremoted/vtremoted --listen 0.0.0.0:5555 --log-level 1
  1. Run a remote encode from the client:
mkdir -p ffmpeg-client
tar -xzf ffmpeg-linux-x86_64.tar.gz -C ffmpeg-client
./ffmpeg-client/ffmpeg -i input.mkv \
  -c:v h264_videotoolbox_remote \
  -vt_remote_host <MAC_IP>:5555 \
  -b:v 6000k \
  output.mkv

Which asset do I need?

  • vtremoted-macos-arm64.tar.gz: macOS server binary for Apple Silicon Macs.
  • vtremoted-macos-x86_64.tar.gz: macOS server binary for Intel Macs.
  • ffmpeg-linux-x86_64.tar.gz: FFmpeg client build for Linux.
  • ffmpeg-macos-arm64.tar.gz: FFmpeg client build for Apple Silicon Macs.
  • ffmpeg-macos-x86_64.tar.gz: FFmpeg client build for Intel Macs.
  • ffmpeg-windows-x86_64.tar.gz: FFmpeg client build for Windows.
  • SHA256SUMS.txt: checksums for all release tarballs.

What changed in this release?

Fixed

  • Fixed missing inet_pton return value check in OBS plugin client, preventing confusing errors on invalid addresses.
  • Fixed potential NULL dereference in OBS encoder when video output is not yet attached.
  • Improved read_exact in OBS plugin client to distinguish disconnection from errors and retry on transient failures (EAGAIN/EINTR).
  • Added warning log when side-data allocation fails during remote decode, preventing silent metadata loss.
  • Fixed hardcoded 2-plane assumption in fill_frame_from_view; now copies all planes reported by the remote server.
  • Replaced force unwraps on baseAddress! in Swift server decode/encode paths with safe guards, preventing crashes on malformed zero-length payloads.
  • Replaced unsynchronized Swift Array with UnsafeMutableBufferPointer for concurrent plane error collection, eliminating potential data race.

CI

  • Added swift test step to both macOS arm64 and x86_64 CI jobs, enabling the 38 existing unit tests that were previously not run in CI.
  • Added timeout-minutes to Swift (15 min) and FFmpeg (45 min) build jobs to prevent runaway CI usage.
  • Added mock-based integration tests (run_mock_roundtrip.sh, run_mock_decode.sh) to the Linux FFmpeg CI build.

Learn more