Glob
ffmpeg
do FFmpeg suporta padrões de glob , para que seus arquivos de entrada possam ser nomeados como qualquer coisa contanto que eles estejam na ordem desejada:
ffmpeg -framerate 1/5 -pattern_type glob -i "*.jpg" -vf "fps=25,format=yuv420p" out.mp4
O Ubuntu usa avconv
e o buggy, falso " ffmpeg
" do Libav, um fork do FFmpeg, e estes não suportam padrões glob. Veja Quem pode me dizer a diferença e a relação entre ffmpeg, libav e avconv?
Obter ffmpeg
Para obter ffmpeg
, você pode simplesmente baixar uma versão do Linux de ffmpeg
ou seguir uma guia passo-a-passo para compilar ffmpeg
.
Problemas potenciais
A primeira imagem é ignorada
Existem alguns problemas não resolvidos ou inconsistências envolvendo -r
e o fps
filtro de vídeo . Às vezes, a primeira imagem de entrada parece ser ignorada ou exibida apenas para um quadro. Você pode usar o filtro fps
para evitar o problema de ignorar, conforme mostrado no exemplo acima. Veja os ingressos # 1578 e # 3164 para mais informações.
Última imagem é ignorada
Pode parecer que a última imagem é ignorada ou exibida para um quadro. Não encontrei uma solução elegante para esse comportamento, mas você pode simplesmente fazer uma cópia do último arquivo de imagem para compensar.
Ainda mais pulando
Se as imagens de entrada não tiverem o mesmo formato de pixel e / ou tamanho de quadro, ffmpeg
poderá pular um número indeterminado de quadros. Certifique-se de que todas as imagens de entrada sejam semelhantes para evitar isso. Você pode ver a saída do console que mencionará qualquer diferença no arquivo de entrada.
O vídeo MP4 de saída não é reproduzido
Use um player menos ruim ou use o filtro format
, conforme mostrado no meu exemplo, ou use a opção -pix_fmt yuv420p
output. Caso contrário, ffmpeg
tentará evitar ou minimizar a subamostragem de croma (dependendo da sua entrada, do codificador que você está usando, do seu ffmpeg
version, e as opções de codificação que você usa), e embora isso possa ser bom em um sentido técnico, ele pode criar uma saída que não pode ser reproduzida por players não baseados no FFmpeg.