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:// | ||