Dvb script gui/anleitung: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
(Anleitungen für die Scripversion 0.1.0)
(Bearbeitungszeiten)
Zeile 68: Zeile 68:
 
* Nur mp2
 
* Nur mp2
 
* Nur mp2 normalisiert
 
* Nur mp2 normalisiert
 +
 +
==<font color="maroon"> Bearbeitungszeiten </font>==
 +
 +
Um eine Vorstellung zu vermitteln, wie lange es dauert, bis aus dem Film eine Video-DVD wird, habe ich die Zeiten aufgelistet, die von den einzelnen Bearbeitungsschritten benötigt werden. Das Laden der Quelldatei und das Schneiden habe ich dabei weggelassen. Die Stopuhr startet exakt in dem Moment, in dem ich in projectx auf den Quickstart-Button drücken.
 +
 +
Die Interna des verwendeten Rechners sind: Athlon64 3000+ / 1MB Arbeitsspeicher / NVidia GeForce 6600GT / OpenSuse 11.0 / KDE 4.1.3
 +
Die Quelldatei enthält 3 Tonspuren (davon 1 AC3-Spur) und 1 Videospur. Dateigrösse: 3952MB. Filmlänge: 1h42min
 +
 +
* 00:00 min: Druck auf Quickstart fürs Demultiplexen mit projectx
 +
* 05:36 min: Demultiplexen fertig. Start mplex (mplex zeigt übrigens keinen Bearbeitungsfortschritt an. Also: Geduld haben!)
 +
* 09:38 min: Multiplexen fertig. Start dvdauthor
 +
* 13:44 min: Authorn fertig. Start growisofs für das Brennen mit 8facher Geschwindigkeit
 +
* 21:02 min: Brennen fertig. Ende der Bearbeitung
 +
 +
Man sieht also, daß es gut 20 Minuten dauert, bis ein Film, der eine DVD fast ganz ausfüllt, auf eben dieser DVD ist. Wie lange man dann noch zum Schneiden braucht, das hängt vom Geschick des Anwenders und von der Anzahl der Werbeunterbrechungen ab.
  
 
==<font color="maroon"> Playlist für mplayer </font>==
 
==<font color="maroon"> Playlist für mplayer </font>==
Zeile 99: Zeile 114:
 
==<font color="maroon"> Der Programmcode des Arbeits-Scriptes </font>==
 
==<font color="maroon"> Der Programmcode des Arbeits-Scriptes </font>==
  
Der Aufbau des Bash-Scriptes wurde in einem [[Dvb wiki script/Programmieranleitung|Artikel]] im DVB_Wiki_Buch beschrieben. Dort ist genau erklärt, was welcher Befehl wie bewirkt. Da es jedoch einige nicht unerhebliche Anderungen gibt, wird die Funktionsweise des Scriptes noch einmal kurz umrissen.
+
Der Aufbau des Bash-Scriptes wurde in einem [[Dvb wiki script/Programmieranleitung|Artikel]] im DVB_Wiki_Buch beschrieben. Dort ist genau erklärt, was welcher Befehl wie bewirkt. Da es jedoch einige nicht unerhebliche Anderungen gibt, wird die Funktionsweise des Scriptes noch einmal kurz umrissen.  
  
 
===Vorbereitungen (Installationsroutine)===
 
===Vorbereitungen (Installationsroutine)===
Zeile 119: Zeile 134:
 
*'''funktionsabbruch ()''': Programmabbruch, erzwungen durch das Programm
 
*'''funktionsabbruch ()''': Programmabbruch, erzwungen durch das Programm
 
*'''programmende ()''': wird von den beiden obigen Funktionen aufgerufen
 
*'''programmende ()''': wird von den beiden obigen Funktionen aufgerufen
 
+
.
 
*'''filmauswahl ()''': Der zu bearbeitende Film wird geladen. Zudem wird in Abhängigkeit von der Kennzahl das Quellverzeichnis für das Brennen festgelegt.
 
*'''filmauswahl ()''': Der zu bearbeitende Film wird geladen. Zudem wird in Abhängigkeit von der Kennzahl das Quellverzeichnis für das Brennen festgelegt.
 
*'''verzeichnisauswahl ()''': Auswahl der Sicherungen. Weiterverarbeitung in Abhängigkeit vom Dateityp. Festlegen des Quellverzeichnisses für das Brennen.
 
