Observe as nuvens se moverem ou uma muda crescer. A fotografia com lapso de tempo pode realmente dar a você uma noção de como o mundo funciona em um nível macroscópico, além de qualquer coisa concebível para a experiência humana normal do tempo. Ou outras palavras: pode virar assistindo tinta secar em algo bastante interessante. Infelizmente, o equipamento time-lapse profissional - ao mesmo tempo em que adiciona a capacidade de girar ou mover sua câmera - como o Genie pode custar até US $ 1.000. Hoje, faremos um controlador de lapso de tempo básico sem movimento - para DSLR ou webcam USB - com apenas um Raspberry Pi.
Certifique-se de verificar todos os nossos outros grandes projetos Raspberry Pi também.
DSLR
Como de costume, todo o nosso trabalho com o Pi será feito através de uma linha de comando SSH, e nós podemos pegar os arquivos usando o SFTP com as mesmas credenciais, se você os armazenou no Pi ao invés da câmera. Se você não tem certeza de qual é o endereço IP do seu Pi, faça o login no seu roteador e veja a lista de dispositivos conectados no momento - ele deve estar se reportando corretamente.
Comece instalando algum software essencial:
sudo apt-get install gphoto2 sudo apt-get install imagemagick
O GPhoto2 é um utilitário de linha de comando para interface direta com câmeras DSLR suportadas (veja a lista completa aqui). Eu usei um Canon Rebel T4i / 650D Canon Rebel revisão T4i dSLR e Giveaway Canon Rebel T4i revisão dSLR e Giveaway Canon acaba de lançar seu novo Rebel T4i - a sua primeira (espero que muitos) aventuras no mundo dSLR touchscreen. Esta câmera é um passo acima da Canon Rebel T3i (também tornando-se a terceira ... Leia Mais. Agora, conecte sua câmera ao Pi via USB.
Desde que usei valores ISO automáticos e modo AV, a configuração é relativamente simples e podemos capturar a série usando apenas a linha de comando - o utilitário inclui parâmetros de lapso de tempo incorporados. Aqui está o comando mais básico que você pode usar para testar os recursos:
gphoto2 --capture-image-and-download
que irá transferir o arquivo para o seu Pi, ou
gphoto2 --capture-image
para manter a imagem na câmera. Com 8 MB de pop, é possivelmente melhor mantê-los na câmera e realizar a costura do filme após o fato em um PC ou Mac.
Importante: Por padrão, as imagens são salvas no SD-RAM, não no cartão de memória da câmera. Significa que você vai perder todos eles (falo por experiência). Para garantir que eles realmente sejam salvos, precisamos primeiro definir o destino da captura:
gphoto2 --get-config /main/settings/capturetarget
Observe a lista que ela exibe e defina o alvo da seguinte forma, substituindo 1 pelo que for exibido como seu cartão.
gphoto2 --set-config /main/settings/capturetarget=1
Para capturar no modo de lapso de tempo, acrescente -F e -I para especificar o número total de quadros que você deseja capturar e o intervalo de tempo entre cada um. Neste exemplo, captura uma vez a cada 30 segundos para um total de 1440 quadros, o que, quando transformado em um filme de 24 FPS, será equivalente a cerca de um minuto. Eu não acho que a bateria da minha câmera vai durar tanto tempo assim, mas eu vou ver quantos eu recebo.
gphoto2 --capture-image -F 1440 -I 30
Um truque a ter em mente; depois que o comando terminar, a câmera pode desligar e não responder - você precisará desligar manualmente o interruptor de energia (pelo menos, no meu modelo funcionou). Isso não deve ser um problema no campo quando em uso, mas para fins de teste fica bastante irritante. Se você sabe uma correção para isso, me avise nos comentários, por favor!
Fazendo um filme
Transfira os arquivos para o seu computador de mesa para processamento. Em um Mac, achei que o mais fácil é usar a linha de comando, mas você precisará do XCode, Homebrew e MPlayer instalados primeiro. Para fazer isso, primeiro faça o download do Xcode na App Store (é grátis) e, em seguida, na guia Preferências -> Downloads, ative Ferramentas da linha de comando .
Em seguida, execute (um de cada vez):
ruby<(curl -fsSkL raw.github.com/mxcl/homebrew/go) brew doctor brew install mplayer
Agora você deve ter os componentes de codificação necessários instalados. Execute os seguintes comandos para criar primeiro uma lista dos arquivos .jpg" capturados e, em seguida, alimente essa lista no mencoder, um utilitário usado para criar vídeos. Altere o valor do FPS se você preferir que o filme seja mais rápido.
cd ls *.jpg">list.txt mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=8000000 -vf scale=640:480 -o timelapse.avi -mf type=jpeg:fps=24 mf://@list.txt
Aqui está o que eu acabei usando 24 FPS de 330 quadros gravados a cada minuto da manhã até o meio da tarde. O tempo é a Grã-Bretanha realmente é tão ruim, de sol a nublado em intervalos de 5 minutos ao longo do dia. Suspiro.
Para codificar um filme no Windows, ou se você preferir usar uma GUI, baixe o Avidemux e siga o tutorial em vídeo abaixo. Certifique-se de que suas fotos sejam numeradas sequencialmente.
Usando uma webcam USB
Claro, nem todo mundo tem uma DSLR, mas ao invés de comprar um caro módulo de câmera oficial para o Raspberry Pi, você também pode realizar fotografia em time-lapse usando uma webcam USB - no meu caso, um PS3 Eye que é geralmente é um incômodo trabalhar no PC ou no Mac, mas funciona fora da caixa no Pi. Talvez seja necessário usar um hub USB ativado e o suporte da câmera é impreciso.
Primeiro, verifique se sua webcam foi detectada corretamente.
ls -l /dev/video*
Espero que você veja / dev / video0 listado assim:
Então, podemos instalar o software de captura da webcam e tirar uma foto de teste.
sudo apt-get install fswebcam
fswebcam -d /dev/video0 -r 640x480 test.jpeg
Exclua o arquivo com:
rm test.jpg"
Tire algumas fotos de teste para permitir que você posicione a câmera apropriadamente e, em seguida, começaremos com o script de lapso de tempo.
mkdir timelapse nano runtimelapse
Cole o seguinte:
#!/bin/bash # Timelapse controller for USB webcam DIR=/home/pi/timelapse x=1 while [ $x -le 1440 ]; do filename=$(date -u +"%d%m%Y_%H%M-%S").jpg" fswebcam -d /dev/video0 -r 640x480 $DIR/$filename x=$(( $x + 1 )) sleep 10; done;
Para fins de teste, defini o tempo de espera entre as fotos como 10 segundos. Quando você realmente começa a capturar, você pode querer mudar isso para cada minuto. Altere a linha a seguir para determinar quantos quadros capturar, no exemplo, ela é configurada como 1440:
while [ $x -le 1440 ]; do
Para tornar o script executável, use:
chmod 755 runtimelapse
Em seguida, execute-o usando:
./runtimelapse
Fazendo um filme
Ainda na linha de comando do SSH, tentaremos costurar o filme diretamente no Pi - se você tirou milhares de fotos e sua webcam está com uma resolução maior, você pode achar que isso é terrivelmente lento, e nesse caso vá até o filme instruções para DSLR, e transferir os arquivos para o seu PC usando SFTP.
cd timelapse ls *.jpg">list.txt sudo apt-get install mencoder mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=8000000 -vf scale=640:480 -o timelapse.avi -mf type=jpeg:fps=24 mf://@list.txt
Se tudo parece bem, mas você obtém uma saída de arquivo de 0 KB, isso significa que não há espaço suficiente na pasta temp de seus dispositivos. Eu resolvi isso com uma instalação limpa e expandi o sistema raiz novamente - parece que o BTSync tinha bagunçado alguns arquivos temporários.
Aqui está a cena finalizada de uma webcam USB, do final da tarde ao escuro.
Isto foi muito mais fácil do que eu pensava que seria - e eu não ficaria surpreso em encontrar alguém nos comentários detalhando um método ainda mais fácil! Dê uma chance a uma visão fascinante da vida que, de outra forma, é difícil de compreender e compartilhe um link para suas criações nos comentários ou outros vídeos de lapso de tempo que você achou particularmente inspiradores.