Misurato su un Raspberry Pi 4

Un Raspberry Pi è un media server vero, finché il file non è 4K

Un Pi 4 lasciato su una mensola e misurato: H.264 al doppio del tempo reale, HEVC a 1,78x con il decoder Request davanti, 4K Dolby Vision a 0,05x.

Un Raspberry Pi 4 in un case dissipatore alettato, appoggiato a uno switch di rete domestico con un cavo collegato, illuminato di ambra

Un Raspberry Pi 4 sta da mesi su una mensola qui, e serve una libreria vera che vive su un disco USB. Il verdetto è diviso in due, e la linea di divisione non passa dove la mettono le guide all’acquisto: passa da una domanda sola, cioè quanta parte di quello che possiedi deve essere ricodificata prima di arrivare a uno schermo?

La scheda da cui vengono questi numeri

Un Pi 4 Model B con 4 GB di memoria, Armbian a 64 bit su Debian 13, avviato da un SSD USB con lo slot della scheda vuoto, e la libreria su un disco USB esterno formattato NTFS, che quando sono state prese le misure conteneva 2.276 file di film, 1.583 file di episodi e 44 documentari.

Le interfacce dei codec cambiano da un produttore all’altro, e a volte fra due kernel dello stesso produttore, quindi quello che segue va letto come il resoconto di una singola scheda, e un NAS, una scheda Rockchip o un Odroid meritano una misura propria prima di farci affidamento.

Il silicio ha un solo encoder, ed è H.264

Il BCM2711 del Pi 4 porta codifica e decodifica H.264 in hardware, raggiungibili attraverso l’interfaccia V4L2 M2M. Su questo chip non troverai nulla che assomigli a VAAPI, per quanto una tabella comparativa lasci intendere il contrario mettendo una spunta sotto “transcodifica hardware”. L’HEVC è solo in decodifica, e il decoder non è quel dispositivo hevc_v4l2m2m che tutti vanno a cercare: è un decoder stateless pilotato attraverso la V4L2 Request API, su un nodo suo, con un controller multimediale davanti.

La distinzione costa prestazioni reali. Ecco lo stesso carico da 30 secondi passato per strade diverse su quella scheda.

Sorgente Strada Ritmo misurato
H.264 1080p decodifica e codifica V4L2 circa 2x il tempo reale
HEVC Main 1080p decodifica software, codifica V4L2 1,14x
HEVC Main 1080p decodifica Request, codifica V4L2 1,78x
HEVC Main10 decodifica Request, detile, codifica V4L2 1,59x
HEVC più tre tracce audio decodifica software, codifica V4L2 0,91x
4K Dolby Vision tutto in software 0,05x

Qualsiasi valore sopra 1,0 significa che un secondo di film si produce in meno di un secondo, quindi nessuno aspetta. La riga dell’H.264 è quella comoda: circa 403 MiB di memoria e la scheda a 65,2 °C, una temperatura moderata e lontana da qualsiasi limite. Mettere il decoder Request davanti allo stesso encoder ha portato l’HEVC da 1,14x a 1,78x, e quel salto è tutta la ragione per cui vale la pena passare dalla strada stateless.

L’ultima riga merita attenzione. Due secondi di immagine ogni quaranta secondi di orologio, con il processore fermo al 290 per cento di un core su un chip che ne ha quattro. Non c’è messa a punto che possa salvare una cosa del genere.

Cosa fa il server quando la scheda non ce la fa

Una sessione che resta indietro è peggio di una sessione che si ferma, perché lo spettatore attende un minuto di caricamento prima di arrivare alla stessa conclusione. Per questo il server controlla il proprio ritmo. Una finestra di codifica ha 45 secondi di grazia, che coprono l’avvio, un riposizionamento e un client in pausa, e dopo deve tenere lo 0,6 del tempo reale. Sotto quella soglia la sessione finisce con playback.transcode.too_slow e il client lo dice in una frase. Da browser il titolo 4K Dolby Vision ha prodotto un segmento in 56,5 secondi, poi ha risposto 422 e ha chiuso la sessione.

Il costo che nei confronti non compare mai

Anche leggere un file è lavoro, e su un Pi è più lavoro di quanto immagineresti: costruire la mappa dei fotogrammi chiave di un film HEVC da 3,3 GB su quel disco USB-NTFS ha richiesto 120 secondi e ha trovato 1.375 fotogrammi chiave, mentre la richiesta che vuole quella mappa ha a disposizione otto secondi, quindi deve rinunciare, e la sessione ripiega sulla transcodifica di qualcosa che il client avrebbe potuto riprodurre intatto. Una volta che la mappa esiste, costruita in secondo piano, la sessione successiva di quel film sarà una copia diretta che si riposiziona come si deve quando cerchi un punto.

