Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
wetter:mobotix:movie [08.01.2014 17:08. ] – angelegt djangowetter: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: 
 + 
 +{{ :wetter:mobotix:west_lastday.mp4 |Wetter-Webcam-Zeitrafferfilm mit Blick Richtung Westen}} 
 + 
 +===== 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 /home/weather/movies 
 + 
 +Als nächsten legen wir uns ein passendes Downloadscript an. 
 + 
 +   # vim /usr/local/bin/cam4mov.sh 
 +<file bash /usr/local/bin/cam4mov.sh>#!/bin/sh  
 +# 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 * * * /usr/local/bin/cam4mov.sh 1>/dev/null 2>&
 +
 +# Django : 2013-03-13  
 + 
 + 
 +WORKDIR="/home/weather/movies" 
 +CAMURL_1="https://cam-west.intra.nausch.org/record/current.jpg" 
 +CAMURL_2="https://cam-ost.intra.nausch.org/record/current.jpg" 
 + 
 +PIC_CAM_1="CAM_WEST_" 
 +PIC_CAM_2="CAM_OST_" 
 +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_HOURS"-"$PIC_MINUTES"-"$PIC_SECONDS".jpg" 
 +PIC_NAME_2=$PIC_CAM_2$PIC_YEAR$PIC_MONTH$PIC_DAY"_"$PIC_HOURS"-"$PIC_MINUTES"-"$PIC_SECONDS".jpg" 
 + 
 +cd $WORKDIR 
 +/usr/bin/wget --user="webcamuser" --password="Django-is-a-G33k!" $CAMURL_1 
 +/usr/bin/rsync -av current.jpg $PIC_NAME_1 
 +/bin/rm current.jpg 
 +/usr/bin/wget --user="webcamuser" --password="Django-is-a-G33k!" $CAMURL_2 
 +/usr/bin/rsync -av current.jpg $PIC_NAME_2 
 +/bin/mv current.jpg $PIC_NAME_2 
 +</file> 
 + 
 +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>SHELL=/bin/bash 
 +MAILTO="weather@wetterstation-pliening.info" 
 + 
 +# In der Zeit von 4:00 - 22:59 Uhr jeweils ein Bild der Webcams für den Wetterfilm abspeichern 
 +* 4-22 * * * /usr/local/bin/cam4mov.sh 1>/dev/null 2>&
 +</code> 
 + 
 +==== Generieren des Zeitrafferfilms ==== 
 +Zum Generieren des bzw. der Zeitrafferfilme greifen wir auf das Programm **ffmpeg** aus dem gleichnamigen Projekt [[https://www.ffmpeg.org/|FFmpeg]] zurück. 
 + 
 +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 /usr/local/bin/pics2movie.sh 
 +<file bash /usr/local/bin/pics2movie.sh>#!/bin/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 * * * /usr/local/bin/pics2movie.sh 1>/dev/null 2>&
 +
 +# Django : 2014-02-02 
 + 
 +# Definition der Variablen 
 +WORKDIR="/home/weather/movies/" 
 +WORKDIR_1="/home/weather/movies/WEST" 
 +WORKDIR_2="/home/weather/movies/OST" 
 +ARCHIVEDIR="/mnt/nas/weather/movies/archive/" 
 +TEMPFILE="/home/weather/movies/output.avi" 
 +TEMPFILE2="/home/weather/movies/output2.avi" 
 +MUSIK="/home/weather/movies/musik/Joakim_YAMA_-_Astralia_60sec.wav" 
 +QUELLE_1="/home/weather/movies/CAM_WEST*" 
 +QUELLE_2="/home/weather/movies/CAM_OST*" 
 + 
 +MOVIE_DAY=`date +%d` 
 +MOVIE_MONTH=`date  +%m` 
 +MOVIE_YEAR=`date +%Y` 
 +MOVIE_NAME_1="west"_"$MOVIE_YEAR$MOVIE_MONTH$MOVIE_DAY".avi 
 +MOVIE_NAME_2="ost"_"$MOVIE_YEAR$MOVIE_MONTH$MOVIE_DAY".avi 
 + 
 +# 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 "PIC_%04d.jpg " $i) 
 +done 
 + 
 +# Film erstellen und Musik dazumischen 
 +/usr/bin/ffmpeg -f image2 -i PIC_%04d.jpg -i $MUSIK -shortest -vcodec libx264 $ARCHIVEDIR$MOVIE_NAME_1 
 + 
 +# 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 "PIC_%04d.jpg " $i) 
 +done 
 + 
 +# Bilder zum anschließendem Bearbeiten mit ffmpeg umbenennen 
 +/usr/bin/ffmpeg -f image2 -i PIC_%04d.jpg -i $MUSIK -shortest -vcodec libx264 $ARCHIVEDIR$MOVIE_NAME_2 
 +</file> 
 + 
 +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 
 + 
 +<code>SHELL=/bin/bash 
 +MAILTO="django@nausch.org" 
 +#Wetterdatenupdate der Webcam 
 +*  *  *  *  *   /usr/local/bin/cam-update.sh 1>/dev/null 2>&
 + 
 +# jede Minute ein Bild für den Wetterfilm abspeichern 
 +* 4-22 * * * /usr/local/bin/cam4mov+.sh 1>/dev/null 2>&
 + 
 +# um 23:01 Uhr die Filme erstellen 
 +1 23 * * * /usr/local/bin/pics2movie.sh 1>/dev/null 2>&
 +</code> 
 +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 /mnt/nas/weather/movies/archive/*_20140222.avi -h 
 + 
 +<code>-rw-r--r-- 1 nobody nobody 128M Feb 22 23:28 /mnt/nas/weather/movies/archive/ost_20140222.avi 
 +-rw-r--r-- 1 nobody nobody 107M Feb 22 23:14 /mnt/nas/weather/movies/archive/west_20140222.avi 
 +</code> 
 +==== Film bei YouTube hochladen ==== 
 +Um nun nicht jeden Film einzeln bei [[https://youtube.com|YouTube]] hochladen zu müssen, wollen wir auch das automatisieren. wir greifen dazu auf das Programm **youtube-upload** von [[tokland@gmail.com|Arnau Sanchez]] zurück. Von der [[https://code.google.com/p/youtube-upload/downloads/list|Downloadseite]] laden wir das Paket auf unseren Rechner. 
 +Zuvor wechseln wir noch inj unser Zielverzeichnis. 
 +   # cd /usr/local/src/ 
 + 
 +Dann holen wir uns das Programmpaket. 
 +   # wget https://code.google.com/p/youtube-upload/downloads/detail?name=youtube-upload-0.7.3.tgz 
 + 
 +Anschließend entpacken wir das Paket. 
 +   # tar zxvf youtube-upload-0.7.3.tgz 
 + 
 +Dann verschieben wir das Programmpaket ins Archiv. 
 +   # mv /usr/local/src/youtube-upload-0.7.3.tgz /usr/local/src/packages 
 + 
 +Zum Schluss setzen wir noch einen symlink auf das Python-Script.  
 +   # ln -s /usr/local/src/youtube-upload-0.7.3/youtube_upload/youtube_upload.py /usr/local/bin/youtube_upload 
 + 
 +Nun brauchen wir nur noch ein kleines Shell-Script, in dem wir die einzelnen Daten, wie **Titel**, **Beschreibung**, **Kathegorie** u.s.w. für YouTube definieren. 
 +   $ vim /home/weather/bin/movie2youtube 
 +<file bash /home/weather/bin/movie2youtube>#!/bin/sh  
 +# 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 * * * /home/weather/bin/movie2youtube 
 +
 +# Django : 2013-04-02 
 +#          2014-02-01 
 + 
 +export LANG=en_US.UTF-8 
 + 
 +MOVIE_DAY=`date +%d` 
 +MOVIE_MONTH=`date  +%m` 
 +MOVIE_YEAR=`date +%Y` 
 + 
 +PROG=/usr/local/bin/youtube-upload 
 +EMAIL="anmeldeadresse@youtube.hell" 
 +PASSWD="Dj4n901$4G33k!" 
 +TITEL1="WWC-Film vom "$MOVIE_DAY"."$MOVIE_MONTH"."$MOVIE_YEAR" der Wetterstation Pliening Richtung Westen" 
 +TITEL2="WWC-Film vom "$MOVIE_DAY"."$MOVIE_MONTH"."$MOVIE_YEAR" der Wetterstation Pliening Richtung Osten" 
 +INFO1="WetterWebCam-Film (Zeitrafferaufnahme) der WetterWebCam mit Blickrichtung nach Westen vom "$MOVIE_DAY"."$MOVIE_MONTH"."$MOVIE_YEAR" für die Zeit von 04:00 - 23:00 Uhr der Wetterstation Pliening. Der Kurzfilm ist mit Hintergrundmusik - Titel Astralia aus dem Album VoRTeX von Joakim YAMA unterlegt.  
 +cc-by-nc-sa (https://www.jamendo.com/de/track/84070/astralia) 
 + 
 +Standort der Wetterstation: https://www.openstreetmap.org/?mlat=48.1987&mlon=11.7980&zoom=12 
 +aktuelle Wetterwerte und live Webcambilder gibt es hier: https://wetterstation-pliening.info" 
 + 
 +INFO2="WetterWebCam-Film (Zeitrafferaufnahme) der WetterWebCam mit Blickrichtung nach Osten vom "$MOVIE_DAY"."$MOVIE_MONTH"."$MOVIE_YEAR" für die Zeit von 04:00 - 23:00 Uhr der Wetterstation Pliening. Der Kurzfilm ist mit Hintergrundmusik - Titel Astralia aus dem Album VoRTeX von Joakim YAMA unterlegt. 
 +cc-by-nc-sa (https://www.jamendo.com/de/track/84070/astralia) 
 + 
 +Standort der Wetterstation: https://www.openstreetmap.org/?mlat=48.1987&mlon=11.7980&zoom=12 
 +aktuelle Wetterwerte und live Webcambilder gibt es hier: https://wetterstation-pliening.info" 
 +KEYWORDS="Wetter, Wetterbeobachtung, Wetterstation, Webcam, Pliening" 
 +KEYWORDS_1=$KEYWORDS 
 +MOVIE1="/mnt/nas/weather/movies/archive/west"_"$MOVIE_YEAR$MOVIE_MONTH$MOVIE_DAY".avi 
 +MOVIE2="/mnt/nas/weather/movies/archive/ost"_"$MOVIE_YEAR$MOVIE_MONTH$MOVIE_DAY".avi 
 + 
 +# Upload als privates Movie mit der option --unlisted 
 +$PROG --email="$EMAIL" --password="$PASSWD" --title="$TITEL1" --description="$INFO1" --category=Nonprofit --keywords="$KEYWORDS" "$MOVIE1" | grep www.youtube.com 
 + 
 +$PROG --email="$EMAIL" --password="$PASSWD" --title="$TITEL2" --description="$INFO2" --category=Nonprofit --keywords="$KEYWORDS" "$MOVIE2" | grep www.youtube.com 
 +</file> 
 + 
 +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 
 + 
 +<code>SHELL=/bin/bash 
 +MAILTO="django@nausch.org" 
 +#Wetterdatenupdate der Webcam 
 +*  *  *  *  *   /usr/local/bin/cam-update.sh 1>/dev/null 2>&
 + 
 +# jede Minute ein Bild für den Wetterfilm abspeichern 
 +* 4-22 * * * /usr/local/bin/cam4mov+.sh 1>/dev/null 2>&
 + 
 +# um 23:01 Uhr die Filme erstellen 
 +1 23 * * * /usr/local/bin/pics2movie.sh 1>/dev/null 2>&
 + 
 +# und um 23:42 Uhr die Filme bei youtube hochladen 
 +42 23 * * * /home/weather/bin/movie2youtube 
 +</code> 
 +Um 23:42 Uhr wird nun unser Script jeden Tag gestartet und die Filme bei YouTube eingestellt.  
 + 
 +====== Links ====== 
 +  * **[[wiki:start#wetterbeobachtung_wview_stormforce_wxtoimg|Zurück zu >>Wetterbeobachtung (Wview, Stormforce, WxtoImg)<<]]** 
 +  * **[[https://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]** 
  
-~~UNDERCONSTRUCTION~~ 
  • wetter/mobotix/movie.1389200887.txt.gz
  • Zuletzt geändert: 08.01.2014 17:08.
  • von django