Wie ich einen Film im CDXL-Format erstelle

eine kurze Einleitung
CDXL ist der Name eines Formates, um Bilder und Ton in einer Datei zusammenzufügen und hinterher als Film auf einem Rechner abspielen zu können, wie man es auch von MPG, AVI, QT etc. her kennt. Allerdings entstand CDXL schon zu einer Zeit, als an Filme gucken auf dem eigenen Rechner noch gar nicht zu denken war, und wie so oft versank eine weitere Errungenschaft in der Vergessenheit, weil sie ihrer Zeit einfach viel zu weit voraus war und sich kaum Anwender dafür fanden. Doch dank der mitlerweile spottbilligen Massenspeicher, der einfachen Möglichkeiten selbst größte Datenmengen schnell zu erstellen und zu kopieren, und natürlich auch dank solcher Ideen wie seinen Amiga im Auto zu betreiben :o) ist CDXL heute wieder interessant geworden, ermöglicht es uns doch Filme selbst auf einem "steinalten" Amiga abspielen zu können.
Also wie konvertiere ich nun mein MPG ins CDXL-Format?
Zuerst sollte man sich folgendes herunterladen und ggf. installieren:
  • das CDXL-Toolkit
  • Directory OPUS 4
  • MultiRen
  • mpega
  • MPG-Splitter
  • NetPBM
  • Play16
  • Ripley
  • einen Film im MPG-Format
  • GoldEd 5 (falls es nötig wird die Anzahl der Bilder pro Sekunde zu reduzieren)
  • Ich empfehle unbedingt den Einsatz einer PPC-Turbokarte und den entsprechenden Versionen von Ripley, Mpega und dem NetPbm-Paket. Ohne diese kann sich das Konvertieren sonst "etwas hinziehen"...
    die DOpus-Konfig
    MPG-Video aufsplitten in Ton- und Videospur mit "Splitter":
    c:splitter {f} audio brenn:mptemp/Ton.mp2 video brenn:mptemp/Video.mpg
    Ton von MP2 zu 8svx konvertieren mit "Mpega" und "Play16":
    c:mpega -s -d 2 -A -m -T -o -u brenn:mptemp/Ton.mp2 brenn:mptemp/Ton.aiff
    c:play16 brenn:mptemp/Ton.aiff out 8svx
    c:Delete brenn:mptemp/Ton.aiff
    c:Delete brenn:mptemp/Ton.mp2
    Und die entstandene MPG-Videodatei in Einzelbilder aufsplitten mit "Ripley":
    c:ripley.elf brenn:mptemp/Video.mpg save Brenn:mptemp/ppm/p.%05d
    c:Delete brenn:mptemp/Video.mpg
    Soweit zum einfachen Teil, ab jetzt ist Handarbeit gefragt.
    Also in das Verzeichnis mit den Bildern wechseln, alle Dateien anwählen. Es gilt, die Einzelbilder im PPM-Format mit den Netpbm-Tools zu Ilbm zu konvertieren: DH1:Prog/picconvert-pbm/bin/ppmtoilbm -ecs -ham6 -fs {fu} >Brenn:mptemp/iff/{o} (für Amigas mit AGA kann man auch -aga -ham8 verwenden, um bessere Bilder zu erreichen, dafür braucht man später aber auch einiges mehr an Rechenleistung beim abspielen.)
    Da die Dateien aber immernoch Namen der Form p.00001.ppm haben, muß man sie nun mittels MultiRen zu p.00001 usw. umbenennen lassen: Also Verzeichnis der Ilbm-Dateien über "Add" einlesen
    MultiRen Hauptfenster
    Mit dem Extension-Editor die Namensendung .ppm entfernen lassen: (ggf. steht ppm noch nicht in der Liste, also erst noch eintragen, dann anwählen und auf "Remove" klicken)
    MultiRen Extension-Editor
    Noch ein Klick in MultiRen auf "Rename", und fertig sind die neuen Dateinamen.
    Zum erstellen des CDXLs muß man die Audio-Bytes pro Bild berechnen: Dateigröße der 8svx-Ton-Datei in Bytes geteilt durch die Anzahl der Einzelbilder. (Das XLToolkit berechnet hier völlig falsche Werte, also benutzt es lieber nicht!)
    Rechner
    Jetzt sind Shell oder CLI gefragt, um das CDXL zu erstellen. Die eben berechneten Audiobytes/Bild werden hinter -a eingetragen, in meinem Beispiel 1767 Bytes/Bild
    c:XLMAKE -a1767 -bBrenn:mptemp/iff/p.00001 -h brenn:film.cdxl
    Fehlt nur noch die Datei mit dem Ton, die ins CDXL eingefügt werden muß:
    c:XLAUDIO -a1767 -i Brenn:mptemp/Ton.iff brenn:film.cdxl
    Geschafft! Ich gratuliere Ihnen zur Erzeugung eines CDXL-Filmes.
    Abspielen kann man ihn jetzt mit Hilfe von "cdgsxl", wobei man durch die 310 hinter xlspeed angibt, mit wieviel kByte pro Sekunde der Film abgespielt werden soll, die Zahl muß also für jedem Film durch ausprobieren ermittelt werden:
    cdgsxl brenn:film.cdxl multipal xlspeed 310 nopointer dosxl lmbabort ham
    Wenn der Film aber nicht ruckelfrei läuft...
    ...dann sollte man als ersten dafür sorgen, das optimale Bedingungen herrschen: Kein FFS benutzen! Das FFS ist gegenüber FileSystemen wie PFS3 oder SFS bis zu 5 mal langsamer! Zum Thema Filesystem eurer Festplatte: Gegenüber dem PFS3 hat das SFS den Vorteil, bei Verzeichnissen mit mehr als 10.000 Dateien nicht in der Geschwindigkeit einzubrechen. Jedoch liegt das PFS3 in Sachen Stabilität und beim abspielen eindeutig vorn, da es deutlich weniger CPU-Leistung braucht und bereits mit einer 68000er CPU benutzt werden kann, also ohne Turbokarte auskommt.
    Weiterhin sollte die Partition mit dem CDXL nicht zu stark fragmentiert sein. Vom Abspielen mit CD-Roms am PCMCIA-Port oder ähnliche Krücken sollte man auch besser die Finger lassen.
    Ebenso stehen wir vor der Entscheidung: Wie soll hoch soll die Qualität sein? Jeder muß selbst herausfinden, wie schnell sein Amiga die CDXLs noch abspielen kann, ohne dabei ins ruckeln zu geraten. Dabei gilt:
    Die Auflösung sollte z.B. nicht über Pal LoRes 362 x 283 liegen. Wenn die Bilder größer sind, weil sie z.B. von einer SVCD stammen, sollte man sie also besser herunterrechnen:
    pnmscale: halbe Größe
    DH1:Prog/Ultraconv/picconvert-pbm/bin/pnmscale -xscale 0.5 -yscale 0.5 <{fu} >brenn:mptemp/ppmkleiner/{o}
    oder
    pnmscale: 80%, danach konvertieren zu Ilbm
    DH1:Prog/Ultraconv/picconvert-pbm/bin/pnmscale -xscale 0.8 -yscale 0.8 <{fu} >ram:ppm
    DH1:Prog/Ultraconv/picconvert-pbm/bin/ppmtoilbm -ecs -ham6 -fs ram:ppm >Brenn:mptemp/iff/{o}
    Aber unter ca. 250 x 220 würde ich nicht gehen, man will ja schließlich auch noch etwas erkennen können! Also reduzieren wir einfach die Anzahl der Bilder/s auf 17, 15... Am besten geschieht das bereits bevor man die Einzelbilder umrechnen läßt, weil sich so auch gleich noch jede Menge Zeit sparen läßt.
    Ich empfehle dafür einen DOpus-Menüeintrag in Richtung:
    ppm's zur Liste für fps-Anzahl
    echo DH1:Prog/Ultraconv/picconvert-pbm/bin/ppmtoilbm -ecs -ham6 -fs {fu} ">Brenn:mptemp/iff/{o}" >>brenn:mptemp/PPM-Liste
    Dann alle .ppm's anwählen und diesen Menüpunkt auswählen. Diese resultierende Liste schaut dann ungefähr so aus:
    dh1:Prog/Ultraconv/picconvert-pbm/bin/ppmtoilbm -ecs -ham6 -fs Brenn:mptemp/ppm/p.00000.ppm >Brenn:mptemp/iff/p.00000.ppm
    dh1:Prog/Ultraconv/picconvert-pbm/bin/ppmtoilbm -ecs -ham6 -fs Brenn:mptemp/ppm/p.00001.ppm >Brenn:mptemp/iff/p.00001.ppm
    dh1:Prog/Ultraconv/picconvert-pbm/bin/ppmtoilbm -ecs -ham6 -fs Brenn:mptemp/ppm/p.00002.ppm >Brenn:mptemp/iff/p.00002.ppm
    ...
    Diese laden wir in GoldEd und starten dessen Makro-Funktion (Shift-F10). Nun einmal die Pfeiltaste nach unten gedrückt und mit Shift + Del den Inhalt der 2. Zeile löschen. Mit nochmaligem Druck auf Del die ganze Zeile entfernen. Mit Shift-F10 die Makro-Funktion wieder abschalten, und wenn ihr nun wieder F10 drückt sollte jede 2. Zeile gelöscht werden. Einfach im Menü "Sequenz wiederholen" anwählen und bei z.B. 10000 Dateien 5000 mal ausführen lassen. Die gekürzte Liste speichern und die Datei per "execute" aus der Shell starten. (Da ich mitlerweile viel zu faul dazu geworden bin habe ich eine fertige Liste für 50.000 Dateien auf Platte, die ich bei Bedarf einfach jedesmal wieder ausführe.) Damit habt ihr in diesem Beispiel schonmal nur jedes 2. Bild konvertiert, ihr kommt also später auf 12 Bilder/s. Wenn ihr nur jede 3. Zeile löscht werden es 17 Bilder/s, oder jede 2. und die 5. , usw. ...
    Nach dem das Konvertieren beendet ist startet ihr MultiRen, ladet wie oben beschrieben das Verzeichnis ein und startet aus den "Tools" den Punkt "Sort":
    MultiRenSort
    Hier mit Klick auf "Old name" die Liste erstmal sortieren lassen.
    Nun mit dem Extension-Editor wie oben beschrieben die Namensendung .ppm entfernen lassen, und danach mit dem Tool "File Cleaner" alle alten Zahlen und Punkte entfernen:
    MultiRenClean
    Hat alles geklappt sollten nur noch "p" 's in der Liste stehen. Falls nicht einfach nochmal den entsprechenden Punkt, z.B. "Points" auf "Nothing" und wieder auf "Remove" schalten, nach einem zweiten "Clean up" sollte es passen. Nun nehmt ihr unter "Tools" den "Numberer":
    MultiRenNumberer
    und fügt eine neue Nummernserie an die Dateinamen an. Noch ein Klick in MultiRen auf "Rename", und fertig sind die neuen Dateinamen der Art "p.0001", mit denen "XlMake" dann auch wieder etwas anfangen kann. Noch die neue Anzahl der Audio-Bytes berechnen, den Film erstellen, den Ton einfügen, fertig.
    Ein paar Namen von Filmen, die ich mir bereits für mein Auto konvertiert habe: Staplerfahrer Klaus, diverse Road Runner & Coyote Trickfilme, Dream Catcher, Ice Age gone Nutty, Lava-Lava, uvm.
    Ich danke für ihre Aufmerksamkeit und wünsche ihnen viel Spaß mit ihrem um eine Videofunktion erweiterten klassischen Amiga.
    Andreas Balke
    und sein Amiga 600 als MP3-Player und Routenplaner im Auto