Tworzenie timelapsów na Raspberry Pi
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