Outil terminal pour rejoindre des vidéos mp4

14

Je voudrais rejoindre des vidéos mp4 comme je rejoins pdfs par pdfjoin.

Existe-t-il un outil par défaut pour joindre des vidéos?

Léo Léopold Hertz 준영
la source

Réponses:

15

Oui, vous pouvez joindre plusieurs vidéos en un seul fichier à l'aide des commandes de terminal par défaut. En utilisant un simple cat, vous voudrez.

cat video1.avi video2.avi videon.avi > output.avi

Il y a un gros mais ici - cette méthode sortira l'en-tête video1.avi sur output.avi. Par conséquent, l'en-tête de output.avi est le même que video1.avi, donc sur la plupart des lecteurs vidéo, il ressemblera à video2.avi et videon.avi sont perdus - source 1 , source 2 .

Pour résoudre ce problème, vous avez besoin d'outils supplémentaires. Il existe de nombreux autres outils terminaux pour joindre des films qui mettent également à jour l'en-tête. Les outils d'édition vidéo les plus connus sont mencoder (qui fait partie de MPlayer) et ffmpeg . Les deux ont une énorme quantité d'options et de paramètres et il est au-delà de ce forum d'entrer dans les détails, mais je donnerai les courtes commandes ci-dessous.

L'utilisation et l'installation de mencoder ou ffmpeg peuvent être intimidantes, mais les capacités de montage vidéo sont les plus puissantes que j'ai rencontrées jusqu'à présent. Comme l'installation à partir des sources peut être un problème pour les utilisateurs natifs d'OS X, je vous conseille d'utiliser Homebrew .

Pour installer ces outils à l'aide de Homebrew , exécutez ce one-liner dans votre terminal:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

Homebrew est maintenant installé, il est sage de suivre les suggestions de l'installateur après l'installation. Maintenant, nous installons ffmpeg et mencoder en utilisant brew.

brew install ffmpeg mplayer

Maintenant, nous pouvons utiliser mencoder pour fusionner les deux vidéos:

mencoder -oac copy -ovc copy -idx -o output.mp4 video1.mp4 video2.mp4 video3.mp4

Ou nous pouvons utiliser ffmpeg pour fusionner les deux vidéos:

 ffmpeg -i concat:"video1.mp4|video2.mp4" -codec copy output.mp4

Vous demandez spécifiquement des fichiers .mp4. mp4est un format de conteneur, il est possible que l'installation par défaut de ffmpegou mencodern'ait pas les packages de codage / décodage ('codecs') corrects par défaut et que vous devez les installer séparément. Mais cela dépasse le cadre de ce sujet.

CousinCocaine
la source
Notez que vous devrez peut-être échapper le caractère "|" ce qui est spécial pour de nombreux shells, donc ffmpeg -i concat: video1.mp4 \ | video2.mp4
CousinCocaine
2
L'utilisation de guillemets simples ('') peut être plus simple que d'échapper le caractère pipe. Dans la commande utilisée dans la réponse, cela n'a aucune importance.
nohillside
Très bonne réponse avec explication claire. Je vous remercie!
Léo Léopold Hertz
2
J'ai essayé d'installer Homebrew en utilisant la commande de terminal comme décrit dans cette réponse et j'ai obtenu "The requested URL returned error: 400 Bad Request". Selon la page Web de Homebrew , la nouvelle commande de terminal est/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Sparky
@Sparky allez à brew.shpour les instructions d'installation.
CousinCocaine