2010-08-24 4 views
6

Ho due file video MTS, ciascuno della durata di 2 minuti. Devo essere in grado di unire i file insieme e convertire il formato in MPEG4. Ho una riga di comando adatta per convertire MTS in MP4 ma non so come unire i file insieme in primo luogo.Utilizzo di FFMPEG per unire insieme due file MTS

Alcuni articoli sul web suggeriscono utilizzando il comando CAT, come:

cat video1.mts video2.mts > whole_video.mts 

Tuttavia questo non funziona e secondo FFMPEG, "whole_video.mts" è lunga solo 2 minuti, non 4 minuti.

Qualcuno sa come unire i file insieme? FFMPEG è il miglior programma da usare per fare questo? Grazie in anticipo.

risposta

8

Di seguito ha funzionato perfettamente per me (cioè con conseguente senza giunzioni):

ffmpeg -i "concat:00019.MTS|00020.MTS|00021.MTS|00022.MTS" output.mp4 
+0

Aggiungo semplicemente questo come newbie: ho dovuto 'cd' nella cartella di origine ed eseguito il comando da lì (ho anche copiato i file ffmpeg nella cartella ma questo probabilmente non è necessario). Per prima cosa ho provato a "cd' in ffmpeg folder run command e uso percorsi assoluti per i file da concatenare. Non ha funzionato. –

+0

Ha funzionato bene per me. C'è un modo per farlo senza ricodificare? Ho provato "output.MTS" ma sembrava ancora voler passare attraverso frame (era più veloce però). – dgig

+2

Aggiungi '-codec copy' alla riga di comando. – TobiX

1

OK, l'ho ordinato. Utilizzando le più recenti versioni SVN di FFMPEG, x264 e MP4Box (GPAC), ecco quello che ho fatto ...

Usa ffmpeg per convertire i file MTS in MP4 come normale:

ffmpeg -i video1.mts -vcodec libx264 -deinterlace -crf 25 -vpre hq -f mp4 -s hd480 -ab 128k -threads 0 -y 1.mp4 
ffmpeg -i video2.mts -vcodec libx264 -deinterlace -crf 25 -vpre hq -f mp4 -s hd480 -ab 128k -threads 0 -y 2.mp4 

Usa MP4Box di aderire al MP4 file insieme:

MP4Box -cat 1.mp4 -cat 2.mp4 output.mp4 

Questo unisce i file insieme in "output.mp4", però quando uso "ffmpeg -i output.mp4", si legge la durata è più lungo che dovrebbe essere. Per risolvere questo problema, ho dovuto utilizzare nuovamente FFMPEG:

ffmpeg -i output.mp4 -vcodec copy -y final.mp4 

E voilà! La ricerca del file "final.mp4" usando FFMPEG mostra la durata corretta e il video funziona correttamente.

Spero che questo aiuti qualcun altro a sperimentare lo stesso problema.

+0

ottengo questo errore, quando provo il primo comando di cui sopra: "File di preset 'hq' non trovato" –

+0

Guarda la documentazione di ffmpeg. "hq" è stato sostituito qualche tempo fa. – Reado

+1

Il primo passaggio ricodifica i file e perde la qualità. – TobiX

3

Utilizzo di cat works. È solo che i video player saranno piuttosto ingannati dalla lunghezza del video durante la lettura dei video whole_video risultanti. In genere si verificherà un improvviso salto di data e ora in cui il file è stato precedentemente tagliato. Ma va bene. Puoi codificarlo e otterrai un file con data e ora corretta.

La codifica con ffmpeg e quindi l'unione con MP4Box è una cattiva idea. Otterrete brutte immagini con blocchi mancanti nella posizione di incrocio se il secondo file non inizia con un fotogramma chiave (che si verifica quando è stato tagliato da una videocamera a causa della limitazione del file da 2 GB). Unisciti e quindi codifica, non il contrario.