Una scheda piccola premia questo schema dappertutto. È paziente ed è lenta, quindi il software adatto a lei esegue le letture pesanti in secondo piano e consegna la risposta a chi la chiede dopo.

Sottotitoli dal parlato, sulla stessa scheda

Trenta secondi di dialogo in inglese hanno richiesto circa 114 secondi per la trascrizione, con un picco di 755,5 MiB e nessuno swap, e sono tornati con 14 battute al 12,96 per cento di errore sulle parole rispetto al sottotitolo di riferimento. Le parole sono utilizzabili, mentre su una scheda così piccola i tempi sono meno precisi: l’inizio delle battute ha misurato 353 ms di mediana e 2.080 ms al 95esimo percentile, per cui qualche riga compare in ritardo, ed è la ragione per cui generare i sottotitoli conviene affidarlo alla macchina di casa che ha capacità da spendere.

Allora basta o no?

Basta quando quasi tutto quello che possiedi si riproduce già intatto. È il caso che sfugge a chi cerca potenza per la transcodifica: un client nativo su un televisore o su un telefono prende un MKV con video HEVC e traccia lossless e lo riproduce così com’è, mentre il server passa la serata a consegnare byte. Un Pi 4 lo fa tutto il giorno su un collegamento gigabit, e lasciarlo acceso costa pochi watt. Le cinque cose che fanno scattare una ricodifica andrebbero lette prima di comprare qualunque hardware, perché quattro sono scelte che puoi fare diversamente.

Smette di bastare a 4K, con il Dolby Vision e al terzo flusso simultaneo da convertire. E smette di bastare anche prima di quanto pensi se compri la scheda nuova: il Pi 5 è un computer molto più veloce, e il suo BCM2712 ha perso del tutto l’encoder H.264 hardware, quindi ogni transcodifica ricade sul processore. Per questo compito il modello precedente è l’acquisto migliore.

Domande frequenti

Quale Raspberry Pi conviene comprare per un media server?

Un Pi 4 per questo compito, e 4 GB bastano. Il Pi 5 è più veloce in quasi tutto il resto e non ha encoder H.264 hardware, quindi qualunque ricodifica ricade sul processore. Se già sai che transcodificherai spesso, una macchina x86 piccola con Quick Sync regge diversi flussi e ti evita il problema.

Serve una scheda SD, o qualcosa di più veloce?

Avvia da USB, se puoi. Il banco di prova girava da un SSD USB con lo slot della scheda vuoto, e la libreria stava su un secondo disco USB. Le schede si consumano sotto un database scritto per tutta la sera, e la differenza si vede nei tempi di scansione molto prima di vedersi come guasto.

Un Raspberry Pi transcodifica il 4K?

In nessun modo che serva a qualcosa. Il 4K Dolby Vision ha misurato 0,05x su un Pi 4, e il server ferma una sessione così lenta invece di lasciarla rallentare. Tieni il 4K per i client che sanno riprodurlo direttamente, e tieni una copia 1080p accanto per quelli che non ci arrivano.

Funziona in Docker?

Sì, ed è così che è stata presa gran parte di questi numeri. L’immagine pubblicata è multiarchitettura, quindi il tag che scarichi su un Pi è il tag che scarichi su un host x64. L’accelerazione hardware vuole un profilo che nomini i nodi di dispositivo reali della tua scheda, e quei profili si rifiutano di partire quando i nodi non ci sono, il che è meglio che scoprire il problema a metà film.

Quven Lifetime

Tutte le funzioni di Max, con un solo pagamento

Lifetime è Max senza rinnovo: il relay gestito e il client web, i sottotitoli scritti dall'audio, l'editor dei sottotitoli con la traduzione e la riparazione dei file danneggiati, oggi e con tutto ciò che Max aggiungerà. Consente inoltre di condividere il server con un massimo di 150 persone.

Lifetime I prezzi correnti richiedono JavaScript. una tantum

Quven è gratuito. Un piano aggiunge i servizi gestiti e gli strumenti avanzati.

Comunità

Commenti

0 commenti

Verrà mostrato pubblicamente con il commento.

Gli invii degli ospiti registrano dati limitati di rete e dispositivo per prevenire abusi. Consulta l’Informativa privacy.

Non ci sono ancora commenti. Inizia la conversazione.

Conferma azione

Riporta a casa la tua libreria.

Gratuito per uso personale, da installare sul tuo hardware in pochi minuti.