Geschrieben von Christian Schnettelker

Schlagwörter:

Nerd deluxe: Videotext von VHS auslesen – Teil 4

Im vierten und letzten Teil meiner Artikelserie „Videotext von VHS auslesen“ fahren wir endlich die Ernte für unsere Bemühungen ein: das VHS-Band wird digitalisiert und die gespeicherten Videotext-Daten programmtechnisch ausgelesen.

VHS-Kassette
Wieder gehen wir schrittweise vor, jetzt sind es aber nur noch vier Schritte zum Ziel

Schritt 1: VHS digitalisieren

Aktivieren Sie erneut das Programm TVTime (ggf. Kanalsuche wiederholen) und stellen Sie sicher, dass die gewünschte Sendung läuft. Deaktivieren Sie auch ggf. wieder die Signalprüfung, diese schaltet sich gerne ungefragt ein.

Anschließend starten wir den Digialisierungsvorgang („capture“) mit

$ cd ~/vhs-teletext
$ vbicat /dev/vbi0 > capture.vbi

Den Vorgang können Sie jederzeit mit Control+C abbrechen. Für den Anfang (oder um nur das Aufnahmedatum herauszufinden) reicht eine Minute Aufnahmedauer, später sollten Sie für gute Ergebnisse mindestens 15 Minuten aufzeichnen. Ab und zu kann es zu verlorenen Bildern („Frame-Drops“) kommen, dies ist normal.

Bei meinem Rechner erschien in seltenen Fällen eine unerwarteten Fehlermeldung, es konnte keine Aufzeichnung durchgeführt werden. Ein Neustart des Rechners erledigte dieses Problem, bei Linux kocht man halt auch nur mit Wasser.

Schritt 2: Umwandlung in T42

Das digitalisierte VHS-Material muss nun mit allen bereits beschriebenen Methoden ausgewertet werden. Wir starten den Vorgang mit

$ deconvolve capture.vbi > stream.t42

Es wird eine Datei stream.t42 erzeugt, die alle erkannten Videotext-Seiten enthält. Fragen Sie mich nicht, was T42 bedeutet, ich habe es nicht herausfinden können, der Autor schweigt diesbezüglich und Google gibt auch nichts passendes aus.

Dieses ist mit Abstand der aufwändigste Prozess und kann unter Umständen Stunden dauern. Ein Beispiel: eine Aufnahme von 55 Minuten beschäftigte meinen Rechner mit aktivem CUDA zwei Stunden und 21 Minuten lang, bis der Prozess abgeschlossen war. Ohne CUDA waren es lockere 22 Stunden und 20 Minuten.

Funktioniert die CUDA-Unterstützung aus irgendwelchen Gründen nicht, gibt es eine entsprechende Meldung und der Hauptprozessor wird benutzt. Falls Sie aus Qualitätsgründen (siehe Teil 2) die CPU verwenden möchten, schreiben Sie

$ deconvolve capture.vbi --force-cpu > stream.t42

Während der Rechner arbeitet haben wir genug Zeit für einen Kaffee, einen kleinen Imbiss oder gehen Sie Tauben im Park vergiften.

Schritt 3: Seiten zusammenfassen

Im dritten Schritt fassen wir die vielen in stream.t42 vorhandenen Kopien der einzelnen Seiten zusammen, und zwar dergestalt, dass die richtigen Zeichen durch eine Wahrscheinlichkeitsbewertung (siehe Teil 1) ermittelt werden:

$ t42pipe stream.t42 -S > stream-verdichtet.t42

Sie werden sehen, die Datei „stream-verdichtet.t42″ ist deutlich kleiner als ihr Ursprung, die Erstellung geht auch relativ flott.

Schritt 4: HTML-Dateien erzeugen

Aus der für Menschen unlesbaren Datei „stream-verdichtet.t42″ machen wir im vierten Schritt anklickbare und im Browser sichtbare Dateien, um endlich auf den Videotext-Inhalt von VHS zugreifen zu können:

