Comment puis-je fusionner ou concaténer deux ou plusieurs fichiers MP4 en créant un autre fichier MP4? [dupliquer]

14

Comment puis-je concaténer ou fusionner 2 fichiers MP4 ou plus, dans un fichier MP4 de sortie final également?

J'ai essayé dans la fenêtre DOS d'utiliser la commande COPY (je l'ai lue quelque part) mais elle ne fonctionne pas bien.

Mª Isabel Teixeira
la source
Voir également superuser.com/questions/43588/… pour plus d'informations. Je ne sais pas si je classerais cette question en double cependant.
Percée du
1
veuillez ajouter votre système d'exploitation en tant que balise.
tumchaaditya

Réponses:

12

MP4Box peut le faire, bien que vous souhaitiez peut-être utiliser une interface graphique comme YAMB ou My MP4Box GUI . (NB: Ce n'est pas mon programme personnellement, c'est juste le nom.) Les binaires MP4Box pour Windows sont disponibles sur ce site .

Exemple:

MP4Box -tmp $HOME -add vid.01.m4v \
    -cat vid.02.m4v -cat vid.03.m4v vid-out.mp4
afrazier
la source
4

Je recommanderais usind ffmpeg , qui est disponible pour Mac OS X, Linux et Windows .

Voici un bon exemple sur la façon de concaténer deux films: http://www.ffmpeg.org/faq.html#SEC27

Dans la dernière étape, vous devez simplement vous assurer de créer un conteneur MP4 pour le fichier résultant.

polémon
la source
Si je comprends bien la réponse ffmpeg FAQ donnée, cela ne peut pas être fait avec la vidéo MP4 (probablement H.264), car ce n'est pas l'un des "formats privilégiés".
ttarchala
@ttarchala: J'essaierais si cela peut être fait. J'ai déjà converti en MP4 avec FFmpeg, mais je n'ai jamais concaténé deux films. Aussi: je voudrais souligner que FFmpeg a un développement très rapide. Ce qui n'a pas fonctionné avec une version, pourrait fonctionner dans la seule suivante.
polemon
1
Toutes les versions de FFMPEG ne prennent pas en charge MP4. D'une part, c'est une technologie brevetée et sans doute il est illégal de distribuer des encodeurs MP4 aux États-Unis sans payer de frais. Cependant, de nombreuses versions peuvent le faire.
CarlF
@CarlF: Quant à Linux et Mac OS X, ce n'est pas vraiment un problème. Le code peut être distribué librement, donc en gros, quiconque construit son propre FFmpeg, tout va bien. En ce qui concerne les brevets, je voudrais partager un commentaire: je ne trouverai pas le site de côté pour le moment, mais le premier brevet à expirer pour AAC (qui est partiellement défini dans MPEG-4), est en 2022. Et c'est juste le premier, il y en a beaucoup d'autres qui doivent expirer jusqu'à ce que ce soit complètement légal ...
polemon
4

Vous pouvez essayer de le faire avec ffmpeg:

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

Cela ne réencode rien, il les place dans un nouveau conteneur de flux de transport, ce qui les rend plus faciles à concaténer, puis les concatène à nouveau dans un MP4. Si output.mp4 existe déjà, la commande échouera. La version ci-dessus utilise des canaux nommés, si vous êtes sur un système qui ne prend pas en charge ceux que vous devez utiliser des fichiers intermédiaires:

ffmpeg -i input0.mp4 -c copy -bsf h264_mp4toannexb temp0.ts
ffmpeg -i input1.mp4 -c copy -bsf h264_mp4toannexb temp1.ts
ffmpeg -i "concat:temp0.ts|temp1.ts" -c copy -absf aac_adtstoasc output.mp4
evilsoup
la source
si ce n'est pas h264 mais mpeg4?
Edison
2

Mise à jour: Je viens de vérifier avidemux car je l'ai installé, après avoir lu cette autre réponse. C'est ce que vous recherchez (je ne pensais pas qu'il pouvait faire MP4 à cause de son nom…).

Je pense que VirtualDubMod est capable de mp4, je ne l'ai pas utilisé, donc je ne sais pas pour sûr.

Vous voudrez peut-être consulter MeGUI . Il s'agit d'une application et d'outils plutôt complexes et riches en fonctionnalités.

L'outil d'intégration dans un conteneur (mp4 dans votre cas) s'appelle muxer, mais on ne peut probablement pas les concaténer.

Vous pouvez l'utiliser en combinaison avec VirtualDub. Virtualdub pour concaténer les flux vidéo, et le multiplexeur pour en faire à nouveau un mp4 (sans avoir à recoder).

Kissaki
la source
1

Je le fais avec mencoder, après les avoir convertis en avi avec ffmpeg

voici un script simple, en supposant que vous avez 15 fichiers, nommé 01.mp4 ... 15.mp4

#!/bin/bash
for j in `seq -w 1 15`;
do
    echo converting file $j.avi
    ffmpeg -i $j.mp4 $j.avi        

    echo adding file $j.avi to list
    z="$z $j.avi"
done 

echo doing append
mencoder -oac copy -ovc copy $z -o all.avi

à votre santé

laplace
la source
1

Voici la commande:

ffmpeg -i concat:"video1.ts|video2.ts"
rogerdpack
la source
Ce caractère de pipe doit-il être échappé? Ou suis-je complètement en train de mal interpréter cette commande?
killermist
il fallait y échapper. Oups.
rogerdpack