Vom DVB zur DVD

Aus Linupedia.org
Version vom 22. Januar 2008, 21:14 Uhr von Escho (Diskussion | Beiträge) (Neuer Artikel)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
Höhe=24px
Achtung dieser Artikel ist noch in Arbeit und dient vorläufig nur als Vorlage. Dieser Beitrag zu Linux oder der Abschnitt ist in Bearbeitung. Weitere Informationen findest du hier. Der Ersteller arbeitet an dem Beitrag oder Abschnitt und entsorgt den Wartungsbaustein spätestens 3 Tage nach der letzten Bearbeitung. Änderungen außer Rechtschreibkorrekturen ohne Absprache mit dem Urspungsautor sind möglichst zu vermeiden, solange dieser Baustein noch innerhalb der genannten Frist aktiviert ist.


Diese Anleitung erklärt. wie man ohne großen Aufwand aus einer DVB-Aufnahme eine am Stand-alone-Player abspielbare DVD erstellen kann.


Diese Beschreibung wurde mit folgenden Distributionen getestet:

Opensuse 10.3 32Bit mit KDE 3.5.7


Achtung:

Der Löschbefehl "rm" ist ein gefährlicher Befehl und nur mit äußerster Sorgfalt zu verwenden. Falsch angewendet kann er, vor allem in Verbindung mit dem Sternzeichen, das komplette System löschen).


Einleitung

Vor noch nicht allzu langer Zeit  (es war das dunkle Zeitalter der Videorecorder) trug sich in unseren Wohnzimmern oftmals folgendes grauslich
anmutende Geschehen zu:
Eine Stimme ist zu hören, forsch und fordernd: "He Mann, nimm mir doch mal den Gottschalk auf!"
Die Reaktion auf solch drängendes Gebaren: Sofortige Suche nach der Bedienungsanleitung des Videorecorders.
Der Mann, triumphierend das gefundene Buch in der Hand haltend, um es schließlich, tiefgebückt, mit stierem Blicke zu durchforsten. Er, zögernd die eine
oder andere Taste am Gerät drückend, hoffend, daß alles auch so funktioniert, wie es im Hexenbuche beschrieben steht.
Freude, die hervorbricht, wenn das Gerät dann zu arbeiten anfängt.
Die Frau, den Mann betrachtend, bewundernd, ob dessen technischen Verständnisses.

--Escho 22:14, 22. Jan. 2008 (CET)

Heute gibt es den einen oder anderen Haushalt, in dem ein Videorecorder nur noch zur Zierde dient, bzw. der Kompatibilität zu einem großen Haufen VHS-Kassetten. Blickfang des Wohnraums ist nun ein Flachbildfernseher geworden, an den ein DVD-Recorder angeschlossen ist. Glücklich, wer solche Gerätschaften sein Eigen nennen darf.

Der normal ausgestattete Mitteleuropäer kann jedoch aufatmen. Denn auch sein Computer, aufgerüstet durch eine Sat-Karte, kann Fernsehsendungen aufnehmen und bearbeiten. Voraussetzung ist nur ein anständiges Betriebssystem und ein paar kleine Helferprogramme:

Notwendige Programme

kaffeine:     Aufnahme und Wiedergabe (in Verbindung mit libxine1)
projectx:     Schnitt, Synchronisation, Fehlerbereinigung, Demultiplexen
mplex:        Multiplexen (enthalten in den mjpegtools)
dvdauthor:    Kommandozeilentool für das Authorn von DVDs
qdvdauthor:   GUI für dvdauthor
k3b:          Brennen
lxdvdrip:     Requantisieren

Die Quelle der Programmpakete sollte Packman sein. Desweiteren sollte vorher getestet werden, ob die Programme auch einzeln funktionieren.

Kurzübersicht

Die gewünschte Fernsehsendung wird mit Kaffeine aufgenommen. Projectx hilft anschließend dabei, die Werbung herauszuschneiden. Das Ergebnis wird demultiplext, also in Bild- und Ton-Dateien zerlegt. Der nächste Schritt ist das Zusammensetzten von Bild und Ton zu einer mpg-Datei, wobei mplex zum Einsatz kommt. Dvdauthor erstellt dann aus dieser Datei die DVD-Struktur. Und diese Struktur wird mit k3b auf einen Datenträger gebrannt.

