Monthly Archive for July, 2006

python und mencoder

Ich bin ja überhaubt kein Programmier und auch ziemlich unbegabt. Nach einem Gespräch mit einem Freund hat es mich mal wieder gepackt und ich habe mir Python angeschaut und gleich verliebt. Ich habe vor einiger Zeit mal ein Script geschrieben um eine Video DVD zu einem Matroska File um zu kodieren. Das ganze mit OGG Sound und MPEG4 für den Video Stream. Die letzten Tage habe ich dazu genutzt an einer Python Version zu bauen. Sie ist alles andere als gut aber für mich ein Anfang in das Programmieren:

#!/usr/bin/python

###################################################
# VARIABLES
WorkDir = ‘/tmp’

###################################################

import os

def audio(lang, track):
# converts a dvd track to a audio wav file
ToWav = ‘mplayer -alang %s -ao pcm:file=audio.wav -vc null -vo null dvd://%s’ % (lang, track)
#print ToWav
os.system(ToWav)

# normalize the audio file
os.system(’normalize audio.wav’)

# encode the audio to a ogg file
os.system(’oggenc -q3 -oaudio-q3.ogg audio.wav’)

def video(bitr, track, crops):
# pass 1 step for video encoding to mpeg4
Pass1 = ‘mencoder -ofps 25 -nosound -vf crop=%s,hqdn3d=2:1:2 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=%s:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=1 dvd://%s -o movie.avi’ % (crops, bitr, track)
#print Pass1
os.system(Pass1)

# pass 2 step for video encoding to mpeg4
Pass2 = ‘mencoder -ofps 25 -nosound -vf crop=%s,hqdn3d=2:1:2 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=%s:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=2 dvd://%s -o movie.avi’ % (crops, bitr, track)
#print Pass2
os.system(Pass2)

def merge(outputname):
Merge = ‘mkvmerge -o %s.mkv -A movie.avi audio-q3.ogg’ % (outputname)
#print Merge
os.system(Merge)

def cropdetect(track):
Crop = ‘mplayer dvd://%s -vf cropdetect -vo null -ao null -frames 1000′ % (track)
#print Crop
os.system(Crop)

crop = str(raw_input(’Crop: ‘))
return(crop)

def deletefile(file):
CompletePath = WorkDir + ‘/’ + file
#print CompletePath
os.remove(CompletePath)

def main():
os.chdir(WorkDir)

tracknumber = str(raw_input(’Track: ‘))
crop = cropdetect(tracknumber)

bitrate = str(raw_input(’Bitrate: ‘))
language = str(raw_input(’Language: ‘))
moviename = str(raw_input(’Moviename: ‘))

audio(language, tracknumber)
video(bitrate, tracknumber, crop)
merge(moviename)

# clean up
deletefile(’divx2pass.log’)
deletefile(’movie.avi’)
deletefile(’audio.wav’)
deletefile(’audio-q3.ogg’)

main()

Rache für den Mord an Bruno

Ich hatte ja noch nichts über Bruno geschrieben. Da ich einen Jäger als Kollegen habe ist mir die Vorgehensweise solcher Menschen bekannt. Sie sehen ihre Taten wirklich als “Naturschutz” und Schutz vor den Tieren. Für mich unverständlich. Mord kann doch kein Schutz für Leben sein. Besonders einen jungen Bären der absolut schüchtern vor Menschen war. Komischerweise haben andere Länder kein Problem mit frei lebenden Bären. Wenn diese zu Menschen treten werden sie wieder in den Wald gebracht. Aber willkommen in Deutschland wo alles ein wenig anders ist. Typisch deutscher geht es einfach nicht mehr.

der Spiegel

locales

Sorry ich bin wohl gerade in einer sehr unkreativen Blog-Phase. Ich habe auf meinem Gentoo Server echt ein Problem mit locales, unicode und der Konsole. Und das ganze seit dem letzten glibc Update. Ich verstehe die locales einfach nicht. locale -a zeigt einem ja die locales an die Einsatzfähig sind. Da sieht das ganze bei mir so aus

eden ~ # locale -a
C
en_US.utf8
POSIX

Also en_US.utf8. Und genau das möchte ich auch haben. Nur komisch das meine locale.gen Datei so aussieht:

eden ~ # cat /etc/locale.gen
# /etc/locale.gen: list all of the locales you want to have on your system
#
# The format of each line:
#
#
# Where is a locale located in /usr/share/i18n/locales/ and
# where is a charmap located in /usr/share/i18n/charmaps/.
#
# All blank lines and lines starting with # are ignored.
#
# For the default list of supported combinations, see the file:
# /usr/share/i18n/SUPPORTED
#
# Whenever glibc is emerged, the locales listed here will be automatically
# rebuilt for you. After updating this file, you can simply run `locale-gen`
# yourself instead of re-emerging glibc.

#en_US ISO-8859-1
en_US.UTF-8 UTF-8
#ja_JP.EUC-JP EUC-JP
#ja_JP.UTF-8 UTF-8
#ja_JP EUC-JP
#en_HK ISO-8859-1
#en_PH ISO-8859-1
#de_DE ISO-8859-1
#de_DE@euro ISO-8859-15
#es_MX ISO-8859-1
#fa_IR UTF-8
#fr_FR ISO-8859-1
#fr_FR@euro ISO-8859-15
#it_IT ISO-8859-1

Also en_US.UTF-8. Also was mache ich falsch? Ich dachte das wäre Casesensitve. Alle ncurses Programme sehen unter Putty und direkt in der Konsole absolut verwurstelt aus. Wenn ich von meinem Desktop per SSH zugreife sieht alles normal aus. Um alles ein wenig zu retten habe ich meine CONSOLEFONT angepasst. Nun kann man es ein wenig ertragen aber UTF-8 sieht anders aus :) Ach ja meine LC-Variabeln:

marv@eden ~ $ locale
LANG=en_US.utf8
LC_CTYPE=”en_US.utf8″
LC_NUMERIC=”en_US.utf8″
LC_TIME=”en_US.utf8″
LC_COLLATE=”en_US.utf8″
LC_MONETARY=”en_US.utf8″
LC_MESSAGES=”en_US.utf8″
LC_PAPER=”en_US.utf8″
LC_NAME=”en_US.utf8″
LC_ADDRESS=”en_US.utf8″
LC_TELEPHONE=”en_US.utf8″
LC_MEASUREMENT=”en_US.utf8″
LC_IDENTIFICATION=”en_US.utf8″
LC_ALL=en_US.utf8

Aber ich finde es halt komisch das die beiden locales anders geschrieben werden.

Vegan Geeks Podcast 2

Also Respekt für diesen super Podcast. Den Vegan Geeks Podcast gibt es nun in der zweiten Ausgabe. Und ich habe sogar einen Beitrag dazu geleistet :)

IBM und Napoleon Dynamite

Knock it off, Napoleon! Just make yourself a dang quesa-dilluh!”.

This phrase, from the movie Napoleon Dynamite, is the cipher key IBM are using to publish encrypted XML at this year’s Wimbledon grand slam. But is this a rather glaring lapse in security, or simply an anticipatory nod to curious hackers, many of whom surely rank amongst the fans of this quriky 2004 movie?

Herrlich :) Bester Film!

Advanced Message Queue Protocol

Manchmal verstehe ich Firmen nicht. Da gibt es schon ein Messanging Protokoll was absolut Frei ist..und schon gut implementiert in Server und Clients…aber neee, muss natürlich was anderes her weil sie sich nicht mit dem Thema aussernandergesetzt haben. Danke Cisco, Danke Red Hat. XMPP ist sogar ein Internet Standard.