Eu tenho um monte de imagens que seguem esse padrão.
0001.png
0004.png
0007.png
0010.png
0013.png
0016.png
0019.png
...
Eles estão na ordem correta, mas o FFMPEG ignora qualquer coisa após o primeiro arquivo, porque não consegue encontrar um 0002.png
. Como faço para ingressar nesses arquivos?
eu tentei
ffmpeg -i %04d.png out.avi
Respostas:
com o ffmpeg 0.11.1 é tão fácil quanto:
Na
man
página, em um exemplo em "Conversão de formato de arquivo de vídeo e áudio":Atualização por comentários: nas versões recentes, você deve agora usar a
-i '*.png'
sintaxe.fonte
glob_sequence
tipo de padrão está obsoleto, mas oglob
tipo de padrão não está. A resposta de Mulvya e Peter Cordes funciona.Pattern type 'glob_sequence' is deprecated: use pattern_type 'glob' instead
Pattern type 'glob_sequence' is deprecated
...): o comando fornecido pelo rymo acima (especificamente-i %*.png
) fará com que o aviso seja exibido . Para eliminá-lo, use a sintaxe um pouco diferente na resposta de Peter Cordes (-i '*.png'
).Além da solução alternativa no meu comentário, você deve poder usar esta sintaxe da documentação do ffmpeg :
As aspas são importantes, você precisa do ffmpeg para ver o
*
, não precisa que o shell o expanda.fonte
*.png
aspas simples (assim'*.png'
) para evitar que seja expandido por shells no estilo Unix (assim, OSX e linux etc.).Em http://www.ffmpeg.org/faq.html : Se você tiver um grande número de fotos para renomear, use o seguinte comando para aliviar a carga. O comando, usando a sintaxe bourne shell, vincula simbolicamente todos os arquivos no diretório atual que correspondem * jpg ao diretório '/ tmp' na sequência de 'img001.jpg', 'img002.jpg' e assim por diante.
x=1; for i in *jpg; do counter=$(printf %03d $x); ln -s "$i" /tmp/img"$counter".jpg; x=$(($x+1)); done
fonte
seqA-[0001-n].png
,seqB-[0001-n].png
etc. Muito mais fácil do que brincar com o image2 globbing e o filtro concat.for i in *jpg
comfor i in /full/path/*jpg
, porque todos os links simbólicos foram quebradosNa verdade, eu sugeriria a mesma coisa que Mulvya sugeriu. Sempre que eu precisava fazer coisas assim ao lidar com renderizações de animação em 3D, renomeia os arquivos para torná-los seqüenciais. É mais fácil trabalhar dessa maneira em vários softwares diferentes, a menos que você precise preservar os nomes dos arquivos por algum motivo. O Total Commander também é uma ótima ferramenta para renomeação múltipla.
fonte
Para a parte da sequência que faltava, usei 2 liner
Espero que isso ajude alguém no futuro
fonte