J'ai une longue vidéo avec différentes scènes. Je souhaite extraire et concaténer 2 scènes de la vidéo (qui ne démarrent pas sur une image I) à l'aide de ffmpeg 2.1.4.
Pour l'argument, disons que je veux 5 secondes de 01h00 et 02h00.
Je peux le faire:
ffmpeg -ss 01:00 -i in.mkv -ss 02:00 -i in.mkv -filter_complex "
[0:v]select='lt(t,5)'[v0];
[0:a]aselect='lt(t,5)'[a0];
[v0][a0][1:v][1:a]concat=n=2:v=1:a=1
" -c:a libvorbis -t 10 out.mkv
Cela me donne le film que je veux, mais select force en fait ffmpeg à décoder tout le reste du film. Alors, comment puis-je lui dire de tronquer le premier film au lieu de le décoder?
Je préférerais le faire avec un filtre complexe ffmpeg, si possible. Je sais que je peux simplement utiliser -t
pour recoder des films séparés en premier, mais l'étape d'encodage supplémentaire est très lente dans mon cas et perd également une bonne quantité de qualité pour cette vidéo.
Je n'arrive pas à trouver un filtre qui tronque la longueur d'une vapeur. Y a-t-il des nœuds de filtre qui correspondent aux paramètres -t
ou -ss
?
-filter_complex
travaux , mais lesconcat
fichiers ne pas - à savoir le 1er aspect vidéo , mais bien la qualité du 2ème est horrible. Remarque, j'ai copié ces commandes exactement pour les deux (à l'exception du fichier d'entrée).Cela devrait fonctionner plus rapidement ...
Il n'est pas nécessaire de spécifier -t sur la sortie. Il n'est pas nécessaire de diviser l'audio et la vidéo avant la concaténation.
la source