Playist intelligente per VLC

Licenza

Creative Commons License
Questa guida è protetta da licenza Creative Commons di tipo "Creative Commons Attribuzione-Non commerciale-Condividi allo stesso modo 2.5 Italia License" e appartiene a Stefano Droghetti. Significa che potete copiare, diffondere, modificare, pubblicare liberamente ogni contenuto a patto che:
1) sia sempre citata la fonte (o il nome dell'autore o un link a questo sito)
2) non sia utilizzato per scopi commerciali. Se intendete utilizzare alcuni contenuti di questo sito per attività commerciali o che comunque producano profitto economico, dovete contattare l'autore per definire eventuale nuove licenze.
3) non venga modificato o, se modificato, lo sia solo per produrre contenuti con la stessa licenza (attribuzione / non commerciale / condividi allo stesso modo)

Introduzione

Mi è capitato spesso di dover visualizzare più film uno dopo l'altro, ma con impostazioni diverse da quelle di default, e persino diverse tra i vari file.

Mi spiego meglio: immaginate di voler proiettare un film in due parti. Diciamo che l'avete nella cartella /media/disk/cinema (o se siete al paleolitico e usate Win, diciamo in C:\film e virus) e che si chiama "Il mondo di Senbee" parte 1 e parte 2 (non cercatelo su IMDB, me lo sono appena inventato, per vostra fortuna).
Immaginate che la parte 2 abbia un'aspect ratio sbagliata, cioè che sia "schiacciato", che sia in 4:3 invece che in 16:9 (per un difetto del cretino che l'ha rippato, per esempio). Immaginiamo inoltre che il film abbia doppio audio: una traccia doppiata in svervegio (in Svervegia i film immaginari salgono sempre nella top 10) e una originale in inglese. Infine immaginiamo che i due file siano corredati da sottotitoli in inglese e in italiano, e che vogliamo vedere quelli in italiano.
La cartella /media/disk/cinema perciò ha i seguenti file:

Il mondo di Senbee parte 1.avi
Il mondo di Senbee parte 1.english.srt
Il mondo di Senbee parte 1.italiano.srt
Il mondo di Senbee parte 2.avi
Il mondo di Senbee parte 2.english.srt
Il mondo di Senbee parte 2.italiano.srt


