Performance

Give your SBC, mini PC or compact Linux server hardware video processing through a Mac on the LAN, without adding a discrete GPU.

Remote VideoToolbox delivers 186–209 fps in the 1080p moving-video tests, with less than one CPU second of Linux FFmpeg work per 60-second clip.

Transcode speedFrames per second · higher is faster
Video qualityVMAF · higher is better · 0–100 scale
FFmpeg CPU timeCPU seconds for the 60-second clip · lower uses less CPU
Transcode energyMac system and NVIDIA GPU board · joules per clip · lower uses less energy

Speed is the median of three complete transcodes. Hover or tap a bar for exact values and run ranges. Remote CPU time measures the Linux FFmpeg client.

Exact values for this comparison

All measured results

Big Buck Bunny — all codecs and resolutions

H.264 High · 720p

Pipeline fps VMAF File MB File Mb/s
Intel iGPU VA-API 434.7 91.98 30.034 4.004
CPU fast 100.2 97.73 29.99 3.999
CPU medium 76.8 97.75 30.0 4.0
VideoToolbox local 241.0 91.08 29.479 3.931
VideoToolbox remote 391.7 96.16 29.515 3.935
NVIDIA NVENC P4 579.7 93.54 29.457 3.928
NVIDIA NVENC P7 390.5 93.67 29.493 3.932

H.264 High · 1080p

Pipeline fps VMAF File MB File Mb/s
Intel iGPU VA-API 302.2 96.61 44.962 5.995
CPU fast 66.6 97.6 45.001 6.0
CPU medium 44.6 97.64 45.0 6.0
VideoToolbox local 199.7 95.68 44.981 5.997
VideoToolbox remote 200.9 95.68 44.976 5.997
NVIDIA NVENC P4 390.8 97.16 44.759 5.968
NVIDIA NVENC P7 192.4 97.34 44.886 5.985

HEVC Main · 720p

Pipeline fps VMAF File MB File Mb/s
Intel iGPU VA-API 211.9 92.06 22.539 3.005
CPU fast 28.7 97.19 22.947 3.06
CPU medium 26.5 97.25 22.965 3.062
VideoToolbox local 261.2 91.4 22.084 2.945
VideoToolbox remote 331.1 91.4 22.083 2.944
NVIDIA NVENC P4 579.8 92.69 22.543 3.006
NVIDIA NVENC P7 283.3 92.86 22.602 3.014

HEVC Main · 1080p

Pipeline fps VMAF File MB File Mb/s
Intel iGPU VA-API 162.3 96.07 30.033 4.004
CPU fast 21.3 96.31 30.093 4.012
CPU medium 17.3 96.65 30.04 4.005
VideoToolbox local 184.7 95.64 29.462 3.928
VideoToolbox remote 186.1 95.63 29.464 3.928
NVIDIA NVENC P4 352.5 95.24 30.425 4.057
NVIDIA NVENC P7 137.3 95.43 30.538 4.072
Moving testsrc2 signal — all codecs and resolutions

H.264 High · 720p

Pipeline fps VMAF File MB File Mb/s
Intel iGPU VA-API 502.8 93.41 29.893 3.986
CPU fast 135.8 98.19 30.06 4.008
CPU medium 111.2 98.49 30.073 4.01
VideoToolbox local 286.8 92.6 30.029 4.004
VideoToolbox remote 350.8 92.51 30.035 4.005
NVIDIA NVENC P4 547.0 95.55 29.84 3.979
NVIDIA NVENC P7 396.1 95.43 29.792 3.972

H.264 High · 1080p

Pipeline fps VMAF File MB File Mb/s
Intel iGPU VA-API 295.0 95.86 44.853 5.98
CPU fast 89.7 95.97 45.105 6.014
CPU medium 75.3 96.57 45.09 6.012
VideoToolbox local 206.8 95.68 45.028 6.004
VideoToolbox remote 209.1 95.68 45.025 6.003
NVIDIA NVENC P4 419.8 96.7 45.548 6.073
NVIDIA NVENC P7 193.7 96.85 45.432 6.058

HEVC Main · 720p

