-pattern_type glob
exemplos concretos com áudio
Esta opção foi mencionada em: https://superuser.com/a/782520/128124, mas aqui estão alguns exemplos concretos de seu uso, incluindo a adição de áudio ao vídeo de saída.
Vídeo de apresentação de slides com uma imagem por segundo
ffmpeg -framerate 1 -pattern_type glob -i '*.png' \
-c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
Adicione um pouco de música, corte quando o áudio quando as imagens terminarem:
ffmpeg -framerate 1 -pattern_type glob -i '*.png' -i audio.ogg \
-c:a copy -shortest -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
Aqui estão duas demos no YouTube:
Seja um hippie e use o formato de vídeo livre de patente Theora :
ffmpeg -framerate 1 -pattern_type glob -i '*.png' -i audio.ogg \
-c:a copy -shortest -c:v libtheora -r 30 -pix_fmt yuv420p out.ogg
Suas imagens devem, obviamente, ser classificadas em ordem alfabética, geralmente como:
0001-first-thing.jpg
0002-second-thing.jpg
0003-and-third.jpg
e assim por diante.
Consulte também: http://unix.stackexchange.com/questions/68770/converting-png-frames-to-video-at-1-fps/339399#339399
Vídeo em velocidade normal com uma imagem por quadro a 30 FPS
ffmpeg -framerate 30 -pattern_type glob -i '*.png' \
-c:v libx264 -pix_fmt yuv420p out.mp4
Aqui está o que parece:
![](https://i.stack.imgur.com/HDcAB.gif)
GIF gerado com: https://askubuntu.com/questions/648603/how-to-create-an-animated-gif-from-mp4-video-via-command-line/837574#837574
Adicione um pouco de áudio a ele:
ffmpeg -framerate 30 -pattern_type glob -i '*.png' \
-i audio.ogg -c:a copy -shortest -c:v libx264 -pix_fmt yuv420p out.mp4
Resultado: https://www.youtube.com/watch?v=HG7c7lldhM4
Converta um arquivo de música em um vídeo com uma imagem fixa para upload do YouTube
Respondida em: Como converter MP3 para o formato de vídeo permitido pelo Youtube?
Obtenha algumas imagens de entrada de teste sintéticas
Estas são as imagens de teste que eu tenho usado nesta resposta:
wget -O opengl-rotating-triangle.zip https://github.com/cirosantilli/media/blob/master/opengl-rotating-triangle.zip?raw=true
unzip opengl-rotating-triangle.zip
cd opengl-rotating-triangle
wget -O audio.ogg https://upload.wikimedia.org/wikipedia/commons/7/74/Alnitaque_%26_Moon_Shot_-_EURO_%28Extended_Mix%29.ogg
Imagens geradas com: https://stackoverflow.com/questions/3191978/how-to-use-glut-opengl-to-render-to-a-file/14324292#14324292
É legal observar o quanto o vídeo compacta a sequência de imagens muito melhor do que o ZIP, pois é capaz de comprimir quadros através de algoritmos especializados:
opengl-rotating-triangle.mp4
: 340K
opengl-rotating-triangle.zip
: 7.3M
Sobre as opções da CLI
Observe no entanto que, apesar do nome, -glob
isso não é tão geral quanto os padrões do shell Glob, por exemplo: -i '*'
falha: https://trac.ffmpeg.org/ticket/3620 (aparentemente porque o tipo de arquivo é deduzido da extensão).
-r 30
faz o -framerate 1
vídeo 30 FPS para superar bugs em players como o VLC para taxas de quadros baixas: https://stackoverflow.com/questions/19267443/playback-issues-in-vlc-with-low-fps-video-from-images-using- ffmpeg / 41797724 # 41797724 Portanto, repete cada quadro 30 vezes para manter o efeito de 1 imagem por segundo desejado.
Próximos passos
Você também vai querer:
TODO: aprenda a cortar e concatenar vários arquivos de áudio no vídeo na linha de comando:
Testado em
ffmpeg 3.4.4, vlc 3.0.3, Ubuntu 18.04.
Bibliografia