web-dev-qa-db-fra.com

Rejoindre H264 * sans * réencodage

J'ai deux parties d'un spectacle dans deux fichiers .MP4, encodés en H264. Je voudrais les rejoindre sans recodage.

Est-ce possible?

J'ai réussi à créer une vidéo jointe sous forme de fichier Quicktime (.mov) à l'aide de Quicktime Pro, mais Quicktime Pro ne la reconvertira pas en .MP4 sans réencodage. Cela peut être dû au fait que, dans le fichier .mov, les deux vidéos H264 y sont toujours séparées en tant qu’objets "individuels".

Je suis également aux prises avec MPEG StreamClip sans parvenir à une solution réelle. Mais j'ai peut-être manqué quelque chose.

Notez que je n’ai pas le même problème avec les fichiers MPEG2. Je peux les exporter vers un conteneur .MPEG ou un fichier .TS, par exemple, puis les joindre sans recoder à l'aide de MPEG Streamclip.

Toute suggestion est la bienvenue, de préférence avec le logiciel Mac.

38
jdmuys

Le choix du codec MP4 Quicktime a un mode "pass through".

Voici une recette complète et détaillée pour joindre deux vidéos MP4 H264 à l’aide de Quicktime. Notez que Quicktime X n’est pas encore assez avancé, utilisez donc Quicktime 7 (une installation optionnelle avec Snow Leopard):

  1. Ouvrez les deux vidéos H264 dans QuickTime 7. Supposons qu’elles portent les noms video1.mp4 et video2.mp4.
  2. Travailler sur video1.mp4, Sélectionner tout, puis Copier.
  3. Basculez sur video2.mp4, assurez-vous que le "curseur" est au début de la vidéo, puis Coller. Cela insère le contenu de video1.mp4 à l'avant de video2.mp4.
  4. Cette étape est probablement optionnelle . "Enregistrer sous" le video2.mp4 modifié. Vous pourrez enregistrer au format .mov uniquement. J'ai enregistré en tant que film autonome, mais je suppose qu'un film de référence fonctionnerait également. J'ai utilisé le nom de fichier "video.mov".
  5. Sélectionnez "Exporter" dans le menu Fichier pour exporter video.mov vers le fichier H264 joint. Le "Export" à sélectionner est "Movie to MPEG-4". Le préréglage n'est pas important, j'ai choisi "LAN/Intranet". Le préréglage n’est pas important car nous le remplaçons à l’étape suivante.
  6. Cliquez sur "Options" pour accéder à la boîte de dialogue de configuration. Dans le volet Vidéo, "Format vidéo" est "H.264". Cliquez sur le menu, sélectionnez "Pass Through". Comme prévu, toutes les autres options seront désactivées.
  7. Cliquez sur OK, puis sur Enregistrer et regardez votre fichier joint enregistré à la vitesse de votre disque dur.

Vous pouvez également utiliser SimpleMovieX , un éditeur de vidéo shareware qui en fait exactement la publicité.

2
jdmuys
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

Comment concaténer un fichier flv en un seul

41
Steven Penny

MP4Box le fera pour vous:

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

MP4Box est multi-plateforme et fonctionne sur OSX. Cependant, j'ai essayé ceci sur Ubuntu Linux avec des vidéos H264 créées par Handbrake pour l'iPhone 4S.

Cela fonctionne assez rapidement car les fichiers ne sont pas ré-encodés.

15
thinkOfaNumber

Utilisez mkvtoolnix . Ensuite, ouvrez "mkvtoolnix-gui.exe" (sous Windows 8.1 64 bits, il se trouve dans l'emplacement suivant: C:\Program Files\MKVToolNix\mkvtoolnix-gui.exe). Ajoutez le premier fichier. Sélectionnez ensuite ce premier fichier, cliquez avec le bouton droit de la souris sur "ajouter des fichiers", puis sélectionnez le ou les fichiers que vous souhaitez fusionner. Peut-être changer le dossier de destination et le nom du fichier. Enfin, cliquez sur "démarrer le multiplexage".

0
Erb

Je pense que cela devrait être possible, bien que les deux parties aient besoin d'être "identiques" de certaines manières (résolution, etc.) pour que la jointure fonctionne. Cela semble être le cas avec votre situation.

Vous pouvez essayer cet outil: http://www.smlabs.net/tsmuxer_en.html ... Je ne l’ai pas utilisé mais il mentionne spécifiquement la jonction fichiers dans le cadre de son ensemble de fonctionnalités et H.264 est l’un des encodages pris en charge.

0
Zac Thompson