Sharemarks
Inhaltsverzeichnis |
Beschreibung
Das Sharemarks-Projekt hat das Ziel, Schnittmarken für VDR-Aufnahmen in ein universelles Format zu konvertieren und zentral per Webserver zur Verfügung zu stellen. Oder anders ausgedrückt: Wenn ein VDRler die Werbung in einer Aufnahme markiert hat, dann können sich alle anderen die Arbeit sparen und die Schnittmarken des ersten VDRlers verwenden.
Hardwareanforderungen
Ein VDR mit Internetzugang.
Softwareanforderungen
- Perl mit dem LWP::Simple Modul (in libwww enthalten)
Installation
Falls nicht bereits installiert.
cd $SOURCEDIR libwww-perl-<VERSION>.tar.gz cd libwww-perl-<VERSION> perl Makefile.PL make make test make install
cd $SOURCEDIR tar xvzf sharemarks-<VERSION> cd sharemarks-<VERSION> cp pts2marks marks2pts /usr/local/bin
Erstellen der Konfiguration /etc/marks2pts.conf. Die Datei kann auch über den Aufruf der "marks2pts" ohne Parameter erzeugt werden.
Zum Schluß ist die rwrapper.sh anzupassen.
SHAREMARKS="0" # (0=off,1=on,2=upload after cut)
Und VDR mit der entsprechenden Option übergeben.
-r $PATH/rwrapper.sh
Einträge für die reccmds.conf, zum manuellen Up-/Download von Schnittmarken über den vdr-Menüpunkt Befehle:
Download Schnittmarken : $PATH/pts2marks Upload Schnittmarken : $PATH/marks2pts -upload
Es ist eine kleine Dokumentation im Sharemarks-Archiv vorhanden.
Patches
- vdr >= 1.3.23
Hintergrund-infos
Die Idee:
Nehmen wir mal an, zwei User haben identische DVB-Karten, VDR-Versionen und Signal-Quellen (also denselben Sat angepeilt). Jetzt nehmen beide die gleiche Sendung auf. Was erwartet Ihr, sind die Daten auf den Platten zu 100 % identisch? Ich würde sagen ja, schliesslich handelt es sich um eine digitale Datenübertragung, die identisch auf beiden Systemen prozessiert wird.
Nun schneidet ein User die Werbung heraus, und er möchte seine Schnittmarken dem anderen User mit dem identischen Setup zur Verfügung stellen. Dann taucht folgendes Problem auf: Leider sind die Rechneruhren nicht gleich gestellt, und deshalb unterscheidet sich auch der Aufnahmestart (zusätzlich hat der eine User 1 min Vorlauf, der andere 5 min). Die Schnittmarken orientieren sich aber an den Startzeiten der Aufnahme, die sind im Format
HH:MIN:SEK.Frames
Also kann man die marks.vdr selbst nicht tauschen. Die marks zeigen natürlich auf ganz genau ein Bild, und das kann man eindeutig indentifizieren: Es hat nämlich einen Zeitstempel. Ohne in die Details gehen zu wollen, dieser Zeitstempel sollte bei jedem User identisch vorhanden sein. Wenn man also einer mark einen Zeitstempel (PTS) zuordnen kann, dann bezieht sich diese neue "pts-mark" nicht mehr auf den Aufnahme-Start, sondern ist sozusagen in der Aufnahme eingebaut. Beim Konvertieren zurück in eine mark im VDR Format muss man natürlich wieder den Aufnahmeanfang als Referenz nehmen, sonst kann der VDR nichts damit anfangen. Genau die Konvertierung von einer VDR-Mark in einen PTS-Zeitstempel und zurück soll dieses Projekt implementieren. Der Austausch der ptsmarks kann dann bequem via Webserver von xpix geschehen.
Technische Details (ohne Gewähr!)
Bei den Encodern der Fernsehsender, die einen Film in einen MPEG2 Datenstrom codieren, läuft eine Uhr. Die Uhr zeigt die Zeit aber nicht in Sekunden oder Minuten an, sondern in 1/90000 Sekunden. Die springt auch nicht jeden Tag um Mitternacht um, sondern wenn 33 Bits voll sind (33 Bits, ich könnte ja immer noch in den Teppich beissen .....). Mit anderen Worten läuft die Uhr von
0 - 8589934592, oder umgerechnet von
0 - 95443.7176888889 Sekunden oder noch besser von
0 - 1 Tag, 2 h, 30 min und 43.7176888888889 Sekunden.
Diese Uhr wird benutzt, um den ausgestrahlten Audio- und Video-Schnippseln einen Zeitstempel aufzudrücken, der sich auf diese Uhr bezieht; das ist der berühmte PTS, der von meinen Skript extrahiert wird. Das machen die Sender, damit der Player (also die DVB-Karte) die Unterschiede zwischen Audio und Video berechnen, und die Spuren synchronisieren können. Dabei spielt es ja keine Rolle, wie "spät" es ist. Man braucht einfach eine gemeinsame Skala mit ausreichend hoher Auflösung. So kann man einfach trotz evt fehlendem Material (Signalstörungen) die Sync sicherstellen.
Mein Skript beruht auf der Annahme: Wenn alle das gleiche digitale Signal empfangen, dann beziehen sich die Audio und Video Daten auch auf dieselbe Uhr.
Deshalb ist der PTS in der Aufnahme ein "portables" Schnittmarkenformat. Wenn aber der Sender 2 digitale Senderstationen betreibt, in denen jeweils eine unabhängige Uhr läuft, und 2 verschiedene Signale rauschiebt (jede Sendestation was anderes), dann unterscheiden sich die Zeitstempel. Das wollen wir testen und berücksichtigen.