Pipeline fps VMAF File MB File Mb/s
Intel iGPU VA-API 219.7 93.04 22.43 2.991
CPU fast 34.7 97.74 22.541 3.005
CPU medium 32.8 97.72 22.547 3.006
VideoToolbox local 254.2 92.51 22.63 3.017
VideoToolbox remote 339.0 92.42 22.643 3.019
NVIDIA NVENC P4 547.5 94.81 22.466 2.996
NVIDIA NVENC P7 286.2 94.89 22.452 2.994

HEVC Main · 1080p

Pipeline fps VMAF File MB File Mb/s
Intel iGPU VA-API 169.7 94.56 30.044 4.006
CPU fast 25.4 93.27 30.015 4.002
CPU medium 24.0 94.18 30.039 4.005
VideoToolbox local 186.4 94.0 30.159 4.021
VideoToolbox remote 189.2 94.0 30.174 4.023
NVIDIA NVENC P4 357.1 93.99 29.808 3.974
NVIDIA NVENC P7 138.0 94.63 29.845 3.979
Static SMPTE bars (control) — all codecs and resolutions

Static bars are controls. Use the moving inputs for quality comparisons.

H.264 High · 720p

Pipeline fps VMAF File MB File Mb/s
Intel iGPU VA-API 490.7 93.84 0.261 0.035
CPU fast 289.3 97.43 0.143 0.019
CPU medium 265.7 97.42 0.15 0.02
VideoToolbox local 314.4 93.58 0.185 0.025
VideoToolbox remote 359.6 93.58 0.182 0.024
NVIDIA NVENC P4 591.3 95.45 0.381 0.051
NVIDIA NVENC P7 417.0 95.45 0.296 0.04

H.264 High · 1080p

Pipeline fps VMAF File MB File Mb/s
Intel iGPU VA-API 318.7 97.44 0.219 0.029
CPU fast 181.7 97.43 0.185 0.025
CPU medium 171.3 97.43 0.191 0.026
VideoToolbox local 207.2 97.47 0.225 0.03
VideoToolbox remote 210.4 97.47 0.225 0.03
NVIDIA NVENC P4 420.7 97.42 0.366 0.049
NVIDIA NVENC P7 217.5 97.43 0.231 0.031

HEVC Main · 720p

Pipeline fps VMAF File MB File Mb/s
Intel iGPU VA-API 400.4 93.84 0.123 0.016
CPU fast 87.7 97.43 0.678 0.09
CPU medium 95.3 97.43 0.677 0.09
VideoToolbox local 308.2 93.55 0.41 0.055
VideoToolbox remote 355.6 93.55 0.396 0.053
NVIDIA NVENC P4 650.2 95.46 0.249 0.033
NVIDIA NVENC P7 286.6 95.45 0.233 0.031

HEVC Main · 1080p

Pipeline fps VMAF File MB File Mb/s
Intel iGPU VA-API 254.4 97.43 0.151 0.02
CPU fast 58.6 97.43 0.905 0.121
CPU medium 59.3 97.42 0.908 0.121
VideoToolbox local 187.7 97.37 0.484 0.064
VideoToolbox remote 189.9 97.37 0.484 0.064
NVIDIA NVENC P4 376.9 97.41 0.221 0.03
NVIDIA NVENC P7 138.2 97.42 0.203 0.027

File MB uses decimal megabytes. File Mb/s is the complete container bitrate reported by ffprobe. VMAF scores every frame of the first measured repeat. Download the measured data for SSIM, exact scored-file sizes, hashes, CPU time, energy and all repeat-level measurements.

Hardware and method

Machine Configuration
Linux Intel Core i7-12650H, 32 GB RAM, Ubuntu 24.04; Intel iHD 24.3.4 / libva 2.22
Mac Apple M2, 16 GB RAM, macOS 15.7.5; both VideoToolbox pipelines
NVIDIA GeForce RTX 3070 Ti, 8 GB VRAM; Ryzen 7 5800X3D, 48 GB RAM, Ubuntu 24.04; driver 580.178.04, 200.0 W GPU limit
Remote connection Wired LAN; Mac interface negotiated 2.5 GbE

