Comment puis-je utiliser FFMPEG pour capturer une capture d'écran à partir du fichier vidéo?
Méthode 1:Utilisation `-vf` (filtre vidéo)` Scale` et `Select`
Cette méthode est très flexible, vous permettant de spécifier l'horodatage, la taille de la sortie et même sélectionner des trames spécifiques en fonction des critères.
`` `bash
ffmpeg -i input.mp4 -vf "select ='eq (n, 10)', échelle =640:-1" -frames:v 1 output.png
`` '
* `-i input.mp4`:spécifie le fichier vidéo d'entrée. Remplacez `input.mp4` par le nom de votre fichier vidéo.
* `-vf" select ='eq (n, 10)', échelle =640:-1 "`:il s'agit de la chaîne de filtre vidéo.
* `select ='eq (n, 10)'`:sélectionne la 11e trame (n commence à partir de 0). Modifiez `10` pour sélectionner un cadre différent. Vous pouvez utiliser des expressions plus complexes ici, par exemple, `select ='gte (t, 10)' 'sélectionne les images à partir de 10 secondes.
* `échelle =640:-1`:redimensionne le cadre à 640 pixels de large tout en maintenant le rapport d'aspect. Le «-1» calcule automatiquement la hauteur. Vous pouvez spécifier la largeur et la hauteur si nécessaire (par exemple, `Scale =640:480`).
* `-frames:v 1`:dit à FFMPEG de sortir une seule trame.
* `output.png`:spécifie le fichier PNG de sortie. Vous pouvez utiliser d'autres formats d'image comme JPEG (`output.jpg`).
Méthode 2:Utilisation `-vf` (filtre vidéo)` Thumbnail`
Cette méthode est plus simple pour saisir une seule vignette à un moment ou pourcentage spécifique de la durée de la vidéo.
`` `bash
Ffmpeg -i Input.mp4 -vf Thumbnail -frames:V 1 output.png
`` '
Cela saisira une vignette à peu près au milieu de la vidéo. Pour spécifier un temps précis:
`` `bash
ffmpeg -i input.mp4 -vf "miniature, setpts =pts-startpts" -ss 10 -frames:v 1 outping.png
`` '
* `-SS 10`:cherche à 10 secondes dans la vidéo * avant * capturer la vignette. Ceci est généralement plus efficace que l'utilisation de «Select» pour une période spécifique.
Méthode 3:Utilisation `-vf` (filtre vidéo) et` FPS` pour plusieurs captures d'écran
Pour capturer plusieurs captures d'écran à intervalles réguliers:
`` `bash
ffmpeg -i input.mp4 -vf fps =1/5 sortie% 03d.png
`` '
Cela créera des captures d'écran toutes les 5 secondes (1 trame par seconde ou 1/5 ips), numérotées `output001.png`,` output002.png`, etc.
Considérations importantes:
* `-SS` Placement: Placer `-SS` * avant *` -i` effectuera une recherche plus rapide (il cherche dans le fichier d'entrée). Le placer après `-je décodera toute la vidéo jusqu'au point de recherche et est plus lent, mais peut être plus précis pour certains formats vidéo.
* fréquence d'images: Le numéro de trame réel peut ne pas correspondre parfaitement au timecode en raison des variations des fréquences de trame vidéo.
* Formats de fichiers: Vous pouvez modifier l'extension du fichier de sortie en `.jpg`,` .jpeg`, `.bmp`, etc., pour utiliser différents formats d'image.
N'oubliez pas de remplacer `input.mp4` et` output.png` par vos noms de fichiers réels. Choisissez la méthode qui convient le mieux à vos besoins et ajustez les paramètres en conséquence. La première méthode offre le plus de contrôle, tandis que les autres sont plus rapides pour des tâches plus simples.
