Qual é o significado das opções fps do ffmpeg?

3

Estou tentando capturar alguns instantâneos de um vídeo. Então, encontrei este código na página oficial deles:

ffmpeg -i myvideo.avi -f image2 -vf fps=fps=1/60 img%03d.jpg

mas não consigo encontrar nenhuma documentação sobre opções e elas nunca explicam isso.

Então, se você conhece alguma referência ou documentação sobre as opções do ffmpeg, por favor, compartilhe.

A questão principal deste post é o que image2 -vf fps=fps=1/60 significa. Não consigo entender por que eles apenas escrevem como fps=1/60 . E image2 é algum tipo de opção ou o quê?

Qual é a diferença para o seguinte?

ffmpeg -i filename.avi -ss 00:00:01 -r 1/60 image%03d.png
    
por Juneyoung Oh 19.04.2013 / 03:32

1 resposta

7

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.

    
por 19.04.2013 / 08:54

Tags