La Differenza Fondamentale
CRF e la codifica two-pass risolvono lo stesso problema — bilanciare qualità e dimensione del file — ma da direzioni opposte:
- CRF (Constant Rate Factor): "Voglio questo livello di qualità. Dammi qualsiasi dimensione del file necessaria per ottenerla." Tu controlli la qualità; la dimensione del file è la variabile.
- Two-pass: "Voglio questa dimensione del file (bitrate target). Dammi la migliore qualità che ci stia." Tu controlli la dimensione del file; la qualità è la variabile.
| Caratteristica | CRF | Two-Pass |
|---|---|---|
| Controlli | Livello di qualità (numero CRF) | Bitrate target / dimensione file |
| Variabile | Dimensione del file | Qualità |
| Passaggi | 1 (passaggio singolo) | 2 (analisi + codifica) |
| Velocità | 1x (riferimento) | ~2x più lento |
| Previsione dimensione file | Non prevedibile | Prevedibile |
| Consistenza qualità | Qualità costante per frame | Distribuzione bit ottimale |
Come Funziona CRF
La codifica CRF è un processo a passaggio singolo. Il codificatore elabora ogni frame e si chiede: "Quanti bit mi servono per raggiungere questo livello di qualità per questo frame specifico?"
- I frame ad alta complessità (esplosioni, movimenti veloci) ricevono più bit
- I frame a bassa complessità (riprese statiche, title card) ricevono meno bit
- La qualità rimane costante; il bitrate varia
Il risultato è un file a bitrate variabile (VBR) dove ogni frame riceve esattamente i bit di cui ha bisogno — nessuno spreco su scene semplici, nessuna carenza su quelle complesse. Per questo CRF produce il rapporto qualità/dimensione ottimale per la codifica offline.
Come Funziona Two-Pass
La codifica two-pass elabora il video due volte:
- Passaggio 1 (Analisi): Il codificatore scansiona l'intero video senza produrre output. Costruisce una mappa di complessità frame per frame — quali scene sono semplici, quali complesse, dove avvengono i cambi di scena.
- Passaggio 2 (Codifica): Usando l'analisi del passaggio 1, il codificatore distribuisce il bitrate target in modo ottimale su tutti i frame. Le scene complesse ottengono più budget di bitrate; quelle semplici meno.
Il risultato: un file che centra precisamente il bitrate target distribuendo la qualità nel modo più uniforme possibile tra tutte le scene.
Confronto Qualità
Con impostazioni ragionevoli, CRF e two-pass producono una qualità quasi identica. Le differenze sono sottili:
- Vantaggio CRF: Ogni frame riceve esattamente i bit di cui ha bisogno. Nessun frame viene mai privato di risorse. CRF può produrre una qualità media leggermente superiore perché non è vincolato da un budget di bitrate.
- Vantaggio two-pass: Migliore distribuzione dei bit per contenuti estremi (video lunghi con complessità molto variabile). Il passaggio di analisi aiuta il codificatore a prepararsi per le scene complesse imminenti.
In pratica, la differenza di qualità tra CRF e una codifica two-pass ben calibrata è trascurabile per la maggior parte dei contenuti. Servirebbe un'analisi VMAF frame per frame per rilevare le differenze.
Confronto Velocità
La differenza di velocità è semplice:
- CRF: 1x tempo di codifica (passaggio singolo sul video)
- Two-pass: ~1.7–2x tempo di codifica (il primo passaggio è veloce perché non produce output, ma richiede comunque tempo)
Per un video 1080p di 10 minuti su una CPU moderna:
- CRF medium: ~20 secondi
- Two-pass medium: ~35 secondi
Quando Usare CRF
CRF è la scelta migliore per quasi tutti gli scenari comuni:
- Conversione file: MKV in MP4, MOV in MP4, qualsiasi conversione di formato in cui vuoi la migliore qualità
- Archiviazione personale: Conservare la tua videoteca a qualità costante
- Upload web: YouTube, social media e la maggior parte delle piattaforme accettano file a bitrate variabile
- Condivisione: Quando la dimensione del file non deve essere esatta, CRF offre la qualità ottimale
- Elaborazione batch: Un'unica impostazione (CRF 23) funziona bene per tutti i tipi di contenuto
Per questo il nostro convertitore usa CRF — produce la migliore qualità senza richiedere agli utenti di calcolare i bitrate target.
Quando Usare Two-Pass
La codifica two-pass è la scelta migliore quando la dimensione del file deve essere prevedibile:
- Authoring DVD/Blu-ray: Il contenuto deve rientrare in una capacità disco specifica
- Streaming con banda limitata: Lo streaming a bitrate adattivo (HLS/DASH) richiede target di bitrate precisi per ogni livello di qualità
- Limiti di dimensione file: Piattaforme con limiti di upload rigidi (Discord 25 MB, email 25 MB) dove devi garantire che l'output rientri
- Broadcast professionale: Le pipeline di broadcast spesso richiedono CBR o target VBR precisi
Il Meglio di Entrambi: CRF con Limite
Esiste un approccio ibrido chiamato CRF con limite (qualità vincolata) che combina i vantaggi di entrambi i metodi:
ffmpeg -i input.mkv -c:v libx264 -crf 23 -maxrate 4000k -bufsize 8000k -c:a aac output.mp4
Questo dice al codificatore: "Punta alla qualità CRF 23, ma non superare mai 4 Mbps." In pratica:
- Scene semplici: codificate a qualità CRF 23 (ben sotto i 4 Mbps)
- Scene complesse: codificate a qualità CRF 23 a meno che non si superi il limite di 4 Mbps, nel qual caso la qualità viene leggermente ridotta per restare entro il limite
CRF con limite è ideale per le applicazioni di streaming dove serve prevedibilità della banda senza rinunciare all'approccio qualità-first di CRF.