Qual quadro ffmpeg recebe ao reduzir a taxa de quadros
Pergunta
Eu tenho algum vídeo que gostaria de converter em imagens de quadros a cada 2 segundos.
Por exemplo, se o vídeo tive 7 segundos a 15 qps, eu gostaria de obter os quadros 1, 31, 61, 91.
O comando:
ffmpeg -i foo.mp4 -r 0.5 -f image2 -vcodec mjpeg foo%d.jpg
parece fazer o que eu quero, mas qual quadro ele recebe? 1, 31, 61, 91 ou 30, 60, 90 ou 13, 43, 73, 103?
Solução
A primeira imagem será do primeiro quadro.
Observe que você muito bem pode obter uma ou duas imagens que você espera. Eu acredito que isso se deve ao arredondamento e/ou que o FFMPEG cria uma imagens finais. EG: Seu vídeo tem realmente 7 anos? Ou tem 7,63s de comprimento?
Outras dicas
Acabei fazendo o seguinte emprestado em grande parte do tutorial do FFMPEG:
ffmpeg -v 3 -vsync 0 -sameq -i movie.mpr -f image2 "images-%03d.jpeg"
Isso me dá cada quadro do filme como um JPEG numerado 1 até o final do filme. Filmei esses arquivos usando uma linguagem de script, sabendo que a taxa de quadros era de 30fps, para pegar cada 60º quadro.