Quero criar um timelapse a partir de uma coleção de fotos, no Ubuntu. Eu gostaria de fazer vídeos em HD e, idealmente, adicionar uma trilha sonora.
Quero criar um timelapse a partir de uma coleção de fotos, no Ubuntu. Eu gostaria de fazer vídeos em HD e, idealmente, adicionar uma trilha sonora.
Respostas:
Ffmpeg fará isso. Se você tiver imagens img001.jpg, img002.jpg, img003.jpg, ...
, na linha de comando, faça:
ffmpeg -i img*.jpg output.mpeg
Existem mais opções fornecidas nas ffmpeg --help
páginas de manual ou na web. Isso permite o controle sobre a taxa de quadros e o formato de saída.
.jpg
arquivos como o arquivo de saída. Eu entendo File 'DSCF6134.JPG' already exists. Overwrite ? [y/N]
- não é tão bom. Minha solução foi gerar uma lista de arquivos \ls *.JPG | sed "s/^/file '/;s/$/'/" > files.txt
e carregá-la ffmpeg -f concat -i files.txt output.mpeg
.
ffmpeg -pattern_type glob -i "picture*.jpg" output.mpeg
Primeiro, renomeamos todos os arquivos * .JPG com base na data de criação. Às vezes, as câmeras alteram o nome do arquivo ou apenas solicitá-las não é o que queremos. No entanto, renomeá-los pela data de criação sempre funciona:
jhead -n%Y%m%d-%H%M%S *.JPG
Depois disso, colocamos esta lista em um arquivo:
ls -1tr | grep -v files.txt > files.txt
E então use mencoder
para criar um AVI
vídeo usando 20 qps. Observe que isso gerará um arquivo de vídeo enorme, geralmente do mesmo tamanho de todas as imagens somadas.
mencoder -nosound -noskip -oac copy -ovc copy -o output.avi -mf fps=20 'mf://@files.txt'
Normalmente, tiro fotos em timelapse com a resolução mais baixa da minha câmera (5 MP), que possui uma taxa de aspec de 4: 3. Para gerar um vídeo 1080p adequado, a imagem é recalculada primeiro para 1920 pixels de largura e depois cortada para 1080 de altura. Dessa forma, não estou alterando o conteúdo das fotos, apenas cortando:
ffmpeg -i output.avi -y -sameq -vf scale=1920:1440,crop=1920:1080 output-final.avi
A razão pela qual eu uso o mencoder para juntar as fotos é porque eu peguei o segmentation fault
ffmpeg.
ffmpeg
comando, a -sameq
opção agora é substituída por-qscale 0
O Blender é uma boa solução se você estiver lidando com timelapse de movimento (hyperlapse) ou imagens instáveis. Possui recursos de rastreamento de movimento, para que você possa escolher um ponto fixo a ser rastreado ao longo do tempo. Você também pode corrigir problemas de rotação.
Você também pode estar interessado no projeto timelapse-darktable . Facilita o pós-processamento de imagens com a tabela escura e cria um intervalo de tempo da série. As instruções de como usá-lo são encontradas aqui: https://code.google.com/p/timelapse-darktable/wiki/generateTimelapse
Você pode usar o mencoder. As opções são bastante explícitas:
Se todos estiverem no diretório atual com nomes ordenados e você desejar a lista no arquivo /tmp/files.txt:
ls -1 *jpg > /tmp/files.txt
Se você deseja que o arquivo de saída seja /tmp/test.avi com 30fps:
mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4 -o /tmp/test.avi -mf type=jpeg:fps=30 mf://@/tmp/files.txt
O Kdenlive também pode gerar timelapses usando o Add Slideshow Clip
menu, conforme explicado neste tutorial .
De acordo com o mesmo site , o Openshot tem uma funcionalidade semelhante, mas não a recomenda, porque é "muito buggy". Ainda assim, se é o seu editor de vídeo preferido, você ficará feliz em saber que pode arrastar e soltar uma sequência de arquivos nomeados corretamente (001.jpg a NNN.jpg) em uma janela Openshot para importá-los também como um intervalo de tempo.