iPhone
Mein neues Spielzeug, der WD TV Live, kann Thumbnails (Vorschau-Bilder) zu einer Video-Datei anzeigen, wenn im selben Ordner eine jpg-Datei (am besten mit 120×180 Pixeln) mit dem selben Namen wie das Video liegt. Zur Datei video.mkv wird also z.B. video.jpg angezeigt.
Ich hab mir also ein Shell-Script besorgt, dass aus den Videos automatisch die Bilder generiert. Ich hab mich da für Sekunde 45 entschieden, weil bei einigen Filmen ganz am Anfang ja erstmal nutzlose Trailer der beteiligten Unternehmen laufen… Weil es vor a120llem bei 720p- oder 1080p-Videos ne Weile dauern kann, bis da ein einzelnes Bild generiert ist, hab ich dann (weil ich nicht so lang warten wollte ;) heute ein Shell-Script geschrieben, das vier Dateien auf einmal abarbeitet (ich hab nen Quad-Core). Das Script sollte man auch ohne allzu großen Aufwand anpassen können, dass es andere Aufgaben mit mehr oder weniger gleichzeitigen Jobs parallel abarbeitet (bald vielleicht auch meine Log-Files…).
Vorraussetzungen: ffmpeg, imagemagick
#!/bin/bash #set -x # file types: TYPES='.+\.(mkv|avi|mpg|mpeg|mov|wmv|mp4|flv)$' # make thumbnail at second ## of the movie OFFSET=45 # number of parallel processes WORKERS=4 NL=' ' queue_put() { queue_name=$1 value=$2 if [ -n "${!queue_name}" ]; then queue_val="${!queue_name}" eval "$queue_name=\"$queue_val$NL$value\"" #read $queue_name <<< "$queue_val$NL$value" else read $queue_name <<< "$value" fi } queue_pop() { queue_name=$1 var=$2 queue="${!queue_name}" if [ -n "$queue" ]; then index=$(expr index "$queue" "$NL") read $var <<< "${queue%%$NL*}" if [ $index -eq 0 ]; then read $queue_name <<< '' else eval "$queue_name=\"${queue#*$NL}\"" # read $queue_name <<< "${queue#*$NL}" fi fi } echo "searching for missing thumbnails..." allfiles=$(find . -regextype posix-extended -iregex "$TYPES" -exec /bin/bash -c "file=\"{}\"; exit \$(test ! -f \"\${file%.*}.jpg\")" \; -printf '%p\n') dir=$(mktemp -d) work() { echo "worker $workerid is starting up..." sleep .25 pipe="$dir/job$workerid" while [ -p "$pipe" ]; do echo READY > "$pipe" read file < "$pipe" if [ "$file" = "DONE" ]; then echo "worker $workerid is shutting down." exit 0 fi thumb=${file%.*}.jpg echo echo echo echo "worker $workerid processing $file..." ffmpeg -itsoffset -$OFFSET -i "$file" -vcodec mjpeg -vframes 1 -an -f rawvideo -y -v -1 "$thumb" mogrify -resize 120x180 "$thumb" done return 0 } masterpid=$$ workerid=0 workers=( ) while [ $workerid -lt $WORKERS ]; do mkfifo "$dir/job$workerid" work & workers[$workerid]=$! let workerid++ done sleep 3 while [ -n "$allfiles" ]; do workerid=0 while [ -n "$allfiles" -a $workerid -lt $WORKERS ]; do pipe="$dir/job$workerid" if [ -p $pipe ]; then response=$(cat < $pipe) if [ "$response" = "READY" ]; then queue_pop allfiles file echo $file > "$pipe" fi fi let workerid++ done sleep .25 done workerid=0 while [ $workerid -lt $WORKERS ]; do cat "$dir/job$workerid" > /dev/null echo DONE > "$dir/job$workerid" wait ${workers[$workerid]} let workerid++ done rm -rf "$dir"
Übrigens: Ordnern kann man mit einem folder.jpg ein Bild zuordnen.
Da ich weiß, dass darauf mindestens eine Person gewartet hat, und das schon mehr ist als bei den meisten der (viel zu seltenen) Postings hier, kommt hier jetzt also ohne lange Einleitung meine Facharbeit…
Thema: Numerische Verfahren zur Nullstellenberechnung (mit Computerereinsatz)
Bitte auf keine gefundene Fehler hinweisen, sie ist eh schon abgegeben und so muss ich mir (zumindest bis zur mündlichen Prüfung) keinen unnötigen Kopf drum machen.
PS: Die Quelltexte stehen aus alter Tradition MPL/GPL/LGPL lizenziert. Die Arbeit selbst unter der Creative Commons Namensnennung-Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz.
ich bin die nächste Woche nicht zu Hause. Weil hier ständig neuer Kommentar-Spam eintrudelt, sind Kommentare (und Track-/Pingbacks) bis ich wieder da bin gesperrt.
gerade war Großreinemachen angesagt. Alle Kommentare mit einer kommerziellen Homepage sind rigoros rausgeflogen. Auch wenn da jetzt vielleicht ein paar Selbstgespräche rausgekommen sind.
kann der nich schon heute da sein?
oder: hätte DHL es nicht in der halben Stunde, in der ich zu Hause war, probieren können?
Super. Wenn eine Behörde irgendwas machen will, aber nicht darf, weil es gegen Gesetze oder gar gegen das Grundgesetz verstoßen würde, dann wissen wir seit letzter Woche, dass sie nur beim BND anklopfen, lieb fragen und vielleicht das ganze noch bezahlen muss. Der erledigt dann im Rahmen der “Amtshilfe” die Drecksarbeit, und so ist die illegale Aktion dann plötzlich legal. Weil es hat ja nicht die Behörde was illegales gemacht, sondern der BND. (Und der darf das.)
Nun stellen wir uns mal alle vor, was passiert, wenn da nicht Steuerbehörden sondern Ermittlungsbehörden Hilfe benötigen - wahrscheinlich zur Terrorverfolgung - und freuen uns auf eine rosige Zukunft hier in Deutschland. Da braucht man gar keine Stasi mehr einführen.
Update: Mir fällt gerade auf, dass Terrorismus bereits zu den Aufgabengebieten eines BND gehört. Da können sie also schon Blödsinn anstellen, wenn sie wollen und brauchen niemand anderen dazu. Diesen Einschub also einfach ignorieren…
Update 2: Zum Thema Terrorismus fällt mir gerade noch ein Artikel bei Telepolis ein. der zwar irgendwie extrem nach Verschwörungstheorie klingt, es aber andererseits zu Telepolis geschafft hat…
organize-search-engines_1.1.1pre.xpi