*'''verzeichnisauswahl ()''': Auswahl der Sicherungen. Weiterverarbeitung in Abhängigkeit vom Dateityp. Festlegen des Quellverzeichnisses für das Brennen.
 
+
 
*'''pjx_demux_gui ()''': Starten von projectX zum Schneiden und Demultiplexen. Überprüfung, ob das Schnittergebnis auf eine einzelne DVD passt.
 
*'''pjx_demux_gui ()''': Starten von projectX zum Schneiden und Demultiplexen. Überprüfung, ob das Schnittergebnis auf eine einzelne DVD passt.
 
*'''pjx_ts_gui ()''': Starten von projectX zum Schneiden. Wandeln nach TS für eine Daten-DVD
 
*'''pjx_ts_gui ()''': Starten von projectX zum Schneiden. Wandeln nach TS für eine Daten-DVD
 
*'''mpeg1_input ()''': Demultiplexen eines mpeg1-Files. Decodieren der Audio-Spur
 
*'''mpeg1_input ()''': Demultiplexen eines mpeg1-Files. Decodieren der Audio-Spur
 
+
.
 
*'''normalisieren ()''': Die Tonspur wird normalisiert. Dazu wird sie mit ffmpeg decodiert, mit normalize auf eine definierte Lautstärke gebracht und anschließend mit ffmpeg wieder codiert.
 
*'''normalisieren ()''': Die Tonspur wird normalisiert. Dazu wird sie mit ffmpeg decodiert, mit normalize auf eine definierte Lautstärke gebracht und anschließend mit ffmpeg wieder codiert.
 
*'''ac3_behalten ()''': nur die ac3-Tonspuren werden behalten und weiterverarbeitet
 
*'''ac3_behalten ()''': nur die ac3-Tonspuren werden behalten und weiterverarbeitet
 
*'''mp2_behalten ()''': nur die mp3-Tonspuren werden behalten und weiterverarbeitet
 
*'''mp2_behalten ()''': nur die mp3-Tonspuren werden behalten und weiterverarbeitet
 
+
.
 
*'''multiplexen ()''': Bild und Ton werden multiplext. Dabei wird das Ergebnis schon für das Authorn vorbereitet.
 
*'''multiplexen ()''': Bild und Ton werden multiplext. Dabei wird das Ergebnis schon für das Authorn vorbereitet.
 
+
.
 
*'''authoring_ohne_menue ()''': Die DVD-Struktur wird erzeugt (ohne DVD-Menue)
 
*'''authoring_ohne_menue ()''': Die DVD-Struktur wird erzeugt (ohne DVD-Menue)
 
+
.
 
*'''brennen_video_dvd ()''': Die DVD-Struktur wird als Video-DVD gebrannt
 
*'''brennen_video_dvd ()''': Die DVD-Struktur wird als Video-DVD gebrannt
 
*'''video_dvd_bereit ()''': Überprüfen, ob die DVD in der Schublade ist und ob sie bespielt werden kann
 
*'''video_dvd_bereit ()''': Überprüfen, ob die DVD in der Schublade ist und ob sie bespielt werden kann
 
+
.
 
*'''brennen_ts ()''': Das ts-file wird als Daten-DVD gebrannt
 
*'''brennen_ts ()''': Das ts-file wird als Daten-DVD gebrannt
 
*'''loop_brennen_ts ()''': Reicht eine DVD nicht aus, wird die nächste angefordert
 
*'''loop_brennen_ts ()''': Reicht eine DVD nicht aus, wird die nächste angefordert
 
*'''daten_dvd_bereit ()''': Überprüfen, ob die DVD in der Schublade ist und ob sie bespielt werden kann
 
*'''daten_dvd_bereit ()''': Überprüfen, ob die DVD in der Schublade ist und ob sie bespielt werden kann
 
+
.
 
*'''sichern_dvd_struktur ()''': Die DVD-Struktur wird gesichert. Der Name des Sicherungsordners ist das aktuelle Datum und die aktuelle Uhrzeit
 
*'''sichern_dvd_struktur ()''': Die DVD-Struktur wird gesichert. Der Name des Sicherungsordners ist das aktuelle Datum und die aktuelle Uhrzeit
 
*'''sichern_ts ()''': Das ts-file wird gesichert. Der Name des Sicherungsordners ist das aktuelle Datum und die aktuelle Uhrzeit
 
*'''sichern_ts ()''': Das ts-file wird gesichert. Der Name des Sicherungsordners ist das aktuelle Datum und die aktuelle Uhrzeit

Version vom 5. Januar 2009, 20:20 Uhr

Diese Beschreibung wurde mit folgenden Distributionen getestet:

OpenSuse 11.0 (32Bit) mit KDE 3.9.x
OpenSuse 11.0 (32Bit) mit KDE 4.1


Vom DVB zur DVD, die GUI: Anleitungen - Installation - GUI-Kommanderscript - Arbeitsscript - Dokumentation



Bedienungsanleitung

Die GUI

Die Bedienung des Programms gestaltet sich sehr einfach:

  • Programm starten
  • Gewünschte Aufgabe auswählen
  • Auf den Go-Button drücken

Im linken Fenster wird der aktuelle Bearbeitungsfortschritt angezeigt. Die Meldungen, die hier erscheinen, wurden vom Progrmmierer (also von mir) explizit so festgelegt.

Das rechte Fenster zeigt Meldungen der beteiligten Programme, die über stderr ausgegeben wurden. Diese Meldungen können sehr gut beim Programmieren zur Fehlersuche verwendet werden, deshalb auch der Name Debug-Fenster.

Im Debug-Fenster fallen noch die zwei Knöpfe Ein und Aus auf. Mit ihnen hat es folgende Bewandnis:

  • Vor Drücken auf Go: Das Debug-Fenster kann ein- oder ausgeschaltet werden
  • Nach Programmende: Der Scrollmodus des Fensters kann ein- oder ausgeschaltet werden

Zum Scroll-Modus ist noch folgendes zu sagen:

Da von den Programmen sehr viele Meldungen kommen, wird der Fokus auf die letzen Meldungen gesetzt, damit die Anzeige immer aktuell ist. Nach Programmende läßt sich diese Fokussierung ausschalten, damit man im Debug-Log nach oben Scrollen kann.

Die Aufgaben

Die Aufgaben sind in drei Gruppen eingeteilt:

Video-DVD

Ziel ist es, den aufgenommenen Film zu schneiden und daraus eine Video-DVD zu machen. Folgende Möglichkeiten werden hier angeboten:

  • Den Film schneiden und daraus eine Video-DVD brennen
  • Das Bearbeitungsergebnis im Sicherungsordner zwischenspeichern
  • Die gesicherte DVD-Struktur als Video-DVD brennen
  • Die DVD bedrucken

Der grundsätzliche Weg zu einer Video-DVD ist in einem Artikel im DVB_Wiki_Buch beschrieben.

Daten-DVD

Hier kann der Film als TS-File auf DVD gebrannt werden. Diese Möglichkeit verwende ich dazu, einen geschnittenen Film sozusagen im "Rohformat" zu sichern. Auch hier gibt es verschiedene Auswahlmöglichkeiten:

  • Den Film schneiden und daraus eine Daten-DVD brennen
  • Das Bearbeitungsergebnis im Sicherungsordner zwischenspeichern
  • Das gesicherte File als Daten-DVD brennen
  • Die DVD bedrucken

Eine solche Daten-DVD ist in einem normalen DVD-Spieler nicht abspielbar!

Videoclip

Diese Gruppe habe ich eingeführt, um Musik-Videoclips schneiden und in einer Playlist organisieren zu können. Dazu wird der Eingangsstream nach dem Schneiden in eine mpeg-Datei umgewandelt und auf Festplatte gespeichert. Zusätzlich kann der Ton normalisiert werden. Die angebotenen Auswahlmöglichkeiten unterscheiden sich nach der Art des Eingangssignals und danach, welche Tonspuren verwendet werden sollen:

Mpeg2-Stream schneiden und im Videoclip-Ordner speichern. Dabei folgende Tonspuren verwenden:

  • Alle ac3 und mp2
  • Nur ac3
  • Nur mp2
  • Nur mp2 normalisiert

Mpeg1-Stream schneiden und im Videoclip-Ordner speichern. Dabei folgende Tonspuren verwenden:

  • Nur mp2
  • Nur mp2 normalisiert

Bearbeitungszeiten

Um eine Vorstellung zu vermitteln, wie lange es dauert, bis aus dem Film eine Video-DVD wird, habe ich die Zeiten aufgelistet, die von den einzelnen Bearbeitungsschritten benötigt werden. Das Laden der Quelldatei und das Schneiden habe ich dabei weggelassen. Die Stopuhr startet exakt in dem Moment, in dem ich in projectx auf den Quickstart-Button drücken.

Die Interna des verwendeten Rechners sind: Athlon64 3000+ / 1MB Arbeitsspeicher / NVidia GeForce 6600GT / OpenSuse 11.0 / KDE 4.1.3 Die Quelldatei enthält 3 Tonspuren (davon 1 AC3-Spur) und 1 Videospur. Dateigrösse: 3952MB. Filmlänge: 1h42min

  • 00:00 min: Druck auf Quickstart fürs Demultiplexen mit projectx
  • 05:36 min: Demultiplexen fertig. Start mplex (mplex zeigt übrigens keinen Bearbeitungsfortschritt an. Also: Geduld haben!)
  • 09:38 min: Multiplexen fertig. Start dvdauthor
  • 13:44 min: Authorn fertig. Start growisofs für das Brennen mit 8facher Geschwindigkeit
  • 21:02 min: Brennen fertig. Ende der Bearbeitung

Man sieht also, daß es gut 20 Minuten dauert, bis ein Film, der eine DVD fast ganz ausfüllt, auf eben dieser DVD ist. Wie lange man dann noch zum Schneiden braucht, das hängt vom Geschick des Anwenders und von der Anzahl der Werbeunterbrechungen ab.

Playlist für mplayer

Playlist erzeugen

Die Musikclips befinden sich alle im Videoclipordner. Jedesmal, wenn auf den Go-Button gedrückt wird, werden die Namen und Pfade der dort gespeicherten Dateien in eine Textdatei geschrieben, die mplayer als Playlist verwendet.

find $videoclips/* > ~/.mplayer/playlist

Playlist abspielen

Diese Wiedergabeliste kann mit folgendem Befehl abgespielt werden:

mplayer -xy 1280 -playlist ~/.mplayer/playlist -shuffle -vf pp=lb -fixed-vo
  • mplayer: Aufruf von mplayer.
  • -xy 1280: Grösse des Ausgabefensters. Es genügt die Angabe der horizontalen Pixelzahl, die vertikale Anzahl der Bildpunkte wird dann automatisch eingestellt.
  • ~/.mplayer/playlist: Hier ist die Wiedergabeliste gespeichert.

Alle Angaben, die nach der Playlist kommen, beziehen sich auf die komplette Wiedergabeliste, nicht auf ein einzelnes Lied aus der Liste.

  • -shuffle: Die Auswahl der Videoclips erfolgt nach dem Zufallsprinzip.
  • -vf pp=lb: Einschalten eines linearen Deinterlace-Filters.
  • -fixed-vo: Alle Clips werden in einem einzigen Fenster abgespielt.

Diesen Befehl habe ich in eine Desktop-Datei eingegeben, mit der ich die Wiedergabe starte.

Das Bedrucken von DVDs

Ich verwende DVDs, die mit einem Tintenstrahler bedruckt werden können. Dazu verwende ich selbst erstellte Druckschablonen für oodraw. Den Aufruf dieser Schablonen habe ich unter den Menuepunkten DVD bedrucken in der GUI realisiert.

Der Programmcode des Arbeits-Scriptes

Der Aufbau des Bash-Scriptes wurde in einem Artikel im DVB_Wiki_Buch beschrieben. Dort ist genau erklärt, was welcher Befehl wie bewirkt. Da es jedoch einige nicht unerhebliche Anderungen gibt, wird die Funktionsweise des Scriptes noch einmal kurz umrissen.

Vorbereitungen (Installationsroutine)

  • Übernahme von Kommander: Die von der GUI übergebene Kennzahl wird übernommen. An Hand dieser Kennzahl werden die Aufgaben gestartet
  • Voreinstellungen: Einstellungen, die von Benutzer angepasst werden müssen (Ist in der Installationsanleitung beschrieben)
  • Hauptverzeichnis festlegen: Der User legt das Hauptverzeichnis fest. Der Pfad des Verzeichnisses wird nach ~/.dvb_script_kommander/hauptverzeichnis geschrieben
  • Verzeichnisstruktur erstellen: Im Hauptverzeichnis werden die Arbeitsverzeichnisse erstellt
  • Anzeigefenster leeren und einstellen: Erzeugen der Textdateien für die Logs, die von der GUI periodisch abgefragt und zur Anzeige gebracht werden. Umleiten von stderr in das Debug-Log
  • Hilfsprogramme festlegen: Suchen, ob die Helferprogramme vorhanden sind. Den Pfad der Programme nach ~/.dvb_script_kommander/$var speichern
  • Hilfsprogramme laden: Laden der Pfade zu den Helferprogrammen aus den Sicherungsfiles und zuweisen zu Variablen, die dann im weiteren Scriptverlauf benutzt werden
  • X.ini erzeugen: Die Initialisierungsdatei für ProjectX erzeugen. Sie sorgt unter anderem dafür, daß pjx (aktuelle CVS-Version vorausgesetzt) mit einem maximierten Vorschaufenster startet
  • Playlist für mplayer Das erzeugen eine Playlist wurde oben schon erklärt
  • Löschen: Löschen des Inhalts der Arbeitsverzeichnisse für einen sauberen Start der Bearbeitung

Funktionen (die eigentlichen Bearbeitungsschritte)

  • benutzerabbruch (): Programmabbruch durch den Benutzer
  • funktionsabbruch (): Programmabbruch, erzwungen durch das Programm
  • programmende (): wird von den beiden obigen Funktionen aufgerufen

.

  • filmauswahl (): Der zu bearbeitende Film wird geladen. Zudem wird in Abhängigkeit von der Kennzahl das Quellverzeichnis für das Brennen festgelegt.
  • verzeichnisauswahl (): Auswahl der Sicherungen. Weiterverarbeitung in Abhängigkeit vom Dateityp. Festlegen des Quellverzeichnisses für das Brennen.
  • pjx_demux_gui (): Starten von projectX zum Schneiden und Demultiplexen. Überprüfung, ob das Schnittergebnis auf eine einzelne DVD passt.
  • pjx_ts_gui (): Starten von projectX zum Schneiden. Wandeln nach TS für eine Daten-DVD
  • mpeg1_input (): Demultiplexen eines mpeg1-Files. Decodieren der Audio-Spur

.

  • normalisieren (): Die Tonspur wird normalisiert. Dazu wird sie mit ffmpeg decodiert, mit normalize auf eine definierte Lautstärke gebracht und anschließend mit ffmpeg wieder codiert.
  • ac3_behalten (): nur die ac3-Tonspuren werden behalten und weiterverarbeitet
  • mp2_behalten (): nur die mp3-Tonspuren werden behalten und weiterverarbeitet

.

  • multiplexen (): Bild und Ton werden multiplext. Dabei wird das Ergebnis schon für das Authorn vorbereitet.

.

  • authoring_ohne_menue (): Die DVD-Struktur wird erzeugt (ohne DVD-Menue)

.

  • brennen_video_dvd (): Die DVD-Struktur wird als Video-DVD gebrannt
  • video_dvd_bereit (): Überprüfen, ob die DVD in der Schublade ist und ob sie bespielt werden kann

.

  • brennen_ts (): Das ts-file wird als Daten-DVD gebrannt
  • loop_brennen_ts (): Reicht eine DVD nicht aus, wird die nächste angefordert
  • daten_dvd_bereit (): Überprüfen, ob die DVD in der Schublade ist und ob sie bespielt werden kann

.

  • sichern_dvd_struktur (): Die DVD-Struktur wird gesichert. Der Name des Sicherungsordners ist das aktuelle Datum und die aktuelle Uhrzeit
  • sichern_ts (): Das ts-file wird gesichert. Der Name des Sicherungsordners ist das aktuelle Datum und die aktuelle Uhrzeit
  • sichern_clip (): Der Videoclip wird im Clipordner gespeichert. Dabei wird überprüft, ob ein Clip gleichen Namens dort schon existiert

Hauptprogramm (Aufruf der Funktionen)

In Abhängigkeit von der Aufgabe und der damit von der GUI übernommenen Kennzahl werden die Funktionen in der richtigen Reihenfolge abgearbeitet. Im Falle des Direktdrucks wird openoffice-draw über die jeweilige Druckschablone gestartet


Vom DVB zur DVD, die GUI: Anleitungen - Installation - GUI-Kommanderscript - Arbeitsscript - Dokumentation


Zurück zur Multimedia-Übersicht