Je souhaite découper des parties spécifiques d'une vidéo mp4 et fusionner ces parties pour créer un seul fichier vidéo. C'est pour faire un aperçu animé de la vidéo.FFMPEG: Couper des parties spécifiques d'une vidéo et les fusionner dans un seul fichier
Plus précisément: Découpez ces parties d'une vidéo:
- Partie 1: heure de début de la coupe = 20% du temps total; heure de fin du coupe = 20% du temps total + 3secondes,
- Partie 2: 40% du temps total; 40% nof temps total + 3 secondes
- Partie 3: 60% du temps total; 60% du temps total + 3 secondes
- Partie 4: 80% du temps total; 80% du temps total + 3 secondes
(Les vidéos sont plus de 3 minutes, donc il ne devrait pas y avoir de chevauchement dans les parties)
ensuite fusionner ces 4 parties dans un nouveau fichier vidéo mp4 . Comment faites-vous cela avec FFMPEG?
Edit: c'est donc aussi loin que je suis arrivé à cette question:
J'ai trouvé des réponses aux questions sur les « super-utilisateur » et « StackExchange » pour ces questions sur FFMPEG: -Comment obtenir des durées vidéo en quelques secondes partie -Couper du fichier vidéo avec des positions de début/fin fichiers -Concatenate mp4
donc: Obtenez le temps total de la vidéo:
$ ffprobe -v error -show_entries format=duration \
-of default=noprint_wrappers=1:nokey=1 -sexagesimal inputvideo.mp4
Avec le -sexagesimal je devrais obtenir le bon format d'heure à utiliser après.
Découpez partie de la vidéo
ffmpeg -ss [start] -i in.mp4 -t [duration] -c copy /path/videopart[number].mp4
Ici, je ne sais pas: Comment faire une opération sur le temps total (20%, 40% ... puis 20% +3 secondes, 40 % +3 secondes ..) Comment mettre en œuvre correctement dans la ligne de code
Créer un videoparts.txt de fichier avec les noms de fichiers:
$ cat videoparts.txt
file '/path/videopart1.mp4'
file '/path/videopart2.mp4'
file '/path/videopart3.mp4'
file '/path/videopart4.mp4'
cela devrait fusionner les dans un seul fichier:
$ ffmpeg -f concat -i videoparts.txt -c copy outputvideo.mp4
Avez-vous déjà essayé quelque chose? – tyb