web-dev-qa-db-fra.com

Tranquer le fichier vidéo en plusieurs segments

J'utilise actuellement FFMPEG pour trancher des fichiers vidéo. J'ai automatisé le processus via un script appelé ffmpeg_split.sh. Bien que cela soit très lent, il est efficace dans la division des vidéos dans des paramètres équivalents. La seule question est qu'elle a des problèmes de taux d'images. Au-dessous de la soupe maléfique, la soupe a recommandé un moyen de faire tout cela en utilisant segment dans FFMPEG. J'ai essayé cela mais cela ne me donne pas de segments de durée équivalents.

MISE À JOUR

Par evilsoup en utilisant cette commande pour segmenter des vidéos:

ffmpeg -i input.mp4 -c copy -map 0 -segment_time 8 -f segment output%03d.mp4

vieux :

Voici la syntaxe pour trancher une vidéo avec script: ffmpeg_split.sh -s test_vid.mp4 -o video-part%03d.mp4 -c 00:00:08

Résultats

my_split_script.sh

input.mp4 – Duration 00:01:20
#EXTINF:10,
Output01.mp4
#EXTINF:10,
Output02.mp4
#EXTINF:10,
Output03.mp4
#EXTINF:9,
Output04.mp4
#EXTINF:10,
Output05.mp4
#EXTINF:10,
Output06.mp4
#EXTINF:11,
Output07.mp4
#EXTINF:10,
Output08.mp4
real    0m30.517s #execution time

ffmpeg

input.mp4 – Duration 00:01:20
#EXTINF:10,
Output01.mp4
#EXTINF:10,
Output02.mp4
#EXTINF:6,
Output03.mp4
#EXTINF:10,
Output04.mp4
#EXTINF:10,
Output05.mp4
#EXTINF:7,
Output06.mp4
#EXTINF:10,
Output07.mp4
#EXTINF:9,
Output08.mp4
real    0m7.493s #executition time
8
Code_Ed_Student

Vous pouvez le faire directement à partir de FFMPEG sans utiliser de script. Essentiellement chaque fois que vous utilisez ffmpeg segment, cela ira de l'avant et fera de son mieux pour se séparer près du temps que vous avez spécifié pour chaque segment. Ceci est basé sur key_frames Il trouvera le cadre clé le plus proche et couper là-bas. Afin de réduire les segments exacts, vous devrez coder la vidéo entière.

ffmpeg -i input.mp4 -c:v libx264 -crf 22 -map 0 -segment_time 9 -g 9 -sc_threshold 0 -force_key_frames "expr:gte(t,n_forced*9)" -f segment output%03d.mp4

Vous devrez lire dans -crf, -sc_threshold et -force_key_frames. Dans le wiki pour FFMPEG .

11
techAddict82