Usando cada n-ésima imagem em sequência para criar vídeo usando o FFmpeg

1

Eu tenho uma série de imagens timelapse que estou usando para gerar um vídeo. Essas imagens são grandes (1080p), então estou tentando ocupar o menor espaço possível no meu computador. Atualmente tenho cerca de 3500 imagens. Se eu usar o FFmpeg para gerar um vídeo a 30fps e 3500kb / s, o arquivo tem cerca de 50MB, o que não é realmente um tamanho viável para ser usado em apresentações do PowerPoint. Então, eu gostaria de usar o FFmpeg para gerar um vídeo, mas só usar todos os quadros Nth desta seqüência de imagens no vídeo. Eu encontrei um monte de posts que sugerem maneiras de fazer isso, mas todos estão tomando um vídeo existente e cortando-o. Eu tentei usar o comando select para conseguir isso, mas sem sucesso. Este é o comando que tenho usado:

ffmpeg -framerate 30 -i Image%08d.jpg -filter:v select='not(mod(n\,5))' -b:v 3500k Output.mp4

Alguém tem alguma sugestão?

    
por Kyle Jones 15.12.2016 / 15:57

1 resposta

2

Você pode usar o modo CRF, em vez de especificar uma taxa de bits:

ffmpeg -framerate 30 -i Image%08d.jpg -crf 23 Output.mp4

Valores menores são melhores, mas produzem arquivos maiores. 18-28 é um intervalo decente.

Para usar todos os 5 quadros,

ffmpeg -framerate 30 -i Image%08d.jpg -vf "select='not(mod(n,5))',setpts=N/30/TB" -crf 23 Output.mp4
    
por 15.12.2016 / 16:51