The speed/quality tradeoff is real
Modern GPUs and SoCs include dedicated silicon for video encoding: VideoToolbox (Apple Silicon), NVENC (NVIDIA), QuickSync (Intel iGPU), AMF (AMD), V4L2-M2M (Raspberry Pi). They're 5–20× faster than CPU encoders. They're also slightly less efficient — at the same bitrate, hardware H.264 typically scores 1–3 VMAF points lower than libx264 -preset slow.
Apple Silicon — the standout
VideoToolbox on M-series Macs is unusually good. Real-time 4K HEVC encode on an M3 Pro. The H.264 encoder is fine, the HEVC encoder is great, ProRes encoding is hardware-accelerated too. For most 'I want to upload this to YouTube tonight' workflows on a Mac, hardware is the right answer.
The flag pattern
Hardware encoders use bitrate (-b:v) almost exclusively — they ignore or only loosely respect CRF. Some support 'constrained quality' modes (-q:v on h264_nvenc and recent VideoToolbox builds). Use the bitrate-target pattern.