Questa è una miniguida di base per transcodificare un filmato AVI in un DVD leggibile da un qualsiasi lettore DVD standard, su qualsiasi televisore.
Non pretende di essere una guida per la generazione di titoli, capitoli, menu e quant'altro. Con questo metodo otterrete un DVD molto semplice, che inizierà la riproduzione appena inserirete il disco nel lettore DVD e premerete il tasto "Play". Non avrete menu di sorta, tracce audio, video o sottotitoli da selezionare: è una transcodifica semplice e pulita, senza fronzoli o infiocchettature. Se volete creare un DVD con capitoli o menu questa guida non fa per voi.
Gli unici due programmi che dovrete avere sono ffmpeg e dvdauthor. Di seguito ho messo dei collegamenti alle homepage dei progetti e i metodi per ottenerli in distribuzioni Debian-like e Gentoo.
Moltissimi siti online diranno che avrete bisogno di molti altri strumenti per generare il vostro DVD video, ma per i DVD "fatti in casa" di solito si parte sempre da un unico filmato, e il formato più diffuso è il formato Microsoft AVI (Audio-Video Interleaved).
Con ffmpeg è comunque possibile convertire una vasta gamma di flussi video, tra cui WMV (Windows Media Video), flv (animazioni Adobe Flash), MPEG (in tutti i formati, ovvero DivX3/4/5, XviD, H.264, eccetera) e molti altri.
Quindi gli strumenti fondamentali sono solo i due elencati sopra.
FFmpeg da solo merita più pagine per essere studiato per bene ed avere un risultato ottimale alla fine della transcodifica. Le cose più importanti da sapere sono:
I televisori più diffusi hanno un rapporto 4:3 o 16:9 (chiamati anche widescreen). Bisogna porre attenzione a queste informazioni per effettuare una transcodifica soddisfacente: un rapporto sbagliato potrebbe causare uno "stiramento" della risoluzione, originando una distorsione del flusso video.
Per fare questo potete usare direttamente ffmpeg con qualche "artifizio" studiato ad hoc per filtrare solamente la risoluzione.
ffmpeg -i <filmato> 2>&1 | grep Video | awk '{ print $6 }'
La risoluzione è l'insieme di queste due coordinate a cui, da ora fino alla fine dell'articolo, ci riferiremo con X come la coordinata "base" del rettangolo contenente l'output della lettura del filmato, e con Y come coordinata "altezza" dello stesso rettangolo. Entrambe sono misurate in pixel.
Il rapporto è invece un numero puro, il quoziente che si ottiene dividendo la coordinata X per la coordinata Y e permette di effettuare, a rapporto costante, uno zoom dello stream video senza distorcere il video stesso.
La risoluzione ed il rapporto sono due valori molto importanti per transcodificare un flusso AVI in un DVD video in modo da occupare più spazio possibile su schermo, per potersi godere al meglio il flusso video, e per non avere brutte sorprese come le coordinate X o Y eccessivamente "dilatate".
In ogni caso, se il rapporto è relativamente vicino a 4:3 o 16:9 (come l'esempio sopra, 1.8 è molto vicino a 1.777777...) un ridimensionamento non è indispensabile e l'effetto "stiramento" è a malapena percettibile.
Ci concentreremo quindi su rapporti generalmente "fuori standard" o molto diversi da 4:3 o 16:9.
La transcodifica tramite FFmpeg si effettua sempre con la seguente linea di comando, leggermente modificata a seconda delle situazioni.
ffmpeg -i <file_input> -y -target ntsc-dvd -sameq -aspect <R> [-s <risoluzione>] [-padtop <superiore> -padbottom <inferiore>] [-padright <destra> -padleft <sinistra>] <output>
Il concetto fondamentale di questa pagina è riuscire a calcolare un numero di pixel necessari e sufficienti per creare delle bande nere laterali, o superiori e inferiori, in modo che il filmato abbia il rapporto giusto sul televisore su cui andremo a vedere il nostro film su DVD.
Una volta che si conosce il rapporto R = X / Y basta dividerlo per una delle coordinate massime raggiungibili dai rispettivi televisori, a seconda del rapporto stesso.
I valori di pixel delle bande nere devono SEMPRE essere multipli di 2. Se sono dispari potete renderli pari aumentandoli o diminuendoli di 1; la differenza di rapporto è pressoché impercettibile.
Questo scenario va diviso in due casi.
1. TV 4:3: dividete 720 per il rapporto trovato, otterrete la coordinata Y mancante. Sottraetela a 576 e dividete il risultato per 2, ottenendo il valore di -padtop e -padbottom. Se Y si aggira intorno a 404 (da 400 a 408) il rapporto del filmato è 16:9 e il pad superiore e inferiore è 86.
2. TV 16:9: il rapporto va moltiplicato per 404, otterrete la coordinata X mancante. Questa va sottratta a 720 e il risultato va diviso per 2, ottenendo il valore di -padleft e -padright. Se X si aggira intorno a 540 (da 536 a 544) il rapporto del filmato è 4:3 e i pad laterali sono larghi 90 pixel.
Risoluzione esempio: 640x400 (R=1.6)
Per un TV 4:3 abbiamo 720 / 1.6 = 450; (576 - 450) / 2 = 63 (possiamo arrotondarlo a 64 o 62):
ffmpeg -i <file_input> -y -target ntsc-dvd -sameq -aspect 4:3 -s 720x450 -padtop 64 -padbottom 64 <output>
Per un TV 16:9 abbiamo 404 * 1.6 = 646 (circa); (720 - 646) / 2 = 37 (possiamo arrotondarlo a 38 o 36):
ffmpeg -i <file_input> -y -target ntsc-dvd -sameq -aspect 16:9 -s 646x404 -padright 38 -padleft 38 <output>.
Il rapporto va sempre diviso da 720, otterrete la coordinata Y mancante.
1. TV 4:3: Y va sottratta a 576; il risultato va diviso per 2 e va messo nelle opzioni -padtop e -padbottom.
2. TV 16:9: Y va sottratta a 404; dividete il risultato per 2 e va messo nelle opzioni -padtop e -padbottom. Se Y si aggira intorno a 404 (400 - 408) non è necessario generare le bande, quindi potete omettere le opzioni -s, -padtop e -padbottom.
Risoluzione esempio: 700x300 (R=2.333333333, possiamo arrotondare a 2.34)
Per un TV 4:3 abbiamo 720 / 2.34 = 308 (circa); (576 - 308) / 2 = 134
ffmpeg -i <file_input> -y -target ntsc-dvd -sameq -aspect 4:3 -s 720x308 -padright 134 -padleft 134 <output>
Per un TV 16:9 abbiamo 720 / 2.34 = 308 (circa); (404 - 308) / 2 = 48.
ffmpeg -i <file_input> -y -target ntsc-dvd -sameq -aspect 16:9 -s 720x308 -padright 48 -padleft 48 <output>
Si ha un caso base quando R è 16:9 e lo volete vedere su un televisore widescreen, oppure R è 4:3 e lo vedrete su televisori standard. In questo caso si possono omettere del tutto le opzioni -s, -padtop, -padbottom, -padleft, -padright e -aspect, e i relativi valori. Le invocazioni di ffmpeg diventano identiche e standard:
ffmpeg -i <file_input> -y -target ntsc-dvd -sameq <output>
Potrebbe sembrarvi complicato. Anzi, è complicato. Però io trovo che sia il modo migliore di controllare l'output MPEG di FFmpeg, senza contare il fatto che potete ridimensionare a piacimento le bande nere in modo da renderne una più grande dell'altra, per lasciare più spazio sopra o sotto, o di fianco, per aggiungere effetti "esotici" ad un filmato (come titoli di testa, di coda, sottotitoli, descrizioni, didascalie...).
Il particolare procedimento che permette di creare la struttura di un DVD video (con le classiche cartelle video_ts e audio_ts e tutti i file VOB e IFO) prende il nome di authoring, e un authoring testuale molto semplice si può fare con dvdauthor.
Una volta che abbiamo ottenuto la nostra transcodifica mpg con FFmpeg possiamo direttamente "dare in pasto" il filmato mpg a dvdauthor e fargli creare la struttura DVD video. Assicuratevi di avere sufficiente spazio su disco per la creazione della struttura; potrebbe richiedere una capacità residua variabile compresa tra 1GB e 8GB, dipende generalmente dalla qualità del filmato di partenza, dal bitrate, dai codec video e audio, dalla lunghezza dei flussi...
dvdauthor --title -o <cartella> -f <mpg>
La prima fase di authoring potrebbe impiegare un tempo relativamente lungo. In compenso, la seconda e ultima fase di authoring è pressoché istantanea e genera la sola tabella dei contenuti (TOC, Table of Contents) del DVD video, e si fa semplicemente con questa linea:
dvdauthor -o <cartella> -T
Al termine dell'authoring avrete una struttura DVD video pronta per essere trasferita su DVD.
L'ultima cosa che rimane da fare è generare il filesystem ISO9660 che verrà poi scritto sul DVD video. L'ultimo passo è molto semplice e lo descrivo in dettaglio in questo articolo.
Questi due indirizzi Internet in particolare sono ricchi di informazioni sui procedimenti utilizzati nella presente guida, e li ho consultati per perfezionare le linee da seguire, oltre a rendere il processo più semplice possibile.
MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .
Copyright 2008 MegaLab.it - Tutti i diritti sono riservati