Como posso usar o ffmpeg para extrair quadros com um determinado fps e escalonamento?

1

l gostaria de extrair quadros a fps = 25 e os quadros são redimensionados para 320x240.

O que tentei?

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

retorna um argumento inválido fps = 25

mas quando eu o executo com fps ou com escala, funciona.

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

ou

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

Funciona. Como posso executar o ffmpeg com parâmetros de escala e fps?

    
por eric lardon 26.03.2018 / 15:10

1 resposta

1

Participe de filtros simples com uma vírgula:

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

fps

Ao usar o filtro fps para extrair quadros, saiba que se a taxa de quadros de entrada:

  • é o mesmo que o valor de fps, então o filtro não está fazendo nada e você pode removê-lo.

  • é maior que o valor de fps, então alguns quadros serão omitidos para corresponder ao valor de fps. Se este for o caso, use fps antes da escala e o processo será mais rápido.

  • é menor que o valor de fps, então alguns quadros serão duplicados para corresponder ao valor de fps.

Se você quiser simplesmente extrair all frames, remova o filtro fps.

escala

Considere declarar apenas a largura ou altura e usar -1 como o valor do outro, como 320:-1 ou -1:240 . Isso permitirá que o filtro escolha automaticamente o valor adequado, preservando a proporção. Isso impedirá o alongamento da imagem de saída.

jpeg

Use -q:v ou -qscale:v para controlar a qualidade .

    
por LordNeckbeard 26.03.2018 / 19:19