->

Schnittmarken Austausch

Navigation
Neuigkeiten
Teilnehmen
Download
Hintergrund-Infos

Neuigkeiten


07.10.2004
Hallo,
Nach einigen Tests die Version 0.1.4PRE2. Ich habe ein paar Bugs beim Erzeugen von lokalen Archiven gefixt.

Cheers
Peter
05.10.2004
Hallo,
Nach langer Funkstille endlich ein neues Release. Wegen Maengel in der Dokumentation nenne ich es 0.1.4PRE1 statt 0.1.4, aber ich empfehle DRINGEND, diese Version einzusetzen. Am besten sollte man vorher die Konfigurationdateien loeschen (/etc/marks2pts.conf und / oder ~/.marks2pts.conf).
Zu finden im Download Bereich.

Cheers
Peter
Zum Seitenanfang

Teilnehmen

Vorgehensweise:

Das eigentliche Programm ist ein Skript namens marks2pts, das man in seinen Pfad kopieren sollte. Zusätzlich sollte man einen Symlink darauf anlegen.

ln -s marks2pts pts2marks

Beim ersten Start erfragt das Skript einige Pfade, die müssen unbedingt korrekt angegeben werden

Ausserdem muss man das Perl-Modul LWP::Simple installieren.

Schliesslich sollte man folgende Option zu seinem VDR aufruf hinzufügen:

-r marks2pts

Also bei mir (c't Distri) zum Beispiel so (Änderung in /usr/sbin/runvdr):

VDRCMD="$VDRPRG -w 60 -L /usr/share/vdr/plugins -P* -t /dev/tty7 -r marks2pts $*"

Wie benutzt man das Skript:

Durch die -r Option wird zu Beginn einer Aufnahme vom VDR das Skript aufgerufen, mit den Parametern "before" und "/Pfad/Zur/Aufnahme". Das Skript extrahiert dann aus der timers.conf die channel-id, die Anfangs- und Endzeit und speichert das ganze in der Datei sharemarks.conf im Aufnahmeverzeichnis ab. Diese wird zum hoch- und runterladen der Schnittmarken benötigt.

Nachdem man Schnittmarken gesetzt hat, kann man diese konvertieren und auf den Server laden, indem man

marks2pts /Pfad/zur/Aufnahme/ -upload

eingibt. Um Schnittmarken herunterzuladen, ruft man

pts2marks /Pfad/zur/Aufnahme

auf. Wenn marks auf dem Server vorhanden sind, dann werden diese automatisch heruntergeladen und in eine marks.vdr übersetzt. Sollte schon eine Datei ptsmarks.vdr im Aufnahmeverzeichnis liegen, dann wird diese verwendet, und keine Verbindung zum Server aufgebaut. Also muss man die Datei von Hand löschen, wenn man frische Server-Daten will. Nach dem Lauf von pts2marks sollte man natürlich kontrollieren, ob die gefundenen marks i.O. sind.

Wenn man keine Lust hat, die automatische Variante zu nutzen, dann erfragt das Skript den Sender (oder genauer, es zeigt die Channels.conf an und erfragt die Nummer des Channels). Aus der Eingabe des Users (channel-id), dem Verzeichnisnamen (Datum und Zeit) und der Modifikationszeit der index.vdr wird dann eine sharemarks.conf erzeugt.

Was nicht funktioniert:

  • Das Skript erzeugt NUR marks aus ptsmarks, wenn es einen 100% korrekten Zeitstempel gibt. Es gibt noch keinen "fuzzy-mode".
  • Es gibt Probleme mit dem AutoPID-Patch.



    Zum Seitenanfang


    Download

    Hier die aktuelle Version des Skripts: sharemarks-latest
    Zum Seitenanfang


    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.
    Zum Seitenanfang