Comprimere video con la scheda grafica: NVENC, Quick Sync, VideoToolbox e AMD

Comprimere un video con il processore può richiedere ore. Quasi tutte le schede grafiche degli ultimi anni hanno un circuito fatto apposta che fa lo stesso lavoro molte volte più veloce. Ecco quale hai, come usarlo e quando conviene.

· 3 min di lettura · Enrico Fanucchi

In breve: NVIDIA si chiama NVENC, Intel Quick Sync, AMD AMF (o VCE), e sui Mac con chip Apple VideoToolbox. Con FFmpeg li usi scegliendo l'encoder, per esempio hevc_nvenc, hevc_qsv, hevc_amf o hevc_videotoolbox. Sono molto più veloci degli encoder software; in cambio, a parità di qualità, il file viene di solito un po' più grande. Senza riga di comando, VideoSTAX li mostra da solo quando il computer li supporta.

Software o hardware?

Encoder software (x264, x265, SVT-AV1)Encoder della scheda grafica
Velocitàlenta, usa tutto il processoremolte volte più veloce, il computer resta usabile
Dimensione a parità di qualitàin genere più piccolain genere un po' più grande
Quando convienearchivio, la massima qualità per ogni megabytetanti file, video lunghi, fretta, portatili

Quale encoder hai

  • NVIDIA NVENC: sulle schede GeForce e RTX. H.264 e H.265 da moltissimi anni; per AV1 serve una RTX serie 40 o più recente.
  • Intel Quick Sync: nella grafica integrata dei processori Intel Core. AV1 sulle schede Arc e sui processori Core Ultra.
  • AMD AMF/VCE: sulle Radeon e sui processori Ryzen con grafica integrata. AV1 dalle Radeon RX 7000.
  • Apple VideoToolbox: in tutti i Mac con chip Apple, per H.264 e H.265.

Per vedere quali encoder vede il tuo FFmpeg:

ffmpeg -hide_banner -encoders | grep -E "nvenc|qsv|amf|videotoolbox"       # Mac e Linux
ffmpeg -hide_banner -encoders | findstr "nvenc qsv amf"                       # Windows

Che l'encoder compaia nell'elenco non basta: serve anche la scheda giusta con i driver aggiornati. Se il comando qui sotto dà errore, il tuo hardware non lo supporta.

I comandi pronti con FFmpeg

Tutti questi esempi comprimono in H.265 a qualità costante e copiano l'audio senza toccarlo. Il numero di qualità va regolato: nei primi tre più è basso, più la qualità è alta e il file grande; con VideoToolbox è il contrario (da 1 a 100).

# NVIDIA
ffmpeg -i input.mp4 -c:v hevc_nvenc -preset p5 -rc vbr -cq 28 -b:v 0 -c:a copy output.mp4

# Intel Quick Sync
ffmpeg -i input.mp4 -c:v hevc_qsv -preset slow -global_quality 25 -c:a copy output.mp4

# AMD
ffmpeg -i input.mp4 -c:v hevc_amf -quality quality -rc cqp -qp_i 24 -qp_p 26 -c:a copy output.mp4

# Mac con chip Apple
ffmpeg -i input.mov -c:v hevc_videotoolbox -q:v 65 -tag:v hvc1 -c:a aac -b:a 160k output.mp4

L'opzione -tag:v hvc1 serve perché i file H.265 in MP4 si aprano anche sui dispositivi Apple. Per H.264 sostituisci hevc_ con h264_; per AV1, se la scheda lo supporta, con av1_.

Tre consigli per non sprecare qualità

  • Prova prima su un minuto di video (aggiungi -t 60) e confronta: ogni scheda e ogni video hanno il loro valore giusto.
  • Per i video HDR usa H.265 o AV1 a 10 bit: a 8 bit i colori HDR si rovinano.
  • Se l'audio va già bene, copialo (-c:a copy): ricodificarlo non fa risparmiare quasi niente.

Senza riga di comando: VideoSTAX

VideoSTAX è uno studio di transcodifica gratuito per macOS, Windows e Linux. Apri un file, scegli codec, qualità, dimensione e tracce audio e sottotitoli, e lui produce il nuovo file, da solo o in una coda di tanti file.

Il menu degli encoder di VideoSTAX: quelli hardware compaiono solo se il computer li supporta
Il menu degli encoder di VideoSTAX: quelli hardware compaiono solo se il computer li supporta
  • usa gli encoder della scheda grafica quando ci sono: VideoToolbox, NVENC, Quick Sync e AMD, più VAAPI su Linux, e mostra un encoder hardware solo se il tuo computer lo supporta davvero;
  • H.264, H.265 e AV1 anche in software (x264, x265, SVT-AV1, libaom), in MKV, MP4, MOV e WebM;
  • qualità costante con i pulsanti − e + direttamente sulla scheda del codec, oppure bitrate con stima della dimensione del file;
  • ogni traccia audio si copia o si converte (AAC, AC-3, E-AC-3, FLAC, Opus, MP3), con la normalizzazione del volume; i sottotitoli si copiano o si incidono nell'immagine;
  • ti avvisa se un video HDR verrebbe codificato a 8 bit;
  • coda di lavori, lavori in parallelo, e alla fine può spegnere il computer.
La lavorazione: velocità, bitrate, tempo rimanente e registro
La lavorazione: velocità, bitrate, tempo rimanente e registro

Sotto il cofano usa strumenti noti (FFmpeg, MKVToolNix, VapourSynth), già inclusi. Si scarica dalla pagina di VideoSTAX.

Domande frequenti

Comprimere con la scheda grafica fa perdere qualità?

Ogni compressione perde qualcosa, con qualsiasi encoder. A parità di qualità visiva, gli encoder hardware producono di solito file un po' più grandi di x265 o SVT-AV1; abbassando il valore di qualità il risultato è indistinguibile per la maggior parte dei video.

Quale codec scelgo?

H.264 se il video deve aprirsi ovunque, anche su dispositivi vecchi. H.265 per file più piccoli con la stessa qualità, su dispositivi degli ultimi anni. AV1 per la compressione migliore, se la tua scheda lo codifica e chi guarda ha un lettore recente.

Serve un computer potente?

No: proprio con l'encoder hardware anche un portatile comprime velocemente, perché il lavoro lo fa un circuito dedicato della scheda grafica e non il processore.