Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
wetter:mobotix:movie [08.01.2014 17:10. ] – django | wetter:mobotix:movie [31.10.2023 18:32. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Zeitrafferfilm der Webcam-Bilder erstellen ====== | ====== Zeitrafferfilm der Webcam-Bilder erstellen ====== | ||
- | FIXME | + | Wer kennt sie nicht und hat nicht selbst in der Kindheit mal ein kleines Daumenkino gebastelt. Was liegt also ferner, als das gleiche nun mit den Bildern einer Wetter-Webcam zu machen! |
+ | |||
+ | In dem nun folgendem Beitrag sehen wir uns das nun mal ein wenig näher an. Ziel ist es am Ende ein kleines Filmchen, wie dieses hier zu erzeugen: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ===== Konfiguration ===== | ||
+ | |||
+ | ==== Abholen und Abspeichern der Wetter-Webcam-Bilder ==== | ||
+ | |||
+ | Bevor wir uns nun ein Script zum Abspeichern von einzelnen Standbildern machen, legen wir noch kurz das benötigte Zielverzeichnis an: | ||
+ | |||
+ | $ mkdir -p / | ||
+ | |||
+ | Als nächsten legen wir uns ein passendes Downloadscript an. | ||
+ | |||
+ | # vim / | ||
+ | <file bash / | ||
+ | # Script zum Abholen und Abspeichern der Wetter-WebcamBilder für die Zeitrafferfilme | ||
+ | # Das script wird jede Minute (user-crontab!) aufgerufen. | ||
+ | # | ||
+ | # usercrontab | ||
+ | # jede Minute ein Bild für den Wetterfilm abspeichern | ||
+ | # * 4-22 * * * / | ||
+ | # | ||
+ | # Django : 2013-03-13 | ||
+ | |||
+ | |||
+ | WORKDIR="/ | ||
+ | CAMURL_1=" | ||
+ | CAMURL_2=" | ||
+ | |||
+ | PIC_CAM_1=" | ||
+ | PIC_CAM_2=" | ||
+ | PIC_DAY=`date +%d` | ||
+ | PIC_MONTH=`date +%m` | ||
+ | PIC_YEAR=`date +%Y` | ||
+ | PIC_HOURS=`date +%H` | ||
+ | PIC_MINUTES=`date +%M` | ||
+ | PIC_SECONDS=`date +%S` | ||
+ | PIC_NAME_1=$PIC_CAM_1$PIC_YEAR$PIC_MONTH$PIC_DAY" | ||
+ | PIC_NAME_2=$PIC_CAM_2$PIC_YEAR$PIC_MONTH$PIC_DAY" | ||
+ | |||
+ | cd $WORKDIR | ||
+ | / | ||
+ | / | ||
+ | /bin/rm current.jpg | ||
+ | / | ||
+ | / | ||
+ | /bin/mv current.jpg $PIC_NAME_2 | ||
+ | </ | ||
+ | |||
+ | Ergibt pro Stunde 60 Bilder je Webcam, oder 1140 Bilder in 19 Stunden, bzw. 120 Bilder pro Stunde und 2280 Bilder am Tag (19 Stunden). | ||
+ | |||
+ | Damit nun die Minutenbilder auch gespeichert werden können, legen wir uns für unseren Wetter-User eine crontab an. | ||
+ | $ crontab -e | ||
+ | |||
+ | <code bash> | ||
+ | MAILTO=" | ||
+ | |||
+ | # In der Zeit von 4:00 - 22:59 Uhr jeweils ein Bild der Webcams für den Wetterfilm abspeichern | ||
+ | * 4-22 * * * / | ||
+ | </ | ||
+ | |||
+ | ==== Generieren des Zeitrafferfilms ==== | ||
+ | Zum Generieren des bzw. der Zeitrafferfilme greifen wir auf das Programm **ffmpeg** aus dem gleichnamigen Projekt [[https:// | ||
+ | |||
+ | Falls noch nicht geschehen, installieren wir uns das betreffende Paket mit Hilfe von **YUM**. | ||
+ | # yum install ffmpeg -y | ||
+ | |||
+ | Nun erstellen wir uns ein kleines shell-Script | ||
+ | # vim / | ||
+ | <file bash / | ||
+ | # Script zum Erstellen eines Zeitrafferfilms aus den minütlich abgespeicherten Webcambildern. | ||
+ | # Das script wird jede Minute (user-crontab!) aufgerufen. | ||
+ | # | ||
+ | # usercrontab | ||
+ | # Nach dem Speichern des letzten Bildes um 23:01 Uhr werden die beiden Webcam-Zeitrafferfilme | ||
+ | # generiert. | ||
+ | #1 23 * * * / | ||
+ | # | ||
+ | # Django : 2014-02-02 | ||
+ | |||
+ | # Definition der Variablen | ||
+ | WORKDIR="/ | ||
+ | WORKDIR_1="/ | ||
+ | WORKDIR_2="/ | ||
+ | ARCHIVEDIR="/ | ||
+ | TEMPFILE="/ | ||
+ | TEMPFILE2="/ | ||
+ | MUSIK="/ | ||
+ | QUELLE_1="/ | ||
+ | QUELLE_2="/ | ||
+ | |||
+ | MOVIE_DAY=`date +%d` | ||
+ | MOVIE_MONTH=`date | ||
+ | MOVIE_YEAR=`date +%Y` | ||
+ | MOVIE_NAME_1=" | ||
+ | MOVIE_NAME_2=" | ||
+ | |||
+ | # ersten Film erstellen: | ||
+ | # ins Zielverzeichnis wechseln | ||
+ | cd $WORKDIR_1 | ||
+ | rm * -f | ||
+ | /bin/mv $QUELLE_1 $WORKDIR_1 | ||
+ | |||
+ | # Bilder zum anschließendem Bearbeiten mit ffmpeg umbenennen | ||
+ | i=0 | ||
+ | for File in $(ls *.jpg) | ||
+ | do ((i++)) | ||
+ | mv $File $(printf " | ||
+ | done | ||
+ | |||
+ | # Film erstellen und Musik dazumischen | ||
+ | / | ||
+ | |||
+ | # zweiten Film erstellen: | ||
+ | # ins Zielverzeichnis wechseln | ||
+ | cd $WORKDIR_2 | ||
+ | rm * -f | ||
+ | /bin/mv $QUELLE_2 $WORKDIR_2 | ||
+ | |||
+ | # Bilder umbenennen | ||
+ | i=0 | ||
+ | for File in $(ls *.jpg) | ||
+ | do ((i++)) | ||
+ | mv $File $(printf " | ||
+ | done | ||
+ | |||
+ | # Bilder zum anschließendem Bearbeiten mit ffmpeg umbenennen | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | Wie im Script schon vermerkt benötigen wir nun nur noch einen cronjob, der uns täglich den Filme erstellt. | ||
+ | Diesen cronjob erstellen wir mit den Rechten des Wetterusers. | ||
+ | # su - weather | ||
+ | |||
+ | Die crontab des Useres **weather** bearbeiten wir nun mit dem folgendem Befehl: | ||
+ | $ crontab -e | ||
+ | |||
+ | < | ||
+ | MAILTO=" | ||
+ | # | ||
+ | * * * * * / | ||
+ | |||
+ | # jede Minute ein Bild für den Wetterfilm abspeichern | ||
+ | * 4-22 * * * / | ||
+ | |||
+ | # um 23:01 Uhr die Filme erstellen | ||
+ | 1 23 * * * / | ||
+ | </ | ||
+ | Um 23:01 Uhr wird nun unser Script jeden Tag gestartet und je nach Größe der Ausgangsbilder und der Rechenleistung des Wetter-Servers liegen dann nach einigen Minuten die betreffenden Wetterfilme im Zielverzeichnis. | ||
+ | # ll / | ||
+ | |||
+ | < | ||
+ | -rw-r--r-- 1 nobody nobody 107M Feb 22 23:14 / | ||
+ | </ | ||
+ | ==== Film bei YouTube hochladen ==== | ||
+ | Um nun nicht jeden Film einzeln bei [[https:// | ||
+ | Zuvor wechseln wir noch inj unser Zielverzeichnis. | ||
+ | # cd / | ||
+ | |||
+ | Dann holen wir uns das Programmpaket. | ||
+ | # wget https:// | ||
+ | |||
+ | Anschließend entpacken wir das Paket. | ||
+ | # tar zxvf youtube-upload-0.7.3.tgz | ||
+ | |||
+ | Dann verschieben wir das Programmpaket ins Archiv. | ||
+ | # mv / | ||
+ | |||
+ | Zum Schluss setzen wir noch einen symlink auf das Python-Script. | ||
+ | # ln -s / | ||
+ | |||
+ | Nun brauchen wir nur noch ein kleines Shell-Script, | ||
+ | $ vim / | ||
+ | <file bash / | ||
+ | # Script zum Hochladen der erstellten WetterWebCam-Zeitrafferfilme in Richtung youtube | ||
+ | # Das script wird wird um 23:05 Uhr via user-crontab aufgerufen! | ||
+ | # | ||
+ | # usercrontab | ||
+ | # | ||
+ | # und um 23:42Uhr die Filme bei youtube hochladen | ||
+ | #42 23 * * * / | ||
+ | # | ||
+ | # Django : 2013-04-02 | ||
+ | # 2014-02-01 | ||
+ | |||
+ | export LANG=en_US.UTF-8 | ||
+ | |||
+ | MOVIE_DAY=`date +%d` | ||
+ | MOVIE_MONTH=`date | ||
+ | MOVIE_YEAR=`date +%Y` | ||
+ | |||
+ | PROG=/ | ||
+ | EMAIL=" | ||
+ | PASSWD=" | ||
+ | TITEL1=" | ||
+ | TITEL2=" | ||
+ | INFO1=" | ||
+ | cc-by-nc-sa (https:// | ||
+ | |||
+ | Standort der Wetterstation: | ||
+ | aktuelle Wetterwerte und live Webcambilder gibt es hier: https:// | ||
+ | |||
+ | INFO2=" | ||
+ | cc-by-nc-sa (https:// | ||
+ | |||
+ | Standort der Wetterstation: | ||
+ | aktuelle Wetterwerte und live Webcambilder gibt es hier: https:// | ||
+ | KEYWORDS=" | ||
+ | KEYWORDS_1=$KEYWORDS | ||
+ | MOVIE1="/ | ||
+ | MOVIE2="/ | ||
+ | |||
+ | # Upload als privates Movie mit der option --unlisted | ||
+ | $PROG --email=" | ||
+ | |||
+ | $PROG --email=" | ||
+ | </ | ||
+ | |||
+ | Wie im Script schon vermerkt benötigen wir nun nur noch einen cronjob, der uns täglich die Filme bei YouTube hochlädt. | ||
+ | Diesen cronjob erstellen wir mit den Rechten des Wetterusers. | ||
+ | # su - weather | ||
+ | |||
+ | Die crontab des Useres **weather** bearbeiten wir nun mit dem folgendem Befehl: | ||
+ | $ crontab -e | ||
+ | |||
+ | < | ||
+ | MAILTO=" | ||
+ | # | ||
+ | * * * * * / | ||
+ | |||
+ | # jede Minute ein Bild für den Wetterfilm abspeichern | ||
+ | * 4-22 * * * / | ||
+ | |||
+ | # um 23:01 Uhr die Filme erstellen | ||
+ | 1 23 * * * / | ||
+ | |||
+ | # und um 23:42 Uhr die Filme bei youtube hochladen | ||
+ | 42 23 * * * / | ||
+ | </ | ||
+ | Um 23:42 Uhr wird nun unser Script jeden Tag gestartet und die Filme bei YouTube eingestellt. | ||
+ | |||
+ | ====== Links ====== | ||
+ | * **[[wiki: | ||
+ | * **[[https:// | ||