Convertendo centenas de imagens do estilo de nomenclatura “frame_0000.jpg”, “frame_0001.jpg” em um avi?

0

Eu tenho todas essas imagens como jpegs e quero transmiti-las para um AVI. Estou tentando usar o ffmpeg com o comando aqui , mas recebo um erro "Nenhum tal arquivo ou diretório".

Meu comando exato é (da pasta que contém todos esses arquivos):

ffmpeg -f image2 -i frame_%d.jpg view.avi

Como faço isso? Além disso, como posso fazer isso para um intervalo específico de imagens? Digamos que eu queira apenas quadros de 500 a 1000, então quero frame_0500.jpg para frame_1000.jpg?

    
por water 22.12.2011 / 05:10

2 respostas

2

O comando correto deve ser

ffmpeg -f image2 -i frame_%04d.jpg view.avi

O %04d significa que o número tem 4 caracteres de comprimento, zero preenchido (0000-9999).

Se você quiser fazer um intervalo, basta mover os arquivos desejados para o diretório deles.

Isso é fácil com um gui, mas com a linha de comando você pode fazer

mv frame_0[5-9]* newfolder
mv frame_1000* newfolder
    
por 22.12.2011 / 05:28
3

padrão glob

Para aqueles que usam uma versão não antiga de ffmpeg , o padrão glob é o método mais flexível:

ffmpeg -framerate 10 -pattern_type glob -i "*.png" -pix_fmt yuv420p output.mkv

sequência

Isso converterá uma série de entradas numeradas, image-0001.png , image-0002.png , etc:

ffmpeg -framerate 30000/1001 -i image-%04d.png -pix_fmt yuv420p output.mkv
  • Adicione -start_number , como -start_number 100 , como uma opção de entrada se você quiser começar com determinada imagem.

cat

Você também pode usar cat para canalizar suas imagens para ffmpeg :

cat *.jpg | ffmpeg -framerate ntsc -f image2pipe -c:v mjpeg -i - -pix_fmt yuv420p output.mp4

Notas

  • A saída usará a mesma taxa de quadros da entrada. Se você não declarar -framerate , o padrão de 25 será usado. Você também pode adicionar -r como uma opção de saída, como -r 25 , se desejar que ffmpeg leia a entrada em uma determinada taxa e, em seguida, elimine ou duplique quadros para obter uma taxa de quadros de saída diferente. p>

  • Dependendo da sua entrada, ffmpeg versão e do codificador selecionado, ffmpeg tentará evitar ou minimizar a subamostragem de croma. Embora isso possa ser bom em um sentido técnico, ele pode produzir uma saída que não pode ser reproduzida por players não baseados em FFmpeg. Adicionar -pix_fmt yuv420p garantirá que sua saída seja reproduzível ao codificar para vídeo H.264.

  • Recomenda-se usar uma compilação recente de ffmpeg , pois o desenvolvimento é tão ativo e evitar erros que já foram corrigidos. Consulte a página Download do FFmpeg para obter links para compilações para Windows, OS X e Linux.

Veja também

por 22.12.2011 / 20:25