Linux – Concatenare due file .avi

Quante volte vi è capitato di scaricare un film e di ritrovarvi con due video diversi per primo e secondo tempo? Mai, perchè scaricare film da internet è illegale. Ma supponiamo che un parente di un amico del vostro macellaio di fiducia avesse un problema del genere, potreste consigliargli questo semplice metodo per risolverlo.

Per cominciare si utilizza l’utility cat per concatenare i due file. Come? L’utility cat fa parte delle core-utils di di ogni distribuzione Linux e dato un file ne stampa il contenuto sullo standard output, dati due (tre o quattro, o quanti ne volete voi) file li stampa in sequenza. Utilizzando la redirezione dell’output è possibile creare un unico file che sia la concatenazione dei precedenti.

cat primotempo.avi secondotempo.avi > filmcompleto_tmp.avi

In questo modo film completo_tmp.avi conterrà sia il primo che il secondo tempo. Ma se lo aprite con un qualsiasi editor video non riuscirete a vedere il secondo tempo perchè nei primi bit del file ci sarà scritto da qualche parte quanto è lungo il video che stiamo visualizzando, ma questa informazione sarà errata poichè sarà relativa alla lunghezza del primo video e quindi il vostro riproduttore video non sarà in grado di leggere il file correttamente.

Qui entra in gioco mencoder, un encoder video molto potente. Su alcune distribuzioni è installato con un suo pacchetto, mentre su altre (ad esempio dalla Slackware 14 da cui sto scrivendo) fa parte del pacchetto mplayer. Cercate istruzioni su come installare mencoder sulla vostra macchina. Una volta fatto non vi resta che eseguire il seguente comando:

mencoder -forceidx -oac copy -ovc copy filmcompleto_tmp.avi -o filmcompleto.avi

Finito. Adesso patatine, birra e… ridate tutto al parente dell’amico del vostro macellaio.

EDIT

In realtà ho scoperto che si può fare il tutto senza passare cat. Basta un comando come il seguente:

mencoder -oac copy -ovc copy -o filmcompleto.avi primotempo.avi secondotempo.avi