Astuce: Fusionner les fichiers vidéos d'un dossier avec ffmpeg en une ligne

Si jamais vous avez besoin de fusionner toutes les vidéos d'un dossier comme par exemple, je sais pas mais des épisodes de Kaamelott qui ont été distribués par épisode, voilà de quoi le faire en deux commandes sous linux:

Bouton droit dans le dossier et Ouvrir dans un terminal puis:

find -type f \( -name "*.mp4" -o -name "*.avi" -o -name "*.mkv" \) | sort | awk '{print "file " $0}' > liste.txt

puis

ffmpeg -f concat -safe 0 -i liste.txt -c copy sortie.mp4

La première commande crée un fichier contenant tous les fichiers vidéos du dossier ordonnés par ordre alphabétique et précédés de «file »

La seconde fournit cette liste à ffmpeg qui se charge de générer un fichier vidéo avec...

Bien entendu, on peut enchaîner les deux commandes en une seule ligne:

find -type f \( -name "*.mp4" -o -name "*.avi" -o -name "*.mkv" \) | sort | awk '{print "file " $0}' > liste.txt && ffmpeg -f concat -safe 0 -i liste.txt -c copy sortie.mp4

Cela va de soi, je présuppose que ffmpeg est installé sur votre ordi, sinon sudo apt-get install ffmpeg

EDIT (wink JerryWham )

Histoire d'automatiser un peu le tout, on peut en faire un script pour Nemo ou Caja sous linux :

1. créer un fichier txt contenant le script:


#!/bin/bash

find -type f ( -name ".mp4" -o -name ".avi" -o -name "*.mkv" ) | sort | awk '{print "file " $0}' > liste.txt && ffmpeg -f concat -safe 0 -i liste.txt -c copy sortie.mp4

2. Coller le fichier dans le dossier script:

  • Pour Nemo : ~/.local/share/nemo/scripts
  • Pour Caja : ~/.config/caja/scripts

3. Rendre exécutable

En ouvrant un terminal dans ce dossier et en faisant un piti :


~/.config/caja/scripts$ chmod +x *

4. Utiliser le nouveau script !

Capture du 2024-06-14 09-50-58.webp

❝ 3 commentaires ❞

1  Jerry Wham le

Cool merci.
Vu que tu es sous LinuxMint, je suppose que tu utilises Nemo comme navigateur de fichiers.
Tu crées un fichier, que tu nommes comme tu veux (fusionvideos par exemple), dans le dossier ~/.local/share/nemo/scripts et tu lui donnes la permission d'être exécuté par le propriétaire et tu y places les commandes ci-dessous :


#!/bin/bash
find -type f ( -name "*.mp4" -o -name "*.avi" -o -name "*.mkv" ) | sort | awk '{print "file " $0}' > liste.txt && ffmpeg -f concat -safe 0 -i liste.txt -c copy sortie.mp4

Ensuite, dans le dossier où tu as tes vidéos, tu fais un clic droit, tu cherches le menu "scripts" et tu sélectionnes "fusionvideos", boom


 
2  Bronco le

OMAGAD !
J'ai pas eu eul'réflexe !



Mercimercimercimerci !

 
3  Bronco le

Et pour Caja (mint+Mate) le chemin des scripts est /home/xxxx/.config/caja/scripts
Je vais éditer l'article du coup !


🤜🤛

 

Fil RSS des commentaires de cet article

✍ Écrire un commentaire

les commentaires relevant du SPAM seront filtrés et dégagés direct...

Quelle est le dernier caractère du mot xcez0p ?
Caching time 0.001869 s