web-dev-qa-db-fra.com

Comment puis-je utiliser ffmpeg pour extraire des images avec un certain fps et une mise à l'échelle

je voudrais extraire des images à fps = 25 et les images sont redimensionnées à 320x240.

Qu'est-ce que j'ai essayé?

ffmpeg -i video.avi -vf scale="320x240" fps=25   frames/c01_%04d.jpeg

il retourne un argument invalide fps = 25

mais quand je l'exécute avec fps ou scale cela fonctionne.

ffmpeg -i video.avi -vf scale="320x240"    frames/c01_%04d.jpeg

ou

ffmpeg -i video.avi -vf  fps=25   frames/c01_%04d.jpeg

Ça marche. Comment puis-je exécuter ffmpeg avec les paramètres scale et fps?

1
eric lardon

Joindre des filtres simples avec une virgule:

ffmpeg -i video.avi -vf "scale=320:240,fps=25" frames/c01_%04d.jpeg

fps

Lorsque vous utilisez le filtre fps pour extraire des images, n'oubliez pas que si la fréquence d'images en entrée:

  • est identique à la valeur en fps, le filtre ne fait rien et vous pouvez le supprimer.

  • est supérieure à la valeur fps, certaines images seront omises pour correspondre à la valeur fps. Si tel est le cas, utilisez fps avant scale et le processus sera plus rapide.

  • est inférieure à la valeur fps, certaines images seront dupliquées pour correspondre à la valeur fps.

Si vous voulez simplement extraire toutes les images , supprimez le filtre fps.

échelle

Pensez à ne déclarer que la largeur ou et à utiliser -1 comme valeur pour l'autre, tel que 320:-1 ou -1:240. Cela permettra au filtre de choisir automatiquement la valeur appropriée tout en préservant le rapport hauteur/largeur. Cela empêchera l'étirement de l'image de sortie.

jpeg

tilisez -q:v ou -qscale:v pour contrôler la qualité .

4
llogan