Este é um erro no VLC (que ainda existe na versão 3.0.6). Após algumas experiências, percebi que o VLC falha em vídeos com FPS menor que 10 . Portanto, todos os vídeos com 10 FPS ou mais não devem ser um problema. Portanto, atualmente não há uma maneira limpa de obter um vídeo com 1 FPS que pode ser reproduzido no VLC ( não desista, continue lendo ).
Uma solução alternativa é, como mostrado na resposta acima, falsificar o efeito de 1 FPS duplicando as imagens (quando na verdade temos um FPS igual a 10 ou mais, o que é bom para o VLC).
Exemplo: se você possui uma pasta com 12 imagens e deseja gerar um vídeo com 1 FPS (reproduzível no VLC), é necessário duplicar cada imagem várias vezes (digamos 10 vezes) e informar ao FFMPEG para gerar um vídeo de 10 FPS. Dessa forma, obteremos um vídeo com um total de quadros de 120, onde cada imagem será reproduzida por 1 segundo (duplicada 10 vezes), o que é simplesmente falso para 1 FPS.
Prefiro usar o fps
parâmetro do que-r
(o que é mostrado em outra resposta) que pode, em alguns casos, ser problemático (de acordo com a documentação oficial ).
ffmpeg -framerate 1 -i "img (%d).jpg" -c:v libvpx-vp9 -vf "fps=10,format=yuv420p" out.mkv
Como a entrada -framerate
é menor que a saída fps
, o FFMPEG duplicará os quadros para atingir a taxa de quadros de saída desejada (que é 10, de acordo com o comando acima).
Também é importante notar que a ordem -framerate
e -vf fps
é importante , pois essa configuração será aplicada ao próximo vídeo mencionado (entrada ou saída). Isso está de acordo com os documentos oficiais :
as opções são aplicadas ao próximo arquivo especificado. Portanto, a ordem é importante ...
ffmpeg
é inteligente o suficiente para descobrir o codec de vídeo apenas na extensão de arquivo no formato container.mp4
. Tente adicionar-vcodec libx264 -vpre hq
à linha de comando, para informar os parâmetros de codec e codificação.