Unire H264 * senza * ricodifica


39

Ho due metà di un singolo spettacolo in due file .MP4, codificati in H264. Vorrei unirmi a loro senza ricodificare.

È possibile?

Sono riuscito a creare un video unito come file Quicktime (.mov) utilizzando Quicktime Pro, ma Quicktime Pro non lo convertirà nuovamente in .MP4 senza ricodifica. Ciò può essere dovuto al fatto che guardando all'interno del file .mov, i due video H264 sono ancora separati come singoli "oggetti".

Sto anche lottando con MPEG StreamClip senza raggiungere una soluzione reale. Ma potrei aver perso qualcosa.

Si noti che non ho lo stesso problema con i file MPEG2. Posso esportarli in un contenitore .MPEG o in un file .TS, ad esempio, e quindi posso unirli senza ricodificare utilizzando MPEG Streamclip.

Qualsiasi suggerimento è benvenuto, preferibilmente utilizzando il software Mac.


1
Naturalmente i video devono avere gli stessi aspetti per essere uniti senza ricodifica (stesse dimensioni, bitrate, ecc.). Dovresti essere in grado di farlo in VirtualDubMOD: apri MP4, quindi Aggiungi segmento .
Synetech

Risposte:


41
ffmpeg -i q.mp4 -c copy -bsf h264_mp4toannexb q.ts

ffmpeg -i r.mp4 -c copy -bsf h264_mp4toannexb r.ts

ffmpeg -i "concat:q.ts|r.ts" -c copy -bsf aac_adtstoasc qr.mp4

Come concatenare il file flv in uno


Cosa succede se è m4v (non h264 mp4), quale bsf dovrebbe essere usato?
Edison,

2
Ho lasciato -bsf aac_adtstoascil comando concat
Csaba Toth

Avevo bisogno di abbandonare tutte le -bsfdiscussioni, quindi ha funzionato per me.
KittMedia,

Facendo questo su MacOS 10.13.3, ho omesso tutte le -bsf xxxcose con buoni risultati. Tuttavia, la seconda volta che l'ho provato, la seconda metà del film combinato è stata corrotta. Si scopre che, per ragioni sconosciute, il freno a mano aveva codificato le due metà con larghezze diverse (640 contro 636). Avevo usato lo stesso preset in entrambi i casi. Comunque, sono tornato indietro e ho usato di nuovo il freno a mano nel 1 ° tempo, che ora corrispondeva al 2 ° tempo. Il film ricomposto andava bene. Suggerimento: exiftool mostrerà tutto ciò che riguarda un file mp4 / m4v.
Jamie Cox,

15

MP4Box farà questo per te:

MP4Box -cat File01.m4v -cat File02.m4v File-joined.m4v

MP4Box è multipiattaforma e funziona su OSX, tuttavia l'ho provato su Ubuntu Linux con video H264 creati da Handbrake per iPhone 4S.

Funziona abbastanza velocemente poiché i file non vengono ricodificati.


1
Funziona alla grande. Utilizzare sudo apt-get install gpacper installarlo. Puoi utilizzare questa riga di comando se hai molti file da unire:MP4Box $(for file in single*m4v; do echo -cat $file; done) joined.m4v
guettli

2

La scelta del codec MP4 Quicktime ha una modalità "pass through".

Ecco una ricetta dettagliata per unire due video MP4 H264, usando Quicktime. Nota che Quicktime X non è ancora abbastanza avanzato, quindi usa Quicktime 7 (un'installazione opzionale con Snow Leopard):

  1. Apri i due video H264 in Quicktime 7. Supponiamo che si chiamino video1.mp4 e video2.mp4.
  2. Lavorando su video1.mp4, seleziona Tutto, quindi Copia.
  3. Passa a video2.mp4, assicurati che il "cursore" sia all'inizio del video, quindi Incolla. Ciò inserisce il contenuto di video1.mp4 nella parte anteriore di video2.mp4.
  4. Questo passaggio è probabilmente facoltativo . "Salva con nome" il video2.mp4 modificato. Sarai in grado di salvare solo in formato .mov. Ho salvato come film autonomo, ma suppongo che funzionerebbe anche un film di riferimento. Ho usato il nome del file "video.mov".
  5. Selezionare "Esporta" nel menu file per esportare video.mov nel file H264 unito. "Esporta" per selezionare è "Film in MPEG-4". L'impostazione predefinita non è importante, ho scelto "LAN / Intranet". Il preset non è importante perché lo sostituiamo nel passaggio successivo.
  6. Fai clic su "Opzioni" per accedere alla finestra di dialogo delle impostazioni. Nel riquadro Video, "Formato video" è selezionato come "H.264". Fai clic sul menu, seleziona "Pass Through". Come previsto, tutte le altre opzioni verranno disabilitate.
  7. Fai clic su OK, quindi su Salva e guarda il tuo file unito essere salvato alla velocità del tuo disco rigido.

In alternativa, è possibile utilizzare SimpleMovieX , un editor video shareware che pubblicizza esattamente questo come funzionalità.


1
Il salvataggio in mov suppongo che sfortunatamente avrà bisogno di qualche forma di ricodifica.
Csaba Toth,

0

Penso che ciò dovrebbe essere possibile, anche se le due parti potrebbero dover essere gli "stessi" determinati modi (risoluzione, ecc.) Affinché il join funzioni. Sembra che probabilmente sarà il caso della tua situazione.

Potresti provare questo strumento: http://www.smlabs.net/tsmuxer_en.html ... Non l'ho usato ma elenca specificamente i file di join come parte del suo set di funzionalità e H.264 è una delle codifiche supportate.


Grazie per il link Non ho potuto provarlo poiché il sito dice che questo programma non supporta Snow Leopard. Inoltre, ho appena trovato una soluzione funzionante usando solo Quicktime (vedi la mia risposta). Inoltre, anche se in questo caso non lo so, alcuni strumenti pubblicizzano l'unione dei file video, ma lo fanno con la ricodifica completa, il che è fuorviante.
jdmuys,

Mie scuse; Ho letto male quel pezzo sul sito. Sono contento che tu abbia trovato un approccio più semplice - mi è sembrato strano che fosse necessario ottenere uno strumento speciale per questo.
Zac Thompson,

0

Usa mkvtoolnix . Quindi apri "mkvtoolnix-gui.exe" (in Windows 8.1 a 64 bit si trova in: C: \ Programmi \ MKVToolNix \ mkvtoolnix-gui.exe). Aggiungi il primo file. Quindi selezionare questo primo file e fare clic con il tasto destro del mouse su "Aggiungi file" e selezionare i file che si desidera unire. Forse cambia la cartella di destinazione e il nome file. Quindi, infine, fai clic su "Avvia multiplexing".

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.