DVB-S (SDTV) schneiden und encodieren

Als ich vor langer Zeit anfing mittels DVB-S Karte in einem PC Satelliten TV aufzuzeichnen stellte ich sehr schnell fest, daß die Aufnahmen nie perfekt waren. Es kam immer wieder zu Ton/Bildaussetzern. Die daraus resultierende Bild/Ton-Asynchronität bekommt man mit Handarbeit niemals weg.

Nach einer Weile bekam ich den Dreh raus. Demuxen (Bild/Ton-Spuren separieren) des DVB-S .mpg oder .ts Files mittels ProjectX, einem kleinen Programm das beim Demuxen gleichzeitig Aussetzer korrigiert und Bild/Ton auf jeden Fall synchron hält. ProjectX ist ein Java Programm, das erst kompiliert werden muss. Dazu muss auf dem PC das JDK (nicht nur die JRE) installiert sein.

Nach dem Demuxen werden die bereinigten Bild/Ton-Spuren wieder gemuxt und mit VirtualDub in eine AVI encodiert.

Zum Demuxen startet man einfach ProjectX, und zieht per Drag & Drop eine .mpg oder *.ts Datei in den unteren Bereich des Fensters (Dateiliste). Zum Schneiden klicke ich einmal auf die Datei und dann auf Schnittsteuerung. Nun kann man sich mit den Spul-Buttons im Film sehr schnell aber auch präzise bewegen. <<<  >>> gleich große Sprünge, <<  >> gleich mittlere Sprünge und <|  |> gleich Einzelbilder.px_spulen

Ich spule bis zum Anfang des Films und setzt einen Schnittpunkt indem ich einmal auf das grüne + Zeichen (Schnittpunkte) direkt links neben den Spul-Buttons klicke.

projectx_schnittpunkte

Nun spule ich bis zum Ende (incl. Werbeblöcke) des Films und drücke abermals +
Zum starten des Demux Vorgang einfach auf den QuickStart-Button klicken.

px_start

Je nach Filmlänge dauert es etwas, insgesamt zeigt ProjectX aber eine sehr gute Performance. Danach liegt im gleichen Verzeichnis wo der Film liegt die reine Bild (*.m2v) und Tonspur(en) (*.mp2 oder/und *.ac3). Diese sind nun fehlerbereinigt/synchronisiert und müssen wieder zu einer neuen MPEG-Datei gemultiplext werden.

Multiplexen mit TMPGEnc 2.5

TMPGEnc nehme ich seit Jahren nur noch als Multiplexer. Programm starten, dann auf File/MPEG Tools klicken und im aufgehenden Fenster oben den Multiplex Reiter wählen. Dann per Add Button den Videostream *.m2v und die Tonspur *.AC3 oder *.mp2 hinzufügen.  Unter Output einen Pfad und Dateinamen angeben dann RUN klicken. Bild und Ton (fehlerbereinigt-Filmbeginn/Ende geschnitten-noch incl. Werbung) werden nun wieder zusammengeführt.

tmpgenc_2.5

Nach dem Multiplexen lädt man diese MPG Datei dann mit VirtualDub. Da VirtualDub von Haus aus keine MPG Dateien öffnet, benutze ich die MOD Version 1.5.10.1 (beinhaltet einen MPEG-2 Filter). Dort setze ich unter Video/Filters erst mal den Cropping Filter ein um schwarze Ränder/Balken zu entfernen. Bei Spielfilmen braucht man keinen Deinterlacing Filter da Diese heutzutage Vollbilder benutzen. Bei Serien oder TV-Produktionen kommt aber häufig Interlacing vor. Verwendet man immer Deinterlacing verschwendet man evtl. empfangene Bildqualität (Anzahl der Bildzeilen), da zumeist zwei Bildzeilen zu Einer verschmolzen werden gleich weniger Vertikalauflösung. Interlacing erkennt man zumeist in schnelleren Filmszenen an den Kammartefakten. Dann kommt noch ein Sharpen Filter mit einem Wert von 10-20 hinzu. Nicht zu viel Schärfen sonst grieselt es zu sehr im finalen Film.

Als Videocodec nehme XVid (herunterladen/installieren). Zuerst nahm ich immer eine feste Bitrate. Heute nehme ich nur noch XVid mit Zones (Weight Q4). Kostet zwar mehr Speicherplatz, dafür bleibt das Bild wie gemeißelt. Durch hinzufügen einer Zone-Zeile ist die oben zu sehende Bitrate irrelevant.xvid_zones

Mit VirtualDub encodiere ich im ersten Durchlauf nur das Bild, der Ton bleibt im Originalzustand (Direct Stream Copy), fließt aber in die neu encodierte AVI erst mal mit ein.

Werbung Schneiden

