Unire filmati mp4 senza perdita di qualita'
Posted: Mon May 07, 2012 7:38 am
Sto cercando di fare un video-editing razionale, ovviamente sfruttando il piu' possibile la riga di comando. Ecco il workflow:
1. Prendere un filmato e convertirlo in mp4. Necessario per fixare gli header mp3 in alcuni formati:
2. Usare avidemux per tagliare original.mp4 in tante parti (part01.mp4 .. partN.mp4), utilizzando le impostazioni seguenti:
Ovviamente i tagli devono essere fatti sui b-frame.
3. Unire tra loro gli mp4.
Qui sorge il problema. Per non perdere qualita', ossia per non fare nessun tipo di re-encoding, l'unica soluzione che sono riuscito a trovare e' inglobare i filmati in un contenitore mkv:
Ora converto il file ottenuto in mp4, perche' 'sto matroska numme piace:
Quando vado a visualizzare il filmato con mplayer, ottengo la seguente linea inquietante:
Diciamo che la cosa e' abbastanza logica, credo che il file mkv sia composto dai vari filmati (entries) collegati in serie tra loro. Pero' vorrei che non comparisse. Allora ho provato a fare cosi':
L'arcano messaggio e' sparito, ma la grandezza in byte di final.mp4 e prova.mp4 sono diverse.
Vi chiedo di rispondere alle due domande sequenti:
1. Come mai? dovrebbero essere uguali, dal momento che in tutto il processo non c'e' stato re-encoding.
2. C'e' un altro modo per unire file mp4 senza fare re-encoding e senza passare per il formato mkv?
1. Prendere un filmato e convertirlo in mp4. Necessario per fixare gli header mp3 in alcuni formati:
Code: Select all
$ ffmpeg -i original.avi -c copy original.mp4Code: Select all
audio: copy, video: copy, format: mp43. Unire tra loro gli mp4.
Qui sorge il problema. Per non perdere qualita', ossia per non fare nessun tipo di re-encoding, l'unica soluzione che sono riuscito a trovare e' inglobare i filmati in un contenitore mkv:
Code: Select all
$ mkvmerge -o final.mkv part01.mp4 +part02.mp4 +part03.mp4Code: Select all
$ ffmpeg -i final.mkv -vcodec copy -acodec copy final.mp4Code: Select all
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x937d300] multiple edit list entries, a/v desync might occur, patch welcomeCode: Select all
$ mkvextract tracks final.mkv 1:video.mp4 2:audio.aacCode: Select all
$ ffmpeg -i audio.aac -i video.mp4 -acodec copy -vcodec copy -absf aac_adtstoasc prova.mp4Vi chiedo di rispondere alle due domande sequenti:
1. Come mai? dovrebbero essere uguali, dal momento che in tutto il processo non c'e' stato re-encoding.
2. C'e' un altro modo per unire file mp4 senza fare re-encoding e senza passare per il formato mkv?