Se mettiamo in playlist di VLC i due filmati, avremo un effetto orribile: vedremo entrambe le parti con sottotitoli in inglese (nell'alfabeto "english" viene prima di "italiano") e con audio svervegio, e la seconda parte sarà schiacciata per il difetto nell'aspect ratio.
La playlist non ci dà la possibilità di scegliere i parametri che vogliamo per ogni file.
Come fare?

Creazione della playlist

VLC, persino nella versione per Windows, per fortuna permette ampio controllo da riga di comando. Basterà dire a VLC la sequenza dei file da visualizzare con i rispettivi parametri, e il gioco sarà fatto.

La sintassi è:
vlc opzioni generali file1 opzioni per file1 file2 opzioni per file2 ...

Le opzioni generali hanno questa sintassi:
--opzione valore

Le opzioni relative al singolo file hanno questa sintassi:
:opzione=valore

Le opzioni relative al singolo file sovrascrivono quelle generali e quelle di default.

Le opzioni più importanti sono:

fullscreen (lancia il film a pieno schermo)
no-video-title-show (non visualizza il fastidioso nome del file all'inizio del film)
sub-file valore (specifica quale file sottotitolo si vuole vedere: meglio usare le virgolette)
aspect-ratio valore (il valore deve essere per esempio 16:9 oppure 4:3 eccetera)
monitor-par valore (imposta le proporzioni del pixel: vedi nota in fondo a questo post)
audio-track valore (il valore è un intero da 0 in poi, e indica quale traccia audio riprodurre. In genere se non va bene quella di default dobbiamo indicare la seconda, cioè 1)

Ci sono una miriade di altre opzioni, che potete vedere digitando nel terminale:

vlc -H | less

Tornando al nostro esempio, ci basterà impostare per tutti i file il fullscreen, la traccia audio e la mancanza del titolo, e per ogni file l'aspect ratio e il file sottotitolo.

Quindi il comando diventa:

vlc --fullscreen --no-video-title-show --audio-track 1 "/media/disk/cinema/Il mondo di Senbee parte 1.avi" :sub-file="/media/disk/cinema/Il mondo di Senbee parte 1.italiano.srt" "/media/disk/cinema/Il mondo di Senbee parte 2.avi" :sub-file="/media/disk/cinema/Il mondo di Senbee parte 2.italiano.srt" :aspect-ratio=16:9

Ovviamente se continuate a ostinarvi a usare (o meglio a farvi usare da) Windows dovete mettere "C:\film e virus\ eccetera invece di "/media/disk/cinema/ eccetera.

Se poi vogliamo strafare, basterà preparare questo comando in un file di testo, da lanciare con un comodo doppio click (lo possiamo fare anche su Windows, chiamando il file testo qualchecosa.bat).
Su Ubuntu occorre scrivere "#!/bin/sh" all'inizio del file di testo. Nel nostro caso diventa:

#!/bin/sh
vlc --fullscreen --no-video-title-show --audio-track 1 "/media/disk/cinema/Il mondo di Senbee parte 1.avi" :sub-file="/media/disk/cinema/Il mondo di Senbee parte 1.italiano.srt" "/media/disk/cinema/Il mondo di Senbee parte 2.avi" :sub-file="/media/disk/cinema/Il mondo di Senbee parte 2.italiano.srt" :aspect-ratio=16:9


Su Ubuntu, dopo averlo salvato (per esempio sulla Scrivania) con un nome qualsiasi, clicchiamoci col tasto destro, Proprietà, Permessi, e selezioniamo "Consentire l'esecuzione del file come programma".
Facendo doppio click sul file così creato, ci verrà chiesto se vogliamo eseguirlo. Potremo scegliere di eseguirlo normalmente oppure (è uguale) da riga di comando. Nel caso della riga di comando, ci potrebbe rendere molto cool nel caso che ci troviamo in una sala con del pubblico e stiamo gestendo un proiettore (la riga di comando, nonostante la sua semplicità, fa credere ai winari che chi usa Linux sia un genio informatico pazzo, un pozzo di scienza, un inarrivabile guru, un hacker supremo: pensate come sono messi male! ^__^).

Infine, occorre spiegare cos'è e a cosa serve l'opzione monitor-par, che sta per "pixel aspect ratio".
I monitor che quasi tutti avete (e che ho anch'io) hanno proporzioni 5:4, quindi in genere supportano una risoluzione 1024x768 o 1280x1024 (se provate a fare la fattorizzazione di queste due frazioni vedrete che si tratta sempre di 5/4). Se, come me, avete il PC di fianco al TV al plasma o LCD, probabilmente non fate altro che staccare il monitor e attaccare il TV per vedere i film, visto che quasi tutti i televisori plasma o LCD supportano tranquillamente le risoluzioni e le frequenze dei monitor LCD da computer. Però passando da 5:4 a 16:9 tutto appare schiacciato, e si diventa matti a ricostruire la ratio del film, o a riavviare la grafica di Ubuntu sperando che xorg si "accorga" del modello del televisore e imposti la risoluzione giusta (cosa che a casa mia non accade), o a modificare ogni volta la risoluzione dello schermo sperando di ricordarsi di rimettere la vecchia risoluzione prima di passare di nuovo il cavo al monitor. Decisamente una rottura.
Il parametro "monitor-par" ci viene in aiuto: in pratica diciamo a VLC che il monitor che stiamo usando non ha i pixel perfettamente quadrati, ma leggermente schiacciati, quel tanto che fa la differenza tra 5:4 e 16:9.
Ora: quant'è questa differenza? Di quanto viene schiacciato il pixel passando da 5:4 a 16:9?
La risposta è semplicissima: basta dividere 16/9 per 5/4, che fa 1,42 (2 periodico, ma non ce ne frega nulla).
Quindi per correggere l'immagine di un film proiettato su un TV 16:9 che "schiaccia" il desktop di Ubuntu, basta mettere come parametro --monitor-par 1.42 (oppure :monitor-par=1.42 se relativo a un solo file).