Aktuell

Das neue Multifunktionsgebäude ist fertig und nach ca. 70.000 Bildern und über 7 GB an Daten stellt die CorviCam vorerst ihren Betrieb ein.

Wir hoffen, viele Zuschauer hatten ihre Freude an diesem kleinen Projekt.

Unser Film bleibt natürlich weiterhin online.

Technischer Hintergrund

In Gebäude 2 läuft ein kleiner Computer, an dem eine ganz normale Webcam hängt, die alle 5 Minuten ein Bild schießt (das erledigt die frei verfügbare Software YawCam). Diese Bilder holt unser Schulserver (openML/Debian) mit rsync ab und erstellt eine Datensicherung. Für das Webcambild wird eine Kopie auf unserem Webserver gespeichert.

Für das Video arbeitet ein Skript die Bilder ab, ändert die Größe mit ImageMagick und packt es mit dem ebenfalls frei verfügbaren ffmpeg in zwei Schritten zum flv-Video. Nebenher wird eine Audio-Datei gemäß der Länge mit sox gekürzt und das Programm qwavfade sorgt für einen sanften Ausklang, bevor die Musik unter das Video gemischt wird. Abgespielt wird das ganze durch den Flowplayer (über ein Modul unseres CMS Contao).

Die gesamte verwendete Software ist frei verfügbar und kann unter Linux direkt genutzt werden. Dank der Creative Common License ist auch die verwendete Musik - derzeit das Stück "Voyage" von OmniBrain - lizenzfrei nutzbar.

Für jeden, der selbst so etwas probieren mag, hier das Skript:

#/bin/bash
# a tiny script that will encode a flv-movie from a folder of pictures and a wav file
# pics are synced with WFOLDER/cc, music is available as WFOLDER/music.wav 
# prerequisites (in order of apearance): rsync, imagemagick, ffmpeg, sox, quelcom/qwavfade
# this script is mainly a composition of hints/faqs/tipps written by the worldwide community
# so use and distribute it freely and enjoy the power of free software (as we do in our school)
# hints/comments/ideas always welcome -> homepage (a) corvinianum.de

# prepare for work 
WFOLDER='/root/webcam'    # CUSTOMIZE HERE
RFOLDER='/media/corvicam' # CUSTOMIZE HERE
mkdir $WFOLDER/ccrenamed $WFOLDER/ccsmall

# sync remote image folders with local backup
rsync $RFOLDER/ $WFOLDER/cc/ -a

# resize images
cd $WFOLDER/cc
find . -iname "*.jpg" | xargs -l -i convert -size 320x240 -quality 80 {} $WFOLDER/ccsmall/{}

# rename images for ffmpeg (actually just create hardlinks)
cd $WFOLDER/ccsmall
x=1; for i in *jpg; do counter=$(printf %05d $x); ln "$i" $WFOLDER/ccrenamed/img"$counter".jpg; x=$(($x+1)); done

# encode jpegs to mpg
ffmpeg -f image2 -sameq -y -i $WFOLDER/ccrenamed/img%05d.jpg $WFOLDER/tmp.mpg

# trim music, fade end, create mp3 (mind: sox on lenny without mp3 support; for simple fading we use qwavfade)
ffmpeg -i $WFOLDER/tmp.mpg 2>&1 | grep Duration | cut -d ' ' -f 4 | sed s/,// | xargs -i sox $WFOLDER/music.wav $WFOLDER/tmp.wav trim 0 {}
qwavfade -d 8s -o $WFOLDER/tmp.wav
ffmpeg -i $WFOLDER/tmp.wav -ar 22050 -ac 1 -ab 64k $WFOLDER/tmp.mp3

# encode jpegs to mpg (some tweaks for hq) / create flv
ffmpeg -i $WFOLDER/tmp.mpg -i $WFOLDER/tmp.mp3 -ar 22050 -ab 96k -r 25 -y -f flv -qscale 6 $WFOLDER/webcam.flv

# copy to webserver
scp $WFOLDER/webcam.flv corvinianum.de:/var/www/httpdocs/corvi_dateien/medien/video

# some cleaning
rm -f $WFOLDER/tmp.mpg $WFOLDER/tmp.wav $WFOLDER/tmp.mp3 $WFOLDER/webcam.flv
rm -rf $WFOLDER/ccrenamed
rm -rf $WFOLDER/ccsmall