Logo

Was mir in Sachen Linux einfällt

Kurzeinführung in ProjectX

ProjectX ist ein Nachbearbeitungsprogramm für alle, die Fernsehsendungen im Standartformat - also "nicht-HDTV" - aufzeichnen. Und deswegen muss ich erst ein wenig ausholen:

Wer eine digital gesendete Fernsehsendung aufzeichnet, hat zwar auf seinem Rechner eine MPEG-Datei, aber in einer speziellen Form. Der digitale Datenstrom enthält reichlich Synchroninformationen für Ton und Bild, weil nicht genau feststeht, welches Datenpaket wann genau ankommt, in welcher Qualität es ankommt, ob es vollständig ankommt und in welcher Zeit es ausgepackt werden kann. Das Abspielprogramm wertet diese Informationen aus und spielt den Film mundgerecht bzw. lippensychron ab. Wenn man so eine Datei schneiden will, wertet das Schnittprogramm diese Synchroninfos nicht aus und der Film wird in aller Regel asynchron und die Asynchronität wird je nach Filmlänge nach meiner Erfahrung immer größer.

Um das zu verhindern, wurde ProjectX entwickelt. Das Programm entpackt den Gesamtdatenstrom in seine Einzelteile - also in die Videospuren, alle Tonspuren und die Untertitelspuren, prüft dabei auf Fehler und korrigiert sie, liest die Synchroninformationen aus und spielt die Spuren alle wieder einzeln korrigiert auf die Festplatte zurück. (es gibt auch andere Modi, aber die beschriebene funktioniert 100%ig). Dabei kann man den Film schon "säubern", also Überstände an Anfang und Ende und auch Werbung wegschneiden.

Wenn ProjectX mit seiner Arbeit fertig ist, liegen auf der Festplatte alle Datenströme als einzelne Dateien vor und die müssen erst noch wieder zusammengesetzt werden. Das kann man automatisieren - wie, das kommt weiter unten zur Sprache. Jetzt erst die Programmoberfläche nach dem Start (ich denke, Du findest die deutsche Sprache allein):

Die Programmoberfläche von ProjectX

ProjectX ist ein Java-Programm (läuft auf allen Betriebssystemen) und gibt nach dem Start zuerst einmal einige Infos aus. Jetzt laden wir mal eine Videodatei, die bei mir von Kaffeine aufgezeichnet wurde und die Dateiendung ".m2t" hat:

Die Programmoberfläche mit geladenem Film

Das "+"-Zeichen links unten - dort wo "Datei(en) zur Kollektion hinzufügen" steht - lädt eine Datei, das "-"-Zeichen entfernt sie. Wichtig ist jetzt die TAB-Leiste unten: die Ansicht steht jetzt auf "Dateiliste". Unterhalb des Bildes siehst Du einen grünen Balken, darunter einen Schieber. Beide sind für den TAB "Schnittsteuerung" wichtig:

Die Schnittsteuerung

ProjectX kann übrigens keine Filme abspielen, aber immerhin kannst Du einen groben Filmschnitt vornehmen. Dazu ziehst Du den Schieber nach rechts, dorthin, wo der eigentliche Film anfängt, Dann jetzt Du einen Schnittpunkt, indem Du auf das linke obere Icon im Kasten "Schnittpunkte" klickst. Dadurch wird eine Schnittmarke hinzugefügt. Jetzt gehst Du auf das Filmende und machst das selbe noch einmal. Jetzt müsste der ehemals nur grüne Balken so ähnlich aufgeteilt sein, wie im Bild zu sehen. Genauso kannst Du Werbung markieren. Wenn Du eine Schnittmarkierung löschen willst, dann wähle ihn erst an. Entweder mit den beiden unteren Icons oder in der Liste darunter. Das Endprodukt wird nur den grünen Bereich enthalten. Das Endprodukt kommt gleich, jetzt erst der dritte TAB "Filtersteuerung:

Die Filterung

Hier stelle ich normalerweise nichts ein, denn die Hauptpunkte habe ich schon in den Einstellungen auf meine Bedürfnisse eingestellt: was soll das Endprodukt an Datenströmen enthalten. Ich brauche keine Untertitel und keinen AC3-Turbosurround-Ton. letzterer macht nur bei HD-Filmen Sinn und dafür ist ProjectX nicht gedacht. Die Grundeinstellungen:

Einstellungen-Optionen

Hier ist die erste Seite interessant, dort habe ich das Startverzeichnis festgelegt, welches ProjectX beim "Datei hinzufügen" zeigt. Und auf der letzten Seite habe ich einen Eintrag gemacht.