These are complete decode → resize → encode → file workflows. Remote VideoToolbox sends compressed video from Linux to the Mac and receives the encoded output. Intel uses hardware decode, scale_vaapi and encode; CPU pipelines use software decode and bicubic scaling; native Mac uses hardware decode, scale_vt and encode. NVIDIA uses NVDEC, bicubic scale_cuda and NVENC with local files.

Inputs, settings and measurement details
  • Big Buck Bunny: seconds 60–120 of the Blender Foundation’s 1080p30 Sunflower release. Credit: Big Buck Bunny, Blender Foundation; Sunflower release, Blender Institute. Project and licensing.
  • Moving test signal: FFmpeg testsrc2, 1920×1080 at 30 fps for 60 seconds.
  • Static color bars: FFmpeg smptebars with the same dimensions, frame rate and duration.

Prepared inputs use H.264 High, 8-bit BT.709, libx264 -preset fast -crf 10. All pipelines use the same preparation recipe and source segment. Quality is measured against the prepared input.

Each run processes one stream of H.264 High or HEVC Main, 8-bit 4:2:0 video at 30 fps. File budgets are 4/6 Mb/s for H.264 and 3/4 Mb/s for HEVC at 720p/1080p. Calibration adjusts the requested bitrate using the full clip. Tables report the actual file sizes and rates; static bars are controls.

Reported file sizes and bitrates include container overhead and filler. The NVENC and Mac energy matrices use whole-file calibration within 2% of the moving-video budgets.

All pipelines use average/VBR, a 60-frame maximum GOP and zero frame reordering. Both VideoToolbox paths require hardware encoding with realtime=0 and prio_speed=0.

NVENC uses P4 and P7 with tune=hq, rc=vbr, multipass=disabled and -bf 0, at a 200.0 W GPU limit.

Three measured repeats follow a 60-frame warm-up. Pipeline order rotates and jobs run sequentially. Throughput includes FFmpeg startup, video processing and writing the file. Calibration, validation and scoring run separately.

Outputs are independently decoded and checked for frame counts, format, dimensions, GOP and timestamps.

VMAF 0.6.1 and SSIM score all 1,800 frames of the first measured repeat, using bicubic reference resizing and aligned timestamps.

Binary and input SHA-256 hashes, scorer version and unrounded measurements are in the downloadable data.

Power and quality

Energy is measured over each complete transcode: Mac system for local VideoToolbox and GPU board for NVENC. Exact values include average watts and frames per joule.

Input Output VideoToolbox, Mac system J NVENC P4, GPU board J NVENC P7, GPU board J
big-buck-bunny H264 1280x720 33.7 297.7 429.1
big-buck-bunny H264 1920x1080 60.0 465.3 892.3
big-buck-bunny HEVC 1280x720 36.5 295.0 581.7
big-buck-bunny HEVC 1920x1080 57.6 500.8 1213.2
testsrc2 H264 1280x720 40.8 315.3 428.1
testsrc2 H264 1920x1080 49.3 431.3 877.0
testsrc2 HEVC 1280x720 40.0 317.4 582.7
testsrc2 HEVC 1920x1080 51.2 497.1 1199.8
smptebars H264 1280x720 34.0 300.7 408.3
smptebars H264 1920x1080 49.3 431.1 781.4
smptebars HEVC 1280x720 38.5 282.8 576.7
smptebars HEVC 1920x1080 54.0 469.2 1197.6
Energy measurement and sources

Mac system energy integrates SMC PSTR power readings using mactop 2.1.6. NVENC energy uses the change in the NVML cumulative counter between FFmpeg start and end. Both include idle consumption during the transcode.

Measurement references: SMC system-power sensor, mactop power calculation, and NVIDIA NVML API.

Further reading: Waseda’s NVENC board/chip power study and Notebookcheck’s M2 Air power measurements.

Network and performance guidance

Use a wired LAN for remote encoding. Packet transcoding transfers compressed video in both directions, keeping bandwidth low. Raw-frame workflows such as OBS send the uncompressed frames to the Mac.

Reproduce the comparison

The benchmark instructions cover the five-pipeline suite, nvenc-suite and videotoolbox-energy, including preparation, dependencies and publication commands.