GLM - 18/6/2018 - 13:45


Classifica dei relatori GLM 2014 (per numero di lezioni svolte)

  1. [9] Samuele Cacchiarelli
  2. [6] Andrea Bianchini
  3. [6] Gianluca Gabrielli
  4. [1] Matteo Ciccioli
  5. [1] Fabio Pagnotta
  6. [1] Alessandro Zampa
  7. [1] Emanuele
  8. [1] Roberto Marozzi
  9. [1] Giampiero Rubini

Vuoi diventare relatore GLM? presenta anche tu una lezione su un argomento che più ti piace relativo a Linux o al mondo dell'OpenSource


Archivio news

server glm
Il nostro Server

bella gnocca freebsd
FreeBSD It's Here!

Da DVD a DivX con LINUX

Programma richiesto: MPlayer

I sorgenti sono reperibili all'indirizzo http://mplayerhq.hu
Non tratterò al momento la sua compilazione essendo questa abbastanza laboriosa (più da spiegare che da fare); vi rimando pertanto alla documentazione ufficiale che troverete all'interno del pacchetto.
Vi ricordo soltanto che per una corretta compilazione occorre scaricare e compilare/installare i seguenti elementi:

Tutto ciò è ovviamente reperibile facendo capo al sito indicato.
Si sconsiglia inoltre l'utilizzo di gcc-2.96 per la compilazione di MPlayer.
Leggete attentamente la documentazione allegata ai sorgenti.

Creare DIVX con MPlayer/MEncoder

L'utilizzo di mplayer e di mencoder (programma incluso nel pacchetto MPlayer) per creare dei divx non è certo il più comodo né il più facile, ma garantisce certamente un risultato di elevata qualità a parità di dimensione del file ottenuto. Tali programmi sono inoltre estremamente versatili sia in fase di encoding che di riproduzione: sarà ad esempio possibile creare divx con più sottotitoli da riprodurre a piacimento, estrapolare un secondo audio da utilizzare come seconda lingua sempre in fase di riproduzione e molte altre diavolerie più tecniche che non sto qui ad elencare.
Non spiegherò qui i dettagli del programma ma mostrerò più semplicemente quale procedura ho utilizzato io per creare un mio divx.
Leggetevi bene la documentazione allegata al programma o tenete sotto mano il manuale ($~man~mplayer) se volete saperne di più ;)

Seguendo alcuni semplici passaggi vediamo qui di seguito come è possibile creare un divx

Inserite il dvd ed eseguite mplayer, come nell'esempio seguente, per individuare in quale "titolo" è presente il film, quanti canali audio e quanti sottotitoli sono presenti in esso.Tali informazioni sono direttamente reperibili dal terminale dal quale si esegue mplayer. Questo il comando:

$ mplayer -v -vo null -dvd 1 -chapter 1

dove:
-v   è l'opzione "verbose" necessaria per avere più informazioni dall'output
-vo null  fa si che non venga visualizzato il video (al momento non serve)
-dvd 1 -chapter 1  indica che stiamo leggendo a partire dal titolo 1 capitolo 1

tra le varie e numerose informazioni che otteniamo dall'output di tale comando quelle che ci interessano sono al momento queste:


Reading disc structure, please wait...
There are 9 titles on this DVD.
There are 1 chapters in this DVD title.
There are 1 angles in this DVD title.

Sono presenti 9 titoli e nel titolo attuale (1) è presente un solo capitolo. Ovviamente non è questo il titolo dove è presente il film.Solitamente il titolo dove sono presenti i vari capitoli in cui è suddiviso il film è il secondo, ma non è sempre così; nel nostro caso infatti il titolo da prendere in considerazione è il 9 (l'ultimo).
Dal comando

$ mplayer -v -vo null -dvd 9 -chapter 1

osserviamo infatti le seguenti informazioni:

There are 9 titles on this DVD.
There are 16 chapters in this DVD title.
There are 1 angles in this DVD title.
[.....]
[open] audio stream: 0 audio format: ac3 (5.1) language: it aid: 128
[open] audio stream: 1 audio format: ac3 (5.1) language: en aid: 129
[open] audio stream: 2 audio format: ac3 (stereo) language: it aid: 130
[open] audio stream: 3 audio format: ac3 (stereo) language: en aid: 131
[.....]
[open] subtitle ( sid ): 0 language: it
[open] subtitle ( sid ): 1 language: en
[.....]
Movie-Aspect is 1.78:1
video_out->init(720x576->1024x576

Ovvero sappiamo che vi sono in questo "titolo" 16 capitoli
4 canali audio, (due it [128,130] e due en [129,131]).
2 sottotitoli (it:0, en:1)
e che il video ha una proporzione di 1.78:1
ed una dimensione di 1024x756

NOTA: Se non vi va di spulciarvi l'output di mplayer in questo modo potrete in alternativa utilizzare tcprobe (che fa parte del programma Transcode), che vi restituirà in maniera più concisa tutte le analoghe informazioni riguardanti le dimensioni del filmato (720x576), il suo aspetto in fase di riproduzione (16:9 ovvero 1.78:1) quanti titoli sono presenti e quanti capitoli vi sono in ogni titolo, l'id dei vari canali audio e dei vari sottotitoli presenti.

CROPPING e RESIZING

La stragrande maggioranza dei film presenta le solite bande nere ai margini superiore e inferiore.
Per poter ridurre al minimo la dimensione del divx ottenuto dall'operazione di rippaggio ed encoding spesso si preferisce oltre che scalare l'immagine anche tagliare via queste due bande. L'operazione in questione si chiama cropping.

Con mencoder, l'operazione può essere semplificata osservando i seguenti passaggi.:

Innanzitutto provvediamo a scalare il video mantenendo le proporzioni. Nel nostro caso 1024x576 ovvero 1.78:1 portiamo la nuova dimensione a 720x404 e iniziamo a codificare uno spezzone per avere poi una preview:

$ mencoder -dvd 9 -chapter 9 -ss 500 -endpos 10 -nosound -o prova.avi -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900:vhq-vop scale=720:404

-ss 500 -endpos 10
indicano di encodare a partire dal frame 500 per soli 10 secondi di film
-nosound
indica di non processare l'audio (non ci serve al momento)

-ovc lavc
indica che stiamo utilizzando "lavc" come sistema di codec video

-lavcopts vcodec=mpeg4:vbitrate=900:vhq

sono questi dei parametri specifici da dare
quando si utilizza "lavc".
Occorre almeno indicare il vcodec ed il vbitrate
Per adesso lasciate pure questi

-o prova.avi
è il nome che abbiamo dato al file avi

vediamone il risultato con il comando:

$ mplayer -vo xv prova.avi

Tale filmato sarà ovviamente più piccolo dell'originale, e presenterà le analoghe bande nere ai bordi orizzontali. Per eliminarle occorrerà innanzitutto determinare correttamente la regione da tagliare:

$ mplayer -vo null -vop cropdetect prova.avi


[....]
crop area: X: 2..719 Y: 52..357 (-vop crop=720:306:0:52)
crop area: X: 2..719 Y: 52..357 (-vop crop=720:306:0:52)
crop area: X: 2..719 Y: 52..357 (-vop crop=720:306:0:52)
[....]

dall'output di tale comando vediamo appunto quali sono i valori da aggiungere all' opzione -vop per poter poi ritagliare l'immagine eliminando i bordi neri.
Se volete osservare a video quale sarà la parte che verrà ritagliata date il seguente comando:

$ mplayer -vo xv -vop rectangle=720:306:0:52 prova.avi

tale comando disegnerà un rettangolo delle dimensioni sopra individuate e lo posizionerà correttamente al centro del filmato, mostrando l'area che rimarrà a seguito del taglio che effettueremo.
A questo punto abbiamo tutti gli elementi sufficienti per poter cominciare la codifica con mencoder.

Segue: Codifica a 2 o a 3 passaggi