Die Bearbeitungsschritte können einzeln von Hand ausgeführt werden. Dazu müssen die jeweiligen Programme mit den korrekten Parametern gestartet werden. Dieses Vorgehen ist sogar sehr zu empfehlen, um ein Verständnis dafür zu bekommen, was da eigentlich passiert. Nach dieser Lernphase kann dann dazu übergegangen werden, das Ganze zu automatisieren.

Das im folgenden dargestellte Shellscript stellt einen solchen Automatismus dar.

Vorarbeiten (einmalig)

Es werden einige Arbeitsordner benötigt, die von Nutzer erstellt werden müssen. Es bleibt der Phantasie des Anwenders überlassen, wie sie genannt und wo sie abgespeichert werden. In diesem Script lauten sie so:

Aufnahmeordner:        /daten/videos/aufnahme
Cacheordner:           /daten/videos/bearbeiten/Cache
Zielordner:            /daten/videos/bearbeiten/ZielDVD
Konfigurationsordner:  /daten/videos/Scripte

Diese Arbeitsordner sollten ausschließlich der Arbeit mit dem Script vorbehalten sein! Lediglich der Aufnahmeordner kann frei verwendet werden.

Aufnahme mit kaffeine

Als bevorzugtes Programm für die Aufnahme und Wiedergabe von DVB-s-Streams kommt kaffeine zur Anwendung.

Grundeinstellungen in kaffeine (einmalig)

Aufnahmeordner:        DVB - DVB einrichten - Aufnahme - Aufnahmen-Verzeichnis:    Pfad zum Aufnahmeordner angeben
Aufnahmedauer:         DVB - DVB einrichten - Aufnahme - Sofortaufnahmedauer:      600min (Das reicht auch dann noch, wenn mal länger überzogen wird)
Aufnahmeformat:        DVB - DVB einrichten - Aufnahme - Bevorzugtes Format:       TS (läßt sich prima weiterverarbeiten)

Aufnahmestart

  • Fernsehsender auswählen
  • Sofortaufnahme drücken

libxine1

Enthält das meiste, was zur Wiedergabe von Videodateien nötig ist.

Das Shellscript

Mit Hilfe dieses Scrips wird der Vorgang der Videobearbeitung weitgehend automatisiert.

Scriptname

Beliebig (Beispiel: projectx_start.sh). Als Speicherort kann der Konfigurationsordner verwendet werden.

Scriptstart

Das Shellscript muß ausführbar gemacht werden: Rechtsklick - Eigenschaften - Berechtigungen - Ausführbar

Nun genügt ein Mausklick, um das Script zu starten. Alternativ kann ein Terminal geöffnet werden, wo dann der Scriptname eingegeben wird.

Scriptcode

#!/bin/sh

#++++++++++++++++++++++++++++Vom DVB zur DVD+++++++++++++++++++++++++++++++++++++++

