Você pode encontrar a documentação na página inicial do FFmpeg.
O fps
filter tem várias opções, sendo uma delas fps
. Então, para declarar essa opção, você precisa ligar:
-vf fps=fps=1/60
↑ ↑ ↑
| | |
| | |__ value
| |______ option
|__________ filter
Você também pode escrever -vf fps="fps=1/60"
, é claro.
Portanto, quando você usa 1/60
, isso significa 1/60 quadros por segundo ou 1 quadro por 60 segundos. Em qualquer caso, a diferença entre este e -r 1/60
é que um filtro é aplicado antes de qualquer opção -r
. Ambos os comandos que você deu devem funcionar em teoria, no entanto, o -r
um cria muitos quadros de saída para mim (mas eu não sou o primeiro a aviso ). Fique com o filtro fps
.
Observe que há outro filtro chamado framerate
, que é semelhante a fps
, mas não o mesmo. Em vez de duplicar ou descartar quadros para atingir a taxa de quadros desejada, ele interpola os quadros, ou seja, mescla quadros adjacentes para criar novas imagens.
Se você dissecar o comando, descobrirá que image2
é o valor da opção -f
. Isso especifica o formato de saída. Em geral, você pode usá-lo em ffmpeg
da seguinte forma:
ffmpeg -f input-format -i input-file -f output-format output-file
Em seu exemplo, dissemos a ffmpeg
para usar o image2
muxer , que permite você produz arquivos de imagem única a partir de vídeo, especificando um padrão como %02d
para o nome da saída.
O -f image2
é supérfluo aqui, pois o muxer deve ser escolhido automaticamente quando você usa um formato de saída de imagem.
O image2
demuxer também possui uma opção framerate
que permite especificar a taxa de quadros de arquivos de entrada assumida. Por exemplo, se você tiver uma apresentação de slides que consista em uma imagem a cada segundo, use -framerate 1
como uma opção de entrada. Veja aqui para alguns exemplos.