Unser Programm kann nämlich am Schluss der Bearbeitung ein anderes aufrufen und dem die Endprodukte übergeben. Und das sind ja die Videospur und mehrere Audiospuren, die wieder zu einer Datei zusammen­gesetzt werden müssen. Das mache ich mir zunutze und rufe das nachste Programm "muxen.sh" auf. Mit dem Parameter "?0" übergibt ProjectX alle Einzeldateinamen, mit denen "muxen.sh" dann weitermachen kann (unten).

Einstellungen-Nachbearbeitung

Aber die Nachbearbeitungs-Option muss noch aktiviert werden. Dazu klickst Du im Hauptfenster auf "Anpassen" und im "Prozessfenster" auf "Bearbeiten" und machst einen Haken vor "Nachbearbeitung aktivieren" (links unten). Und weil Du schon mal da bist: kontrolliere, ob in der Leiste der "Aktionen" (unter dem grünen Play-Button) der Haken bei "demultiplex " gesetzt ist. Wenn nicht, dann bitte da einen Haken einsetzen (rechts unten).

Nachbearbeitung aktivieren demultiplexen einstellen

So weit. Du hast jetzt einen Film geladen, die Schnittzeitpunkte gesetzt und alle Einstellungen gemacht. Jetzt fehlt nur noch das Shellscript "muxen.sh":

#!/bin/bash
# Mit diesem Programm werden die Einzeldateien der Ausgabe
# von ProjectX wieder zusammen gesetzt
if test $# -eq 4
	then mplex --ignore-seqend-markers -f 8 -o "$1".mpg "$1" "$2" "$3" "$4";
	elif test $# -eq 3  
		then mplex --ignore-seqend-markers -f 8 -o "$1".mpg "$1" "$2" "$3";
	else mplex --ignore-seqend-markers -f 8 -o "$1".mpg "$1" "$2"
fi
play /opt/kde3/share/sounds/KDE_Beep_RimShot.wav
kdialog --msgbox Film_fertig

Die erste Zeile macht die Datei zu einem Script, einem unter Linux ausführbaren Programm. Die beiden folgenden Zeilen dienen nur der Beschreibung, damit ich auch im hohen Alter noch weiß, wofür das Programm gedacht ist. Die 4. Zeile prüft, wieviele Parameter (also wieviele Dateinamen) übergeben wurden. Sind es 4 (1 x Bild und 3 x Ton), dann jetzt die nächste Zeile alle 4 zusammen. Sind es nur 3, dann die übernächste und besteht der Film nur aus Bild und 1 x Ton, dann arbeitet die "else"-Zeile. (Hast Du schon nachgeschaut, ob bei Dir mplex installiert ist?) Die vorletzte Zeile spielt bei mir eine deutliche akustische Meldung ab und mit der letzten Zeile gibt es auch eine Bildschirmmeldung. Leider funktioniert diese automatische Nacharbeit nur mit Dateinamen ohne Leerzeichen! Wenn Du Kaffeine zum Aufzeichnen benutzt und die Aufnahmesteuerung per TV-Browser machst, dann klappt das.

Kopiere dies in eine Textdatei, speichere diese Datei als muxen.sh in /usr/local/bin/ ab, (Du musst root sein dafür!) und gib der Datei das Attribut "ausführbar" (sudo +x /usr/local/bin/muxen.sh). Der Ordner ist im Suchpfad für Programme und Dein neues Programm wird dadurch automatisch gefunden.

Soweit alles klar? Film geladen, Einstellungen erledigt, mplex installiert ? Dann klick jetzt im Hauptfenster auf "QuickStart". Es erscheint das Prozessfenster und Du kannst dort die Ausgabe der Arbeit von ProjectX bewundern. Bei Bearbeitungsende solltest Du folgendes Bild sehen:

Das Prozessfenster

Im Idealfall steht bei "Warn-/Fehler­meldungen" ganz unten der Wert 3, sehr oft steht dort 5, aber auch wenn dort 300 zu lesen ist, heißt das nicht, dass der Film unbrauchbar ist.

Das Prozessfenster

Falls mplex jetzt auch gearbeitet hat, dann hast Du Erfolg und in Deinem Aufzeichnungsordner sind jetzt ungefähr diese Dateien zu sehen:




Mplex hat den Namen der Bilddatei für die Ausgabedatei genommen und ein .mpg dran gehängt. Das ist das fertige Endprodukt, der Rest kann weg.

Ich bin fertig. Wenn's nicht wie vorgesehen funktioniert, dann kontrolliere nochmal alles. Im Zweifelsfall hast Du muxen.sh nicht an Deinen Rechner angepasst.



Viel Spaß damit, die restlichen Möglichkeiten von ProjectX musst Du selbst rauskriegen ...