Das geht mit VirtualDub sehr schnell und präzise. Direkt wenn der Film geladen wurde wie oben erwähnt die Filter setzen. Da es viel Arbeit wäre immer wieder die Filter-Sets manuell zu erstellen kann man Diese speichern/laden unter File/Save/Load processing Settings. Um ein Filterset zu laden Ctrl + L drücken ein Ladefenster öffnet sich. So habe ich mir Filter-Set’s erstellt die bestimmte Balkenstärken croppen, mit und ohne Deinterlacing usw.

Nun aber zum Schneiden. Mit der Maus unten den Slider grob zum Anfang des Films ziehen. Mit Shift + Cursor links/rechts springt man zu den Keyframes macht also kleinere Sprünge. Nur mit den Cursortasten spult man Einzelbilder. So kann man schnell den exakten Filmanfang setzen. Dann Pos1 drücken, man sieht am Slider eine gesetzte Markierung. Dann mit der Maus den Slider zum Beginn des 1. Werbeblock ziehen und mit den Cursortasten exakt einjustieren. Dabei merke ich mir immer die letzte Filmszene. Hat man Glück ist der Film einfach nur gerade zerhackt, aber die Sender lieben es Szenen überlappend zu wiederholen. Position mit Ende Taste markieren. Am Slider sieht man nun diesen ersten markierten Filmblock. F7 drücken (File/Save As), ein Speicherfenster geht auf. Dort direkt das Häkchen ‘Don’t RUN this Job now…’ anhaken denn wir wollen nicht direkt los rechnen sondern nur Job’s erstellen und Diese dann abarbeiten lassen. Durch die Job-Funktion kann man beliebig viele Filme hintereinander fertig schneiden und dann die Job Abarbeitung starten. Dort einen Dateinamen zum speichern eingeben. Ich mache das immer so : simpsons_11 und simpsons_12 ….. oder falls ich mehrere Folgen habe : simpsons_1_11 und simpsons_1_12…..simpsons_2_11 und simpsons_2_12 usw.

Denn später wenn alle Job’s erledigt sind kann VirtalDub die erstellten AVI Teile _11  _12  _13 …. automatisch in einem Ruck mit aufsteigender Numerierung aneinanderfügen.  Nun immer so fortfahren. Anfang Filmblock suchen, markieren (Pos1), Ende Filmblock suchen, markieren (Ende) und speichern (F7). Keine Angst das der 1. markierte Block wieder verloren scheint, man hat Diesen ja schon in die Jobliste übernommen. Ist man mit Diesem Film fertig zieht man direkt den nächsten Film in VirtualDub hinein und so weiter.

Ist man mit dem Schneiden aller Filme fertig drückt man F4 und sieht die Job Control.

virtualdub_job_control_waiting

Alle Job’s stehen auf ‘Waiting’. Mit klick auf ‘Start’ geht es los. Nun kann man erst mal Pause machen, der Rechner rechnet.

virtualdub_job_control_done

Nach einer Weile stehen alle Job’s aus Done. Falls Fehler aufgetaucht sind (sehr selten, wenn andere Programme parallel viel CPU-Leistung ziehen) kann man einen Doppelklick auf den Job machen und dadurch den Zustand des Jobs umstellen. Z.B. wieder auf Waiting. VirtualDub berechnet dann nur noch den/die wartenden Job(s).

Nun ziehen wir eine encodierte Datei (z.B. simpsons_11) in VirtualDub und gehen dann auf File/Append Segment. Dort wählen wir die simpsons_12 Datei und achten darauf das das Häkchen ‘Autodetect additional Segments….’ angehakt ist. Dadurch lädt VirtualDub weitere Dateien numerisch aufsteigend bis es keine mehr findet. Nun hat schon den Gesamtfilm geladen und muß Ihn nur noch speichern. Das geht relativ schnell da VirtualDub nur die fertigen Blöcke liest und gesamtheitlich speichert. Möchte man die AC3-Tonspur (wenn vorhanden) behalten kann man vor dem Speichern auf Stream/Stream List klicken und dort Rechtsklick auf die AC3-Spur dann ‘Direct Stream Copy’ wählen. So wird der AC3-Ton unangetastet mitgespeichert.

mpeg Tonspur zu MP3 komprimieren

Die gerade Video-Enkodierte AVI wieder mit VirtualDub laden und  Sicherstellen das unter Video ‘Direct Stream Copy’ ausgewählt ist. Denn das Videomaterial wurde ja eben schon neu encodiert. Aber beim Ton unter Streams/Steam List Rechtsklick auf die mpeg Audiospur und wähle ‘Full Processing Mode’. Dann nochmals Rechtsklick auf die Audiospur und wähle ‘Compression’. Dort kann man dann Lame MP3 (vorher herunterladen/installieren) auswählen und eine passende Bitrate. Dadurch wird die mpeg Tonspur nochmals schön komprimiert, das spart Speicherplatz praktisch ohne Klangverlust.

 

Schreibe einen Kommentar