Tworzenie timelapsów na Raspberry Pi

Opublikowane przez Oskar w dniu

Raspberry timelapse – wszystko co potrzebujesz

Poniższy skrypt służy do automatycznego tworzenia timelapsów. Został napisany w Pythonie, nie wymaga prawie żadnej konfiguracji. Możesz zmienić w nim 5 rzeczy: w jakich godzinach mają być wykonywane zdjęcia, parametry zdjęć (np. rozdzielczość) oraz częstotliwość ich wykonywania, opcje generowanego video (np. ilość klatek na sekundę) oraz o jakiej godzinie ma być renderowany film. Możesz dzięki niemu stworzyć na raspberry timelapse taki jaki chcesz. Sam ustawisz wszystkie parametry.

Zasada działania

Skrypt działa na prostej zasadzie. W zadanych godzinach, w określonych odstępach czasu wykonuje zdjęcia, które zapisuje na karcie pamięci. O określonej godzinie, renderuje film z wykonanych zdjęć, a następnie usuwa wykonane wcześniej zdjęcia. Potem proces powtarza się od nowa. Wyrenderowane filmy nie nadpisują się z kolejnym dniem, każdy z nich ma unikalną nazwę.

from datetime import datetime, time
import os
import time as timer

picNumber = 0

while True:
    if time(5,00) <= datetime.now().time() <= time(19,00):
    	picNumber += 1
    	command = "raspistill -w 1920 -h 1080 -mm matrix -o cam"+str(picNumber)+".jpg"
    	os.system(command)
    elif time(1,00) <= datetime.now().time() <= time(1,02):
    	command = "avconv -r 24 -i cam%01d.jpg -r 24 -vcodec libx264 timelapse-"+str(datetime.now().day)+"-"+str(datetime.now().month)+".mp4"
    	os.system(command)
    	command = "rm -rf *.jpg"
    	os.system(command)
    	picNumber = 0
    timer.sleep(55) #Remember that taking photo takes 5 seconds

#Install this to use avconv: sudo apt install libav-tools
#To run this script type: python make-timelapse.py
#If you want run it in background, type: python make-timelapse.py &

Przed użyciem

Żebyś mógł renderować film z wykonanych zdjęć musisz mieć zainstalowany pakiet avconv. Zainstaluj go wykonując w terminalu polecenie sudo apt install libav-tools

Pierwsze użycie

Po pierwsze aby wykonać za pomocą Raspberry timelapse skopiuj powyższy skrypt i zapisz go jako plik tekstowy z rozszerzeniem .py, np, skrypt.py. Następnie otwórz terminal i otwórz w nim katalog, w którym utworzyłeś skrypt. To w jakim katalogu jesteś możesz sprawdzić za pomocą polecenia pwd. Aby wyświetlić jakie pliki i foldery znajdują się w bieżącej lokalizacji użyj polecenia ls. Aby wejść w dany katalog, użyj polecenia cd a następnie wpisz nazwę katalogu, do jakiego chcesz wejść, np. cd nazwaFolderu.
Skrypt uruchomisz komendą python make-timelapse.py & Jeśli nie chcesz, aby skrypt był uruchomiony w tle, usuń znak & na końcu polecenia.

Konfiguracja

Jak już wcześniej wspomniałem, w skrypcie możesz zmienić kilka rzeczy. Zacznijmy od najprostszej.

Częstotliwość wykonywania zdjęć
sleep(55)

Najprostsza rzecz do zmiany. 55 oznacza liczbę sekund, co jaką twój skrypt ma wykonywać zdjęcia. Miej jednak na uwadze, że samo zrobienie zdjęcia zajmuje około 5 sekund. Domyślnie zdjęcia wykonywane są co 60 sekund (55 sekund, które są podane w nawiasie + 5 sekund zajmuje wykonanie zdjęcia. Razem 60 sekund).

Zmiana godzin wykonywania zdjęć
    if time(5,00) <= datetime.now().time() <= time(19,00):

Aby zmienić godziny, w jakich zdjęcie ma być wykonywane, zmień 5,00 oraz 19,00 na wybrane przez siebie godziny. W domyślnej konfiguracji zdjęcia wykonywane są od godziny 5:00 do 19:00.

Zmiana godzin renderowania filmów

Tą linijkę możesz edytować tak samo jak tę powyżej. Jest jednak drobna różnica. Podam przykład. Jeśli chcesz, aby film renderował się o godzinie 1:00, wpisz godziny 1:00 oraz 1:02. Jeśli o 2:30, wpisz 2:30 oraz 2:32. Chyba proste.

    elif time(1,00) <= datetime.now().time() <= time(1,02):
Parametry zdjęć i filmów

Od tego momentu opis jest mniej dokładny i wymaga troszkę więcej wiedzy. Jeśli jesteś całkowicie początkujący – powodzenia.
Ta linijka odpowiada za wykonanie zdjęcia. Możesz dodać do niej dodatkowe parametry oraz zmienić już istniejące. Ich listę znajdziesz w dokumentacji na stronie Raspberry.

command = "raspistill -w 1920 -h 1080 -mm matrix -o cam"+str(picNumber)+".jpg"

To samo dotyczy opcji renderowania filmu. Odpowiada za to linijka nr 13, czyli

    	command = "avconv -r 24 -i cam%01d.jpg -r 24 -vcodec libx264 timelapse-"+str(datetime.now().day)+"-"+str(datetime.now().month)+".mp4"

Atrybuty, jakie możesz ustawić znajdziesz tutaj.

Zdjęcie tytułowe, znajdujące się na początku strony:
Timelapse setup” by tvol is licensed under CC BY 2.0


0 Komentarzy

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *