map_eps2avi

3route05

Was macht das Programm?

Es zeichnet Reiserouten in Karten, als Film. Am einfachsten schaut Euch das Bsp. an. Dieses ist natürlich qualitativ schlechter als normal, um die Filegröße klein zu halten.

Wie funktioniert es?

Das Programm habe ich für den Eigenbedarf geschrieben, deshalb ist es ein Kompromiß aus einfacher Bedienung und einfacher Programmierung. Falls es viele andere Nutzer finden sollte kann ich natürlich noch etwas zusätzliche Arbeit reinstecken. Bisher ist die Devise: was leicht mit anderen kostenlos erhältlichen Programmen machbar ist muß ich nicht neu programmieren. Dem Programmpaket liegt ein Verzeichnis mit einem Beispielprojekt bei. Die einzelnen Filenamen bestehen aus einer laufendem Nummer und einem mehr oder weniger aussagekräftigen Namen. Hier die einzelnen Schritte:

  1. Rohbild der Karte: Man besorgt sich irgendwoher eine Grafikdatei der Karte, hierzu bietet sich z.B. OSM an, da diese Karten frei verwendet werden können. Von dort stammt auch die Beispielskarte.
  2. Zurechtgeschnittene Karte: diese Karte muß man selber mit einer beliebigen Grafiksoftware auf das gewünschte Videoformat zurechtschneiden. Also z.B. für PAL auf 720*576 oder für Full-HD auf 1920*1080. map_eps2avi übernimmt einfach die Größe der Grafikdatei, paßt also nichts an. Das Bsp. hat nur 360*288 Pixel. Will man Text einfügen kann man das auch in diesem Schritt machen.
  3. Karte mit Route: zum Zeichnen der Route sollte man OpenOffice.org.Draw verwenden. Hier zeichnet man mit dem “Kurve” Werkzeug die Reiseroute ein. Ich benutze dazu folgende Einstellungen: Dicke: 0,1cm, Farbe: Hellrot. Beim Zeichnen ist zu beachten, daß man es in der Reihenfolge macht in der die Route angezeigt werden soll. Außer der Route keine anderen Sachen einfügen, außer der Pixelgrafik und Kurven ignoriert map_eps2avi alles, im schlimmsten Falle könnte es sogar zu Fehlern führen. Text also z.B. in Schritt 2 einfügen oder später im Videoschnittprogramm, Dort kann man dann z.B. Text ein- und ausblenden.
  4. Die so erzeugte Karte exportiert man im Format EPS. Dabei muß darauf geachtet werden, daß wirklich alles exportiert wird. Zum exportieren sollten folgende Optionen verwendet werden:
    1. keine Vorschau
    2. Level 2
    3. Farbe
    4. keine Kompression
  5. Jetzt endlich kommt map_eps2avi zur Anwendung. Man lädt die gerade erzeugte EPS-Datei. Angezeigt wird die Karte ohne Route. Falls nötig ändert man ggf. einige Einstellungen:
    • Vorspann: die Zeit, die die Karte am Anfang leer angezeigt werden soll. Voreingestellt 2s
    • Hauptteil: die Zeit die es dauert die Route einzuzeichnen. Voreingestellt 20s
    • Nachspann: die Zeit die die Karte am Ende konstant mit gesamter Route gezeigt werden soll. Voreingestellt 2s
    • Frames/s, also normalerweise 25 für PAL oder 30 für NTFS

    Dann kann man die AVI-Datei speichern. Hierbei wird gefragt welcher Komprimierer dazu verwendet werden soll. Ich benutze normalerweise “Microsoft Video 1” mit der voreingestellten Komprimierungsqualität von 75%. Für das Bsp. habe ich “Microsoft MPEG-4 Video Codec V1” mit einer sehr geringen Bitrate verwendet um den Download klein zu halten. Von dieser Einstellung hängt sehr wesentlich ab wie groß die Datei am Ende wird, und natürlich auch ihre Qualität. Danach passiert erstmal scheinbar nichts, aber im Hintergrund wird das AVI erzeugt. Wenn es fertig ist erscheint die Route auf der Karte.

Aussicht

Ich würde gerne von EPS zu einem anderen Format wechseln, z.B. odg oder svg. Aber für EPS hatte ich schon vor einer Ewigkeit eine Leseroutine geschrieben, für odg o.ä. nicht. Die Haupschwierigkeit bei beiden Formaten ist, daß die Pixelgrafik als PNG enthalten ist, nicht gerade ein einfaches Format. Der Nachteil von EPS ist, daß ich natürlich keinen kompletten EPS-Parser geschrieben habe, sondern nur das eingebaut habe was benötigt wird. Verwendet OpenOffice also in einer späteren Version neue Befehle funktioniert das Programm evtl. nicht mehr. In diesem Fall schickt mir einfach ein solches EPS File, und ich tue mein bestes.

Internes

Oft hilft es zu verstehen was intern passiert um Fehler zu vermeiden. Im EPS-File liegt die Route als eine Anzahl Bezier-Kurven vor. Das Grundprinzip dieses Programms ist ganz einfach: es zeichnet jeweils eine Kurve und speichert das Bild als nächstes Frame ab. Um also einen 20s Film mit 25 Frames/s zu erzeugen braucht es 500 Bezier Kurven, und damit die Zeichengeschwindigkeit möglichst konstant ist sollten diese alle etwa gleich lang sein. Es ist nicht trivial die Länge einer Bezierkurve genau zu berechnen, aber eine ungefähre Abschätzung reicht hier. map_eps2avi sucht so lange die längste Kurve und teilt sie in 2 bis die gewünschte Anzahl (hier 500) erreicht ist. Das Bsp-eps besteht aus 26 Kurven, es wird also 474 mal geteilt, danach sollten anfängliche Längenunterschiede recht gut ausgeglichen sein. Natürlich ist immer ein Faktor 2 drin, aber solange nicht viele lange oder kurze Kurven direkt hintereinander kommen gleicht sich das aus. 

Rechtliches

Das Programm steht unter der GPL V3 darf also frei benutzt werden. Das Copyright liegt bei mir:

Dimitri Junker

zum Impressum auf meiner Homepage

Download

das Programm und der Sourcecode sind von meiner Softwareseite ladbar