Convertire i video HDR con HandBrake: come funziona con le CPU o GPU
Ti ricordi quando in casa accumulavi pile di cassette VHS, di CD e DVD? Oggi i film UHD HDR occupano molta memoria: anche fino a 100 gigabyte ciascuno. Convertirli con HandBrake può essere una soluzione.
Questo articolo ti spiega come convertire i video UHD HDR utilizzando il codec High Efficiency Video Coding (H.265/HEVC) con HandBrake e con la tua CPU o GPU. Personalmente uso questo sistema per ridurre al minimo le dimensioni delle copie dei film che ho rippato o scaricato, preservandone comunque la qualità. Ad esempio, per ridurre il file di un film da 80 a 20 gigabyte ottenendo un risultato che è un compromesso tra la qualità dello streaming e quella del file originale.
Attualmente il mio programma preferito per la conversione dei video è HandBrake, che tuttavia ha uno svantaggio: se voglio convertire video HDR (High Dynamic Range) a 10 bit il mio processore funziona egregiamente, a differenza della mia scheda grafica, che invece negli ultimi tempi è la mia prima scelta quando devo fare delle conversioni.
Ho però trovato una soluzione: le versioni snapshot di HandBrake. Queste versioni non ancora finali del programma contengono infatti alcune funzioni altrimenti non (ancora) disponibili. Ad esempio, il supporto per la profondità di colore a 10 bit durante la conversione con le schede grafiche Nvidia GeForce. La profondità di colore a 12 bit, però, si ottiene solo con le conversioni effettuate con il processore. Anche chi spera nel supporto per il Dolby Vision o HDR10+ rimarrà deluso. Se è vero che, grazie alla retrocompatibilità, si possono utilizzare gli standard HDR migliorati come sorgenti HDR, HandBrake non è però in grado di convertire file in questi formati.
Cosa fa HandBrake e quale versione dovresti utilizzare
HandBrake è un programma open source gratuito per la transcodifica dei file video. Supporta i codec video (algoritmi di conversione) H.265 (HEVC), H.264 (AVC), MPEG-4, MPEG-2, VP9, VP8 e Theora. Nella conversione di HEVC e AVC il programma può sfruttare l’accelerazione hardware. Come contenitori di file sono supportati MKV, MP4 e WebM. È inoltre supportata un’ampia gamma di codec audio e formati di sottotitoli. Ciò rende possibile il passthrough dell’audio, ovvero il trasferimento della traccia audio originale senza ulteriore conversione per i formati AC-3, E-AC3, FLAC, DTS, DTS-HD, TrueHD, AAC, MP3 e MP2. Se vuoi ricodificare la traccia audio, puoi farlo con AAC, HE-AAC, MP3, FLAC, AC3, E-AC3, Opus e Vorbis.
Il programma offre profili già preimpostati per i video web, il formato Matroska, un codificatore hardware o uno specifico dispositivo finale, così non devi perdere tempo con le impostazioni. Seleziona poi Android, Apple, Chromecast, Playstation o quello che ti interessa e la risoluzione desiderata. In alternativa puoi configurare tutto autonomamente e convertire i video UHD con una profondità di colore fino a 12 bit.
Qui puoi scaricare HandBrake per Windows, Linux e macOS. L’interfaccia grafica di questo convertitore multimediale lo rende facile da usare anche per i principianti.
Se, come me, vuoi convertire video usando una moderna scheda grafica Nvidia anziché il processore, affinché la conversione HDR a 10 bit con Nvidia Encoder (NVEnc) vada a buon fine hai bisogno di una versione snapshot di HandBrake. La trovi qui. Usa questa versione a tuo rischio e pericolo, perché non è ancora definitiva. Affinché il chip supporti 10 bit e B frame, ti serve una GeForce GTX 1650 Super o superiore.
Cose che dovresti sapere prima di convertire il tuo primo film
All’inizio degli anni 2000 rippavo i DVD e li convertivo in file da 650 o 700 megabyte. Poi li masterizzavo su CD. A quei tempi il mio PC funzionava giorno e notte per convertire i film che originariamente erano da 720 x 576 pixel. Per i nostalgici: usavo il codec DivX 3.11a e i software SmartRipper e FlasKMPEG.
Anche oggi, a seconda del processore e dell’impostazione, convertire un film può richiedere ore se non addirittura giorni. Esistono anche metodi un po’ più veloci, ma che non offrono un risultato perfetto in termini di qualità o di dimensioni del file. Ma è comunque un risultato all’altezza della qualità dei servizi di streaming e che richiede solo una frazione del tempo altrimenti richiesto in caso di impostazioni di codifica estreme.
Migliore qualità e dimensione dei file: codifica a 2 passaggi con il processore
La figura seguente mostra le impostazioni di HandBrake per la conversione via CPU basata su software con HEVC. È quella che ho usato finora con i miei film, perché non avevo ancora scoperto quanto mi piace il risultato di conversione delle schede grafiche Nvidia. E anche perché la conversione con il processore offre un grande vantaggio: la codifica a 2 passaggi.
Se vuoi la migliore qualità e i file più piccoli possibile, la codifica a 2 passaggi è la scelta che fa al caso tuo. Il materiale video viene analizzato in un primo passaggio e le informazioni raccolte vengono salvate in un file di log. In sostanza il codificatore analizza, ad esempio, dove si trovano le scene del film veloci con molti cambi di fotogramma. Queste scene, come tutto il materiale video ricco di dettagli e con una maggiore granularità, hanno bisogno di più spazio di memorizzazione al secondo e quindi di un bitrate superiore. Nel secondo passaggio, invece, che è anche la fase in cui viene scritto il nuovo file del film, si può sempre puntare al migliore bitrate di destinazione per ogni scena o si può rispettare la capacità di memoria e il bitrate medio previsto.
Nella codifica a 2 passaggi la memoria utilizzata per ogni secondo del film può variare, come succede anche nella conversione in un unico passaggio con bitrate medio. Questo accade soprattutto durante la conversione in un unico passaggio a causa di un valore di qualità impostato quando non esiste un valore di bitrate predefinito. Tuttavia, la codifica a 1 passaggio è meno predittiva della codifica a 2 passaggi, con un conseguente aumento delle dimensioni del file e/o una diminuzione della qualità.
Uno svantaggio della codifica a 2 passaggi è che la conversione richiede quasi il doppio del tempo. Attivando l’opzione turbo si attenua in parte questo problema. Nell’immagine precedente nota il segno di spunta in corrispondenza della voce «Ersten Durchgang beschleunigen» (Primo passaggio turbo). Questa impostazione consente di risparmiare un po’ di tempo al primo passaggio, con cali di qualità praticamente impercettibili ma senza grandi miglioramenti a livello di tempo. Nel mio caso la conversione con le impostazioni precedenti richiede comunque ancora circa 140 minuti per ora di film. Quindi cinque ore e mezza per «Star Trek» del 1979 nella versione Director’s Cut. E questo nonostante utilizzi un recente Intel Core i7-12700K e abbia selezionato «Fast» come preimpostazione del codificatore (quinto valore da sinistra o sesto da destra).
Informazioni più dettagliate sulle impostazioni sono riportate di seguito nelle istruzioni passo-passo. Il bitrate medio selezionato di 20 000 kilobit al secondo sull’immagine ha prodotto un file MKV di 24 gigabyte. Originariamente la traccia video era di 74,7 gigabyte con un bitrate medio di 72,9 megabit al secondo. La nuova traccia video è di 20,5 gigabyte con un bitrate medio di 20 megabit al secondo.
Buona qualità e grande risparmio di tempo: codifica a 1 passaggio con processore o scheda grafica
Indipendentemente dal fatto che opti per uno o due passaggi, naturalmente la qualità dipende sempre in gran parte dal bitrate. Se il bitrate è sufficientemente elevato, il video di destinazione sarà privo di fastidiosi artefatti. Su Netflix i film sono trasmessi in streaming con bitrate fino a 20 megabit al secondo, con risoluzione UHD con HDR10 e in alcuni casi Dolby Vision. Per contro l’UHD Blu-ray può raggiungere i 128 megabit (16 megabyte) al secondo. Se sei abituato a Netflix, Amazon Prime o Disney+, un bitrate di destinazione uguale o leggermente superiore in teoria dovrebbe dare un risultato altrettanto buono.
Se scegli una conversione supportata da processore con un solo passaggio, al PC servirà all’incirca metà del tempo rispetto alla codifica a 2 passaggi. Ancora più veloce può essere la conversione con una scheda grafica. Intel, AMD e Nvidia offrono codificatori idonei. Per motivi di qualità, però, almeno secondo la mia esperienza, mi sento di raccomandare soltanto i codificatori di Nvidia in sostituzione della conversione con la CPU. E comunque solo con il codificatore impostato su «Slowest». Con un bitrate medio di circa 15 megabit al secondo, a me sembra che la qualità sia almeno pari a quella di Netflix. Secondo me è equivalente alla preimpostazione «Fast» in una conversione a un solo passaggio tramite CPU. La conversione con una Nvidia GeForce RTX 3080, però, richiede solo circa 30 minuti per ogni ora di film.
Procedura passo passo per la conversione dei video HDR
Dopo tutta questa teoria è giunta l’ora della pratica. Prendiamo come esempio la versione UHD HDR di «Batman Begins»: un file MKV di 58 gigabyte.
1. Avviare il programma e aprire il video sorgente
Dopo l’avvio di HandBrake puoi aggiungere un singolo video o una cartella come sorgente.
2. Caricare la preimpostazione e definire il contenitore
Dopo aver aperto il file sorgente vai alla scheda «Übersicht» (Sommario), che fornisce un’anteprima del film e dove puoi selezionare il formato o il contenitore. Più sopra si trova il campo di selezione «Voreinstellung» (Preimpostazione) dove sono memorizzati i profili citati in precedenza. Ora devi scegliere un profilo che corrisponda il più possibile al risultato che ti interessa. Puoi anche impostare tutto in autonomia senza utilizzare il profilo, ma il primo metodo è più veloce.
Scegli la preimpostazione «H.265 MKV 2160p60» e seleziona un formato. Io scelgo sempre il contenitore MKV, perché tutti i miei lettori supportano questo formato ed è comunque il migliore. Immagina l’MKV come un contenitore in cui inserire la traccia video, le varie tracce audio e gli eventuali sottotitoli. Se in un secondo momento vorrai modificare il file senza convertirlo di nuovo, ad esempio per sostituire una traccia audio o altre cose simili, puoi usare il software MKVToolNix. In alternativa puoi scegliere MP4 come contenitore, in particolare per i dispositivi Apple.
Assicurati anche di selezionare la casella di controllo «Metadaten-Passthru» (Passthru Metadati Comuni). Definisci quindi il nome e la posizione di memorizzazione del file di destinazione.
3. Definire le dimensioni dell’immagine
Nella scheda «Bildgrösse» (Dimensioni) verifica che il limite di risoluzione sia quello che ti interessa. Se vuoi una risoluzione UHD il valore deve essere «2160p 4K Ultra HD». Se hai caricato le preimpostazioni nel secondo passaggio, come suggerito, dovrebbe già essere tutto impostato correttamente e apparire come in questa schermata. Se lasci il ritaglio impostato su «Automatic» (Automatico), scelta consigliata, HandBrake rimuoverà automaticamente le barre nere sopra e sotto l’immagine, con un notevole risparmio di memoria.
4. Filtri eventualmente utilizzabili
In «Filter» (Filtri) lascia tranquillamente tutti i valori su «Off». A meno che tu non sia sappia bene cosa stai facendo.
5.1 Impostazioni di codifica per la conversione con il processore
Nella scheda «Video» seleziona «H.265 10-bit» per la conversione con processore nel codificatore video. Se hai un sorgente a 12 bit, è disponibile anche il codificatore video «H.265 12 bit». Dato che, personalmente, non rilevo molte differenze tra le profondità di colore a 10 e 12 bit, non lo uso ancora. Anche perché richiede più tempo.
A parte il codificatore video, nella frequenza dei fotogrammi scegli l’impostazione «Same as source» in modo da acquisire il valore FPS del file originale. In «Encodereinstellungen » (Opzioni Codificatore) scegli il valore di preimpostazione che preferisci. Ti consiglio il valore «Fast», perché ti consente di ottenere una qualità decente in tempi accettabili. In aggiunta, però, devi definire anche un bitrate medio sufficientemente elevato. Questa impostazione influisce direttamente sulle dimensioni finali del file. Io ho deciso di mirare a 15 000 kilobit al secondo come valore medio.
In alternativa, puoi ignorare le impostazioni in kilobit e scegliere un valore di CRF (Constant Rate Factor) alla voce «Konstante Qualität» (Qualità costante). Invece di CRF può comparire anche la denominazione RF o CQ. In realtà questo è il metodo migliore, in quanto il materiale video viene elaborato costantemente con il bitrate più giusto in base a un valore di qualità, senza necessità di rispettare un valore medio di memorizzazione. Questo, però, rende difficile riuscire a stimare le dimensioni del file di destinazione. In compenso, è il metodo migliore per avere sempre una buona qualità dell’immagine in presenza di cambiamenti di immagine sia rapidi che lenti. Per la risoluzione UHD, nella documentazione di Handbrake si raccomanda un valore CRF di 28-22. A seconda del livello di azione del film può essere indicato anche un valore inferiore a 22. Se penso al film più geniale dell’anno, «Everything Everywhere All at Once», una volta ricevuto il mio Blu-ray, visti i cambiamenti d’immagine rapidissimi, quasi in grado di scatenare l’epilessia, proverò a «strozzarlo» con un 18 e vedrò cosa ne ottengo. Più il valore è basso e la compressione ridotta, migliore è la qualità delle immagini e più grande è il file.
Se dopo aver letto la teoria hai deciso di procedere con la lunghissima codifica a 2 passaggi, scegli un bitrate medio e metti il segno di spunta in corrispondenza di «Encodierung in zwei Durchgängen» (Codifica a 2 passaggi). Se vuoi eseguire il primo passaggio di codifica in modalità turbo seleziona anche «Ersten Durchgang beschleunigen» (Primo passaggio turbo).
5.2 Impostazioni di codifica per la conversione con una scheda grafica Nvidia
Per convertire un file con la scheda grafica Nvidia scegli «H.265 10-bit» (NVEnc) come codificatore video. Nella frequenza dei fotogrammi scegli l’impostazione «Same as source» per acquisire il valore FPS del file originale. Nelle opzioni del codificatore seleziona «Slowest» in corrispondenza della preimpostazione del codificatore e non cambiarlo. Non vale la pena scegliere una variante più veloce, perché anche l’impostazione Slowest codifica in modo relativamente veloce, oltre a offrire la qualità migliore.
Come per la conversione tramite processore, anche in questo caso è possibile preimpostare un valore di qualità compreso tra 0 e 51 o un bitrate medio. Come già menzionato, per la maggior parte dei film mi accontento di un bitrate medio di 15 megabit al secondo. Nel caso di film più recenti e con un montaggio più rapido a volte arrivo fino a 20 o 25 megabit. A livello di qualità, le mie esperienze con il codificatore Nvidia sono simili a quelle che ho avuto con il processore. Un buon valore di partenza per me è 23, che può scendere anche fino a 18 a seconda del film.
Per questo articolo ho convertito il film Batman con il valore medio di bitrate e con valori di qualità, rispettivamente, di 23 e 18. Il valore medio di 15.000 kilobit si traduce in un bitrate medio di 15 megabit esatti al secondo (traccia video da 15,8 gigabyte). Con un valore CRF di 23 si ottiene un risultato altrettanto buono, pari a 14,3 megabit al secondo (traccia video da 15 gigabyte). Con un CRF di 18 si arriva a 18,9 megabit al secondo (traccia video da 19,9 gigabyte) e un’immagine a malapena distinguibile dall’originale. I risultati, però, possono variare a seconda del materiale del film. Per la conversione è servita circa un’ora e 15 minuti: 32 minuti per ogni ora di film.
6. Selezionare le tracce audio e convertirle, se necessario
Ci siamo quasi. Nella scheda «Audio» puoi aggiungere la traccia o le tracce audio tramite il menu a discesa «Spuren» (Tracce) e stabilire se devono restare nel formato originale o essere convertite in un altro.
Come si vede nello screenshot, ho aggiunto una traccia audio in tedesco e una in inglese. Le tracce sono disponibili in DTS-HD, che purtroppo è un formato che nessuna delle mie periferiche supporta. Per questo motivo ho assegnato loro un nuovo codec. Voglio che dopo la conversione le tracce audio siano disponibili in Dolby Digital 5.1. Scelgo quindi AC3, ovvero il migliore bitrate possibile a 640 kilobit al secondo e 5.1 canali.
Se invece vuoi riprendere una traccia audio così com’è, in «Codec» (Codificatore) scegli lo stesso valore assicurandoti che sia seguito da «Passthru»:
7. Selezionare i sottotitoli
Nella scheda «Untertitel» (Sottotitoli) aggiungi i testi desiderati tramite il menu a discesa «Spuren» (Tracce). Lascia stare invece l’opzione «Eingebrannt» (Masterizza), che consente di inserire il testo direttamente nelle immagini video. Con questa opzione il testo resta visualizzato anche se non si selezionano i sottotitoli e non può più essere rimosso. Più utile è l’opzione «Standard» (Predefinito), che ho impostato con il nome «German Forced». I sottotitoli forzati contengono solo le traduzioni dei passaggi in cui parlano stranieri o i riferimenti a tempi e luoghi nel film. Ecco perché mi interessa che questa opzione sia attivata per preimpostazione, il che si adatta alla traccia audio standard anch’essa in tedesco.
8. Avviare la conversione e attendere
Finalmente puoi premere il tasto verde nella parte superiore del programma e avviare la codifica.
Con un po’ di fortuna, otterrai un risultato decente nell'arco di qualche ora o qualche giorno.
La mia musa ispiratrice si trova ovunque. Quando non la trovo, mi lascio ispirare dai miei sogni. La vita può essere vissuta anche sognando a occhi aperti.