Primeira parte da minha pergunta:
Eu li na documentação do ffmpeg ( section 3.2 How do I encode single pictures into movies?
) o seguinte:
Para codificar imagens únicas em filmes, execute o comando:
ffmpeg -f image2 -i img%d.jpg movie.mpg
Observe que `% d 'é substituído pelo número da imagem: img% 03d.jpg significa a sequência img001.jpg, img002.jpg, etc ...
Minha pergunta é: quem está fazendo a tradução entre img%03d.jpg
e img001.jpg, img002.jpg, etc
? É o shell ou ffmpeg?
Segunda parte:
Gostaria de pedir ao ffmpeg para codificar uma sequência de imagens em um vídeo. No entanto, minhas seqüências geralmente começam com um índice diferente de 1 (por exemplo, podemos chamá-lo start_index
) e terminam em um índice que podemos chamar end_index
. Além disso, a sequência usa incrementos de valor increment
, por exemplo:
img_0025.png, img_0030.png, img_0035.png, ... img_0100.png
onde start_index
era 25, end_index
era 100 e increment
era 5.
Gostaria de alimentar uma sequência de imagens como a acima para ffmpeg sem precisar renomear a sequência primeiro. A documentação explica como fazer isso com links simbólicos, mas eu queria saber se existe uma maneira de evitá-los completamente, talvez usando globbing avançado no zsh.
while IFS= read -d $'\0' -r file ;do pnmcomp -align=center -valign=middle <(anytopnm "$file" 2>/devnull) done
o script para de funcionar (ou seja, eu entendopipe: could not find codec parameters
). Você sabe por quê? Preciso necessariamentepnmscale
ouppmmake
alimentarffmpeg
compnm
imagens?avisynth
(um poderoso ambiente de script de vídeo - o avisynth é apenas para Windows :( A principal razão pela qual usei umnetpbm
formato é que eu continuava vendo postagens sobre problemas de alimentação de jpegs no pipe, então escolhi o caminho de menor resistência.A codificação de vídeo será a etapa que causa perda de qualidade, mas aumentar o tamanho do quadro ajuda ... Suponho que você tenha seus motivos específicos para usar um vídeo, mas uma apresentação de slides simples pode funcionar para você.Apenas para a primeira parte: o ffmpeg está fazendo o trabalho. O shell não entende a
%d
cadeia como um padrão especial nos nomes dos arquivos.fonte