Artikel suchen 

Artikel suchenFilter
Das LG KU990 Viewty kann DivX- und mit etwas Überredungskunst auch Xvid-Videos abspielen. Im Folgenden wird beschrieben, wie man solche Videos selbst enkodieren kann.

LG KU990 Viewty

LG KU990 Viewty

Seit kurzem bin ich Besitzer des LG KU990 Viewty. Es ist ein DivX-zertifiziertes Handy und spielt somit DivX-Videos ab. Dazu kann man nun den mitgelieferten DivX-Converter nutzen, muss man aber nicht.

Untersttzte Codecs und Bitraten

Das Viewty spielt offiziell nur DivX-Videos ab. Es kann praktisch aber auch andere MPEG4-Varianten abspielen, wenn sie als DivX getarnt sind. So kann z.B. Xvid verwendet werden, wenn der FOURCC-Code z.B. auf "DX50" (DivX 5) gesetzt wird. Als Audiocodec ist MP3 geeignet. Man darf allerdings max. 44100Hz nehmen.

Eine Video-Bitrate von 4000kbit ging problemlos. Soviel sollte man aber nicht brauchen. 1000kbit ist schon extrem gut. 500kbit reichen zur Ansicht am Handy auch noch.

Auflsung

Maximal 307200 Pixel (z.B. 640*480). Die Verhltnisse knnen jedoch fast beliebig gewhlt werden (Seitenverhltnisse von 5:1 bis 1:5 waren problemlos).

Maximale Auflsung fr unterschiedliche Seitenverhltnisse:

  • 4:3 ⇒ 640*480
  • 5:4 ⇒ 620*494
  • 16:9 ⇒ 740*414

Programme zur Enkodierung

Unter Windows

Unter Windows kann man den mitgelieferten DivX-Converter nehmen. Alternativ knnte man AutoGK nutzen (Achtung: DivX whlen, alternativ Xvid und FOURCC-Code berschreiben).

Unter Linux (und Windows)

Will oder kann man keine Windows-Programme nutzen, bietet sich FFmpeg an.

Beispiel mit FFmpeg, Xvid 700kbit/MP3 112kbit (Quellmaterial ist eine DVB-T-Aufnahme im Seitenverhltnis 16:9. Zum Demultiplexen wurde ProjectX benutzt):

Linux:

ffmpeg -i src.m2v -i src.mp2 -vcodec xvid -s 740*414 -b 700kb -vtag DX50 \
-acodec mp3 -ab 112kb -ar 44100 out_740x414.avi

FFmpeg fr Windows nutzt abweichende Namen fr die Codecs:

ffmpeg -i src.m2v -i src.mp2 -vcodec libxvid -s 740*414 -b 700kb -vtag DX50 \
-acodec libmp3lame -ab 112kb -ar 44100 out_740x414.avi

Automatische Enkodierung von VDR-Aufnahmen

Um meine VDR-Aufnahmen automatisch zu enkodieren, habe ich ein Python-SkriptDirektdownload geschrieben, das diese Aufgabe in folgenden Schritten erledigt:

  • Prfen, ob die Aufnahme in einer Ausschlussliste liegt. Bestimmte Aufnahmen werden dann nicht enkodiert.
  • Demultiplexen mit ProjectX. Somit wird sichergestellt, dass die Aufnahme unbeschdigt und synchron ist.
  • Berechnung der maximalen Gre (max. 307200 Pixel) entsprechend dem Seitenverhltnis.
  • Enkodierung mit Xvid (Optional im 2-Pass-Verfahren).
  • Lschen von temporren Dateien.

Um dieses Skript fr jede Aufnahme auszufhren, erstellt man am besten ein Shell-Skript, das das Python-Skript aufruft. Das Shell-Skript muss im Verzeichnis recording-hooks (unter Debian /etc/vdr/recording-hooks/) der VDR-Konfiguration liegen:

#!/bin/bash
# Use Latin1 as charset
export LC_ALL=de_DE
# Run vdr2xvid nicely in the background
nice -n 19 /pfad/zu/vdr2xvid.py $1 $2 &

Viel Spa beim gucken :)

Erstellt am 24.11.2007 um 21:16 Uhr von streawkceur.
Abrufe: 45847 - Kommentare: 40 - Trackbacks: 0 - Trackback-Link: http://gedankenkonstrukt.de/blog/trackback/?id=52.
Tags: , , , , , , , , .  

Wer vor der Frage steht, ob er TurboGears oder Pylons nutzen will, bekommt bald eine interessante Antwort: Beides gleichzeitig.

Web-Frameworks in Python

Hurra! Ich habe in letzter Zeit ein wenig mit Python rumgespielt und mich da insbesondere fr die Web-Frameworks interessiert.

!Die drei groen scheinen Django, TurboGears und Pylons zu sein.

Ich habe sie jeweils nur kurz ausprobiert. Hier meine Erfahrungen:

Django

Django

Django

Django hat fr fast alle Aufgaben (Templating, ORM, Routing/Dispatch) eigene Komponenten entwickelt.

  • Pro: Fhlt sich sehr integriert und solide an.
  • Pro: Einheitliche Dokumentation an einem Ort.
  • Contra: Man muss auch jede Komponente neu lernen und wird sie kaum auerhalb Django nutzen knnen
  • Contra: Wenn einem eine Komponente nicht passt, hat man i.d.R. Pech gehabt.
  • Contra: Kleinere potenzielle Entwicklerschaft je Komponente.

TurboGears

TurboGears

TurboGears

TurboGears (TG) geht einen anderen Weg und versucht so viele Komponenten wie mglich wiederzuverwenden und zu integrieren. TG 1.0 benutzt standardmig Kid fr's Templating, SQLObject als ORM und CherryPy frs Routing/Dispatching. Man hat aber zustzlich die Mglichkeit mit relativ wenig Aufwand andere Komponenten dafr zu nutzen.

  • Pro: Grere Flexibilitt
  • Pro: Modularer Aufbau
  • Pro: Bringt viele nette Helfer mit (z.B. Datenbankeditor)
  • Contra: Fhlt sich weniger integriert an als Django
  • Contra: Grere Komplexitt
  • Contra: Die in Version 1.0 standardmig verwendeten Komponenten sind nicht mehr State of the Art.

Pylons

Pylons

Pylons

Pylons geht den gleichen Weg wie TG, benutzt aber "modernere" Komponenten wie SQLAlchemy als ORM und Routes frs Routing/Dispatching. Auerdem setzt es auf WSGI auf und hat somit eine solide Basis, die auch eine bessere Wiederverwendung von Anwendungsteilen ermglichen soll.

  • Pro: Extrem modular
  • Pro: Nutzt moderne Komponenten
  • Pro: Setzt auf WSGI auf
  • Pro: Hat mglicherweise das grte Potenzial
  • Contra: Fhlt sich am wenigsten integriert an

Die gute Nachricht

Da ich kein Freund von monolithischen Systemen bin, war ich zwischen TG und Pylons hin- und hergerissen. TG fhlt sich etwas integrierter and und bringt mehr Goodies mit. Pylons ist hingegen moderner.

Diese Probleme scheinen sich aber bald zu lsen! Denn wie Mark Ramm in seinem Blog schreibt, wird TG 1.1 modernere Komponenten wie Genshi und SQLAlchemy nutzen. TG 2.0 wird sogar komplett auf Pylons aufsetzen und damit von dessen Vorteilen profitieren knnen.

Da freut man sich doch drauf :)

Erstellt am 28.06.2007 um 20:06 Uhr von streawkceur.
Abrufe: 14552 - Kommentare: 1 - Trackbacks: 0 - Trackback-Link: http://gedankenkonstrukt.de/blog/trackback/?id=41.
Tags: , , , , , , , , .  

Überprüfung des OPML-Exports der in Thunderbird abonnierten Feeds. Jetzt mit Python ;)

Problem

Gleiches Problem, gleiche Lsung. Aber zur Abwechslung mal in Python. Bin ohnehin in letzter Zeit recht interessiert in Python, da dachte ich mir, dass das doch mal eine nette bung ist.

Lsung

Hier also das Python-Script:

#!/usr/bin/python

import urllib2, re

pattern = re.compile('title="([^"]*)".*xmlUrl="([^"]*)"', re.I)
opml = open("Meine_Thunderbird_Feeds.opml", "r")
for line in opml:
    result = pattern.search(line)
    if result:
        title, url = result.group(1), result.group(2)
        try:
            urllib2.urlopen(url)
        except urllib2.HTTPError, e:
            print "ERROR (%s): %s -> %s\n" % (e, title, url)

Abgrenzung zur Perl-Version

  • Parst auch kein XML
  • Wird allerdings nicht als "Bad Behavior" erkannt.

Erstellt am 23.06.2007 um 14:11 Uhr von streawkceur.
Abrufe: 1737 - Kommentare: 0 - Trackbacks: 1 - Trackback-Link: http://gedankenkonstrukt.de/blog/trackback/?id=37.
Tags: , , , , , , , , .  

ltere Beitrgeltere Beitrge