$ mkdir html
$ cp ~/vhs-teletext/misc/* ~/vhs-teletext/html/
$ t42html stream-verdichtet.t42 html

Damit haben wir nun die HTML-Dateien nebst den benötigten Schriftarten und einer CSS-Datei in einem kompakten Verzeichnis.

Seiten ansehen

Es gibt drei Wege, sich das Ergebnis anzusehen: erstens können Sie einfach eine Datei im html-Verzeichnis doppelklicken und die Tafel im Browser betrachten. Wurden die Seitennummern richtig erkannt kann man die anderen Tafeln über einen Klick auf die Seitennummern anwählen.

Silvesterprogramm 1988
Dann gibt es einen interaktiven Betrachter, der sozusagen ein Videotext-Gerät simuliert. Dazu öffnen Sie ein spezielles Terminal, welches die Videotext-Schriftart verwendet und starten den Betrachter:

$ urxvt -fg white -bg black -fn teletext -geometry 41x25 +sb &
$ t42service stream-verdichtet.t42 | t42interactive

Die Seitennummern wählen Sie wie bei einer TV-Fernbedienung über den Nummernblock an. Nachteil: leider ist es mir bisher nicht gelungen, den Quellcode so zu ändern, dass unsere deutschen Umlaute korrekt angezeigt werden.

Die dritte Möglichkeit ist, eine spezielle Seite einzeln im Terminal anzuzeigen. Hier ein Beispiel für die Seite 100:

$ urxvt -fg white -bg black -fn teletext -geometry 41x25 +sb &
$ t42pipe stream-verdichtet.t42 -p 100

Dies eignet sich insbesondere, um schnell auf den Inhalt zugreifen zu können, da hierfür Schritt 4: HTML-Datei erzeugen nicht notwendig ist. Auch hier sind die Umlaute leider falsch.

Umrechnungsvorgang automatisieren

Um die Schritte 2 bis 4 nicht jedes mal von Hand durchführen zu müssen bietet es sich an, diesen Vorgang zu automatisieren. Dazu legen Sie ein Shell-Skript in einem Editor an und machen dieses ausführbar.

Hier als Beispiel mein Skript „vhsdo“. Es wird mit einem Parameter („$1″) für den Namen eines Unterverzeichnisses aufgerufen, damit ich verschiedene Projekte auf der Festplatte verwalten kann:

if [ "$1" == "" ]
   then
       echo "Parameter fehlt"
   else
       echo "Order aufräumen"
       cd ~/vhs-teletext/$1
       rm -f stream.t42
       rm -f stream-verdichtet.t42
       rm -f -r html

       echo "Schritt 2: T42 auslesen"
       deconvolve capture.vbi --force-cpu > stream.t42

       echo "Schritt 3: T42 verdichten"
       t42pipe stream.t42 -S > stream-verdichtet.t42

       echo "Schritt 4: HTML generieren"
       mkdir html
       cp ~/vhs-teletext/misc/* ~/vhs-teletext/$1/html/
       t42html stream-verdichtet.t42 html

       echo "Videotext ist fertig"
fi

Ein solches Skript kann einfach im Editor erstellt werden, mit dem Kommando

$ chmod +x vhsdo

machen wir die Datei vhsdo ausführbar. Der Aufruf, damit alles in einem Unterverzeichnis namens „hexenschuss“ stattfindet, sieht so aus:

$ ./vhsdo hexenschuss

Natürlich muss sich die Aufnahmen capture.vbi aus Schritt 1 dann in diesem Verzeichnis befinden. Das Vorgehen ist gegenüber den Batch-Dateien von Windows etwas ungewohnt, aber es funktioniert gut.

Verschönerung

Mit der vom Autor erstellten CSS-Datei werden die Videotext-Tafeln einfach in die linke obere Ecke des Browserfensters geklatscht, auf großen Bildschirmen sieht das für meinen Geschmack nicht sonderlich gut aus.

Mit ein paar kleinen Modifikationen an der teletext.css lässt es sich aber erreichen, dass die Tafeln zentriert und optisch gefälliger dargestellt werden. Editieren Sie die Datei wiefolgt:

$ sudo nano ~/vhs-teletext/misc/teletext.css

Die erste Zeile wird wiefolgt geändert:

body { background:rgb(60,60,60); }

In der Eigenschaft der Klasse .subpage schreiben wir statt „border: solid black 10px;“ folgendes:

border-top: solid black 80px;
border-left: solid black 60px;
border-right: solid black 80px;

Den Code für die Zentrierung setzen wir ganz ans Ende der Datei:

pre { width:1060px; margin:auto; background-color:black; }
pre:after { content:'.'; clear:both; display:block; visibility:hidden; height:0px; }
html { height:100%; display:table; width:100%; }
body { display:table-cell; vertical-align:middle; }

Sendeschluss

Das war es fürs Erste, ich hoffe, Ihnen gelingt das Auslesen sogut wie mir. Falls ich neue Erkenntnisse gewinne, werde ich diese Artikelserie entsprechend aktualisieren.

Spaß und Spiel
Ich bin aber auch für Ideen dankbar, insbesondere suche ich jemanden, der fit in Python ist und hilft, das Problem mit den Umlauten besser zu lösen.

Nachtrag vom 14. August 2016

Inzwischen gibt es einige Ergebnisse, siehe „VHS-Zeitreise nach 1989“.

Pin on PinterestShare on FacebookTweet about this on TwitterShare on Google+Share on LinkedIn

Kommentare

Kommentare

Kommentar schreiben

Allgemeiner Hinweis: Bitte kommentieren Sie zum Thema unter Vermeidung von Allgemeinplätzen und Einzeilern. Eine korrekte Rechtschreibung wird erwartet.

Hinweis für SEO-Kommentarschreiber: alle Links sind nofollow und steigern Eure Linkpopularität nicht. Die Kommentare werden moderiert, offensichtliche SEO-Kommentare nicht veröffentlicht.