#+++++++++++++++++++++++++++++Cache leeren+++++++++++++++++++++++++++++++++++++++++
rm /daten/videos/bearbeiten/Cache/*.*

#++++++++++++++++++++++++++Zielordner leeren+++++++++++++++++++++++++++++++++++++++
rm /daten/videos/bearbeiten/ZielDVD/VIDEO_TS/*
rm /daten/videos/bearbeiten/ZielDVD/AUDIO_TS/*
rmdir /daten/videos/bearbeiten/ZielDVD/VIDEO_TS
rmdir /daten/videos/bearbeiten/ZielDVD/AUDIO_TS

#+++++++++++++++++++++++++Ausführung projectx++++++++++++++++++++++++++++++++++++++
#++++++(Quelle auswählen - Schneiden - Demultiplexen - Ziel festlegen)+++++++++++++
/usr/bin/projectx.sh

#+++++++++++++++++++++++++++++Multiplexen+++++++++++++++++++++++++++++++++++++++++++
/usr/bin/mplex -f8 /daten/videos/bearbeiten/Cache/*.mp2 /daten/videos/bearbeiten/Cache/*.m2v -o /daten/videos/bearbeiten/Cache/clip.mpg

#++++++++++++++++++++++++++Authoring ohne DVD-Menue+++++++++++++++++++++++++++++++++
/usr/bin/dvdauthor -o /daten/videos/bearbeiten/ZielDVD -x /daten/videos/Scripte/dvdauthor.xml

#++++++++++++++++++++++++++++Öffnen Bremmprogramm+++++++++++++++++++++++++++++++++++
/opt/kde3/bin/k3b

#+++++++++++++++++++++++++++++++Script Ende+++++++++++++++++++++++++++++++++++++++++
exit 0

Die hier genannten Programmpfade beziehen sich auf OpenSuse 10.3 mit KDE 3.5.7 32Bit. Bei anderen Versionen ist das Script entsprechend anzupassen.

Erläuterungen zum Code

*Cache leeren:                    Definierter Anfangszustand.
*Zielordner leeren:               Muß sein, da sonst immer neue Dateien im Zielordner - VIDEO_TS hinzugefügt werden. Das ergibt dann eine nicht lesbare DVD.
*Videoschnitt und Demultiplexen:  projectx. Es handelt sich um ein Java-Programm und wird gestartet mit dem Script: projectx.sh
*Multiplexen:                     mplex
*Authoren:                        dvdauthor. Erstellen der DVD-Struktur
*Brennen:                         k3b. Wird automatisch gestartet und dann von Hand ausgeführt, um zu sehen, was man da auf die DVD schaufeln will.

Die Bearbeitungsschritte im Einzelnen

Projectx

Geniales Programm für die Weiterverarbeitung von DVB-Streams. Hier wird es zum Schneiden und Demultiplexen des aufgenommenen TS-Streams verweendet. Beim Demultiplexen werden Bild und Ton zusätzlich noch synchronisiert und es werden kleinere Fehler (Dropouts) behoben.

Grundeinstellungen in projectx (Einmalig)

*Einstellungen - Einstellungen beim Beenden speichern                              Die Einstellungen bei jedem Programmstart verwenden
*Liste der Ausgabepfade: Cacheordner angeben                                       Einer der Arbeitsordner
*Prozess - anpassen - Aktion: demultiplex                                          Was soll das Programm machen
*Prozess - anpassen --> Prozessfenster - Datei: Programm nach Ausführung beenden   Damit es im Script weitergehen kann

Quelldatei (vom Anwender einzugeben)

*Datei - Hinzufügen - "Das aus dem Aufnahmeordner, was bearbeitet werden soll"

Schneiden

Es handelt sich hierbei um keinen Frame-genauen Schnitt. Die Genauigkeit ist aber durchaus ausreichend für den Heimanwender. Es wird sehr selten passieren, daß man sieht, wo die Werbung herausgeschnitten wurde. Es muß allerdings auch gesagt werden, daß das Schneiden mit projectx einige Übung voraussetzt. Nicht, weil es sonst nicht funktioniert, sondern damit es flott von der Hand geht!

*Mit dem Laufbalken den ersten Schnittpunkt grob anwählen
*Mit den Vor- Zurückspultasten den genauen Schnittpunkt anfahren
*Nun den Button "+" drücken

Damit ist der erste Schnittpunkt festgelegt und für die weiteren Schnittpunkte kann genauso verfahren werden. Mit dem Button "+" wird jeweils ein neuer Schnittpunkt gesetzt, mit dem Button "-" wird ein Schnittpunkt entfernt. Zur Kontrolle dient letzendlich der Laufbalken: rot, was herausgeschnitten wird, grün, was drin bleibt.

Bearbeitung starten

*Quickstart drücken

Bearbeitungsergebnis

Es werden zwei Dateien erstellt:

*Bilddatei: Cacheordner/xxx.m2v
*Tondatei: Cacheordner/yyy.mp2

Der Bearbeitungsfortschritt kann am Bildschirm verfolgt werden. Das Programm beendet sich schließlich von selbst, was dazu führt, daß im Script der nächste Schritt ausgeführt wird.

mplex

Hiermit wird die Bild- und die Tondatei wieder zu einem .mpg-Stream zusammengefasst. Dieser Stream hat nun ein Format, welches von einem Authoring-Programm weiter bearbeitet werden kann.

Eingangsdateien

*Bild: Cacheordner/xxx.m2v
*Ton: Cacheoedner/xxx.mp2

Ausgangsdatei

*Cacheordner/clip.mpg

dvdauthor

Dieses Kommandozeilenprogramm erstellt die fertige DVD-Struktur.

Die DVD-Struktur

Damit eine Video-DVD von einem Abspielgerät auch gelesen werden kann, muß sie eine bestimmte Verzeichnisstruktur aufweisen:

*AUDIO_TS: Dieser Ordner ist nur wegen der Kompatibilität zur Audio-DVD vorhanden und leer.
*VIDEO_TS: Hier sind die Bild und Tonsignale gespeichert, dazu einige Verwaltungsdateien.

Das DVD-Menue

Mit dvdauthor läßt sich auch ein DVD-Menue erstellen. Darauf wird hier jedoch verzichtet, was bedeutet, daß der Film sofort startet, wenn die DVD eingelegt wird. Sollte dennoch ein Menue gewünscht werden, so sei auf qdvdauthor als graphische Benutzeroberfläche von dvdauthor verwiesen.

xml-Datei(Einmalig)

Mit folgender Konfigurationsdatei wird dvdauthor eine DVD-Struktur ohne Menue erstellen. Sie erhält den Namen: dvdauthor.xml und wird im Konfigurationsordner gespeichert.

<dvdauthor>
   <vmgm />
   <titleset>
       <titles>
           <pgc>
               <vob file="/daten/videos/bearbeiten/Cache/clip.mpg" />
           </pgc>
       </titles>
   </titleset>
</dvdauthor>

Quelldatei

*Cacheordner/clip.mpg

Zieldateien

*Zielordner/AUDIO_TS
*Zielordner/VIDEO_TS

lxdvdrip

Es ist das Vorrecht einer 4,7GB DVD, daß sie nicht mehr als 4,4GB Platz für das Brennen zur Verfügung stellt. Es gibt aber durchaus Filme, die mehr Speicherplatz benötigen. Hier kommt lxdvdrip ins Spiel. Dieses Programm ript eine ferige DVD-Struktur und und requantisiert diese so, daß sie doch noch auf der DVD Platz findet. Sollte der Unterschied nicht zu groß sein, ist das ein durchaus annehmbares Mittel. Es lohnt also ein Blick auf den VIDEO_TS-Ordner in k3b. Sollte der zu groß sein, ist lxdvdrip der Kandidat des Tages.

Es wird dann folgender Befehl in ein Terminal eingegeben:

lxdvdrip -dl="/daten/videos/bearbeiten/ZielDVD"

Eventuelle Fragen des Programms sind sinnvoll zu beantworten. Das Ergebnis steht dann im Ordner /tmp/film-dvd. Von hier kann dann der VIDEO_TS-Ordner nach k3b gezogen werden.

k3b

Dieses Programm wird zum Brennen der DVD verwendet. Es wird im Script nur gestartet. Der Rest hat von Hand zu erfolgen.

*Auswählen: Neue Video-DVD
*Aus dem Zielordner den Ordner VIDEO_TS auf "k3b data project" ziehen
*DVD einlegen, so es noch nicht geschehen ist
*Auf Brennen Drücken
*Nach der Fertigstellung k3b beenden

Nachbetrachtung

Dieser doch recht komplexe Vorgang reduziert sich also auf ein paar "Bewegungen" mit der Maus. Alles, was gefordert wird, ist Geduld, denn die Rechenzeit für einen 2 Stunden-Film kann durchaus 10 bis 20min betragen. Und wenn der Rechner etwas schwächer ist, sind auch längere Zeiten einzukalkulieren. Will man im Groben darüber informiert sein, wie der Bearbeitungsstand ist, so kann das Script in einer Konsole gestartet werden. Ansonsten, grenzenloses Vertrauen vorausgesetzt, genügt ein Klick mit der Maus auf das Script.

Links

Packman	http://packman.links2linux.de/
kaffeine	http://kaffeine.kde.org/
xine		http://xinehq.de/
mjpegtools	http://mjpeg.sourceforge.net/
dvdauthor	http://dvdauthor.sourceforge.net/doc/index.html
qdvdauthor	http://qdvdauthor.sourceforge.net/
lxdvdrip	http://developer.berlios.de/projects/lxdvdrip/
k3b		http://www.k3b.org/