Come posso unire due file mp4 senza perdere la qualità?


51

Ho due file mp4 di alta qualità, che sono di due parti dello stesso spettacolo.

Voglio unirli insieme in 1 file e di solito uso VirtualDub per unire i miei file ... Ma non sembra supportare mp4.

Quali alternative sono disponibili (in particolare quelle che non richiedono la ricodifica)?


Risposte:


41

Di solito uso VirtualDub per unire i miei file, ma non sembra supportare mp4. Quindi quali alternative ci sono?

Avidemux . È proprio come VirtualDub, solo con più formati supportati e codec e filtri integrati. Lo uso sempre in preferenza; si unisce bene ai file AVC + AAC.MP4 (senza ricodifica).

Per unirti a loro in AviDemux:

  1. File -> Apri -> Seleziona file
  2. File -> Aggiungi -> Seleziona file
  3. Imposta tutto su Copia
  4. File -> Salva -> Nome file
  5. Aspettare..

Secondo i forum AViDemux, questo processo di partecipazione è senza perdite ( http://www.avidemux.org/smf/index.php?topic=9467.0 )


sì, sembra che funzioni perfettamente nel mantenere l'audio sincronizzato con il video, mentre le altre persone che rispondono a questa domanda sono discutibili su questo IMHO.
Djangofan,

1
Ho provato ad usare Avidemux per unire due file insieme ma l'audio è diventato non sincronizzato.
GiddyUpHorsey,

Puoi avere problemi di sincronizzazione quando la quantità di materiale audio disponibile non corrisponde alla lunghezza dei fotogrammi video o c'è corruzione del flusso. Potresti riuscire a risolverlo con le funzionalità di "correzione dello stream" di VideoRedo o ProjectX.
bobince

1
Ma questo metodo ha funzionato: superuser.com/a/255566/1780 Evviva!
Christopher Galpin,

4
Se usi AviDemux per unire due file Mp4, non dimenticare di selezionare l'opzione Demux Mp4 nell'angolo in basso a sinistra. Altrimenti potrebbe provare a convertirlo in un avi!

28

Puoi farlo con ffmpeg:

mkfifo temp0 temp1
ffmpeg -i input0.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -y temp0 2> /dev/null & \
ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -y temp1 2> /dev/null & \
ffmpeg -f mpegts -i "concat:temp0|temp1" -c copy -absf aac_adtstoasc output.mp4

Questo non ricodifica nulla, li inserisce in un nuovo contenitore del flusso di trasporto, il che li rende più facili da concatenare e quindi li ricatena in un MP4. Se output.mp4 esiste già, il comando fallirà. La versione precedente utilizza pipe denominate, se utilizzi un sistema che non supporta quelli che dovresti utilizzare file intermedi (come Windows):

ffmpeg -i input0.mp4 -c copy -bsf:v h264_mp4toannexb temp0.ts
ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb temp1.ts
ffmpeg -i "concat:temp0.ts|temp1.ts" -c copy -bsf:a aac_adtstoasc output.mp4

qualcuno può spiegare come si fa avconvinvece di ffmpeg? Sono stato in grado di completare i primi due passaggi, ma l'ultimo non riconosce l'opzione-absf
becko

@becko Vedi la mia modifica. Ora dovresti usare un identificatore di flusso (vedi qui libav.org/avconv.html#Advanced-options ).
slhck,

2
+1 solo per riferimento futuro, è possibile sostituire avconvper ffmpegnei comandi di cui sopra e che funzionerà.
becko,

15

Demolitore Concat

Il demuxer concat è stato aggiunto a ffmpeg 1.1. Se la tua versione di ffmpeg è obsoleta, ottieni il binario statico più recente da qui: http://www.ffmpeg.org/download.html

Istruzioni

Crea un file mylist.txtcon tutti i file che desideri concatenare nel seguente formato (le righe che iniziano con un trattino vengono ignorate):

# this is a comment
file '/path/to/file1'
file '/path/to/file2'
file '/path/to/file3'

Si noti che questi possono essere percorsi relativi o assoluti. Quindi puoi codificare i tuoi file con:

ffmpeg -f concat -i mylist.txt -c copy output

È possibile generare questo file elenco con un ciclo bash per, o usando printf. Uno dei seguenti genererebbe un file di elenco contenente ogni * .wav nella directory di lavoro:

for f in ./*.wav; do echo "file '$f'" >> mylist.txt; done
printf "file '%s'\n" ./*.wav > mylist.txt

Fonte: ffmpeg wiki


8

YAMB insieme a MP4BOX è una buona opzione.
Scarica entrambi e decomprimili (non è necessaria alcuna installazione e insieme sono circa 5 MB), in YAMB scegli Impostazioni e imposta il percorso della cartella di MP4box.
Per unire i file mp4, scegli Modifica> Fai clic su Unisci supportato ...


1
Sembra la soluzione migliore, mantenendo il formato del contenitore .mp4 che sembrerebbe l'opzione più attraente per l'autore ^^
Oskar Duveborn,

1
Dopo la difficoltà, ho usato questa configurazione: MP4Box_path = E: \ Software \ Video Editing \ Yamb-2.1.0.0_beta2 \ MP4Box \ MP4Box.exe nel tentativo di unire 4 file MP4 da 500 MB generati da AVIDemux. Non ha funzionato Il programma è rimasto seduto lì per 45 minuti senza fare nulla fino a quando non ho finalmente rinunciato.
Djangofan,

1
ho avuto problemi con questo metodo a causa di problemi di sincronizzazione audio. è stato un incubo ... non riprovarci.
Djangofan,

6

SUPER © (Encoder e renderer Universal Player semplificato) fornisce il seguente processo di output aggiuntivo:

È possibile elaborare qualsiasi file multimediale di input supportato:

      o Join Format-Identical Files.
      o Mux Video & Audio Streams.
      o DeMux Extract Streams. 

ovviamente, MP4 è un formato supportato.

SUPER © è freeware.


5
La sua interfaccia utente è la più orribile che abbia mai visto in vita mia. Non sto scherzando, è semplicemente orribile. Lo sottolineo ancora una volta: non posso nominare un'interfaccia peggiore, sono serio, non ho mai visto nulla al di sotto della "soglia SUPER".
Camilo Martin,

5

Prova a utilizzare il contenitore video Matroska.

Innanzitutto, hai bisogno di mkvtoolnix . Scaricalo e installalo, quindi devi avviare la GUI di mkvmerge (a meno che non ti piacciano gli strumenti da riga di comando, che va bene per me, anche se potresti voler guardare la sezione di collegamento dei file della documentazione di mkvmerge ).

Aggiungi il tuo primo file facendo clic su "aggiungi". Quindi, fai clic su "aggiungi" e apri il tuo secondo file. Imposta il file di output, premi "Inizia il mixing" in basso e via!

Se il contenitore non è adatto alle tue esigenze, puoi ricodificarlo o provare a convertirlo in un altro formato ... Sebbene MKV sia un contenitore davvero delizioso!


deve essere mescolato? non posso unirmi senza mescolare?
Djangofan,

Bene, se stai usando un container MKV, tecnicamente lo stai rimodellando. Provalo, non c'è penalità in tempo reale ...
Breakthrough

1

Se puoi riprodurli sul tuo sistema / avere un codec installato, Windows Movie Maker potrebbe essere il modo più rapido (e gratuito) di unire i due file. È quindi possibile utilizzare Virtualdub per convertire in un formato diverso.


Audacity sembra essere per i file audio. Questo è un file video.
Paolo Bergantino,

Mi dispiace, ho letto male, ho appena visto la parte MP e il mio cervello attraverso l'audacia.
William Hilsum,

Risposta di modifica ...
William Hilsum,

AFAIK, Movie Maker non supporta mp4 e la conversione in un formato diverso significa perdita di qualità che la domanda specifica come indesiderata.
Eran,

Ho provato MovieMaker su Windows 7 e l'audio non è più sincronizzato quando si uniscono file MP4 in un WMV. Questa opzione non funzionerà.
Djangofan,

1

Un'altra soluzione è Open Video Joiner . Fa anche effetti di transizione.

inserisci qui la descrizione dell'immagine


È uno shareware però. e per 30 $ non è economico solo unire i file video
Eran,

Si diceva che fosse freeware. Scusa se sono stato ingannato.
harrymc,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.