Gedankenexperiment: Schnittlisten-Austausch

  • Hi,


    habe jetzt mal lieblos etwas von Anfang und Ende weggeschnitten und das Ergebnis nochmal an 19:59:50 und 20:00:00 geschnitten, und das sieht auch nicht gut aus:


    4806377472
    4807426048


    Vermutlich werden beim Schneiden allerdings neue PTS-Hoenze geschrieben, oder ?


    cu
    gonz

  • Hi,


    ich hab mal ein kleines (und superhaessliches) Script gebaut, mit dem es moeglich sein sollte fuer saemtliche vorhandenen Aufnahmen in einem gegebenen Verzeichnis mittels dem share_marks.pl von Doc eine Datei ptsmarks.vdr fuer jede Aufnahme anzulegen.


    Die Original-Dateien/Verzeichnisse werden nicht angefasst. Stattdessen wird mit Kopien (von den entsprechenden index.vdr und marks.vdr) gearbeitet.


    Als Bonus gibt es ein nicht-konformes haessliches HTML-File, welches die Aufnahmen nach Datum sortiert listet und pro Aufnahme die marks.vdr und die ptsmarks.vdr verlinkt. Als Resultat gibt es also einen Tree den man direkt auf nen Webserver schieben koennte.


    Vorgehen:


    - Das tar.gz File auspacken.
    - $VIDEODIR, $SHAREMARKS und $WEBDIR am Anfang des genptsmarks.pl auf sinnvolle Werte setzen.
    - ./genptsmarks.pl aufrufen
    - Danach liegt (mit etwas Glueck) unterhalb von $WEBDIR eine index.html samt passenden *.vdr-Dateien.


    Alles ohne Gewaehr und Pistole und wirklich nur als Anregung gedacht.


    <OFFTOPIC>Interessanterweise habe ich auf dem Weg gelernt, dass noad manchmal nicht direkt an IFrames zu schneiden scheint und daher share_marks aus dem Tritt kommt. (Jetzt weiss ich also auch, warum VDR manchmal beim Huepfen auf eine noad Sprungmarke crasht.)</OFFTOPIC>



    cu
    gonz


    P.S.: Sollten man den Thread vom Forum nach "Developer -> C / C++ / Scripten" verschieben ?

  • Zitat

    Original von gonz
    habe jetzt mal lieblos etwas von Anfang und Ende weggeschnitten und das Ergebnis nochmal an 19:59:50 und 20:00:00 geschnitten, und das sieht auch nicht gut aus:


    4806377472
    4807426048


    Vermutlich werden beim Schneiden allerdings neue PTS-Hoenze geschrieben, oder ?


    Hi,


    da muss ich wohl doch noch einen Bug drin haben, den es werden KEINE neuen PTS-Timestamps beim Schneiden geschrieben. Das Schneiden ist wirklich ein reiner Kopiervorgang von File1:offset bis FileN:offset. Also finde ich evt die GOPs nicht richtig, oder ich extrahiere falsche PTS, oder sontwas.... War vielleicht doch etwas zu schnell, das ganze :(. Ich werde es mal weiter testen und hier die Ergebnisse posten


    Aber um nochmals ganz sicher zu sein: die Werte, die oben stehen, sind marks auf 19:59:50 und 20:00:00, die Du nach dem Schneiden NEU gesetzt hast, oder?


    Cheers


    Peter / doc

    Mitstreiter für VDRsync gesucht!
    Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

  • Hi,


    ich habe es gerade nochmals bei mir versucht, und es klappt...


    Also nochmals ganz genau:


    Wenn man eine Aufnahme hat, und dort 2 eindeutig zu erkennende Stellen mit Schnittmarken versieht, dann kann man aus der marks.vdr eine ptsmarks.vdr errechnen.


    Schneidet man nun die Original-Aufnahme (nicht mit der makrs.vdr von oben, sondern man schneidet einfach etwas vorne und hinten weg), dann muss man bei der geschnittenen Aufnahme die marks von oben NEU definieren. Also öffnet man die geschnittene Aufnahme, sucht die eindeutig zu erkennenden Stellen, und setzt wiederum Schnittmarken. Die NEUE marks.vdr von der GESCHNITTENEN Aufnahme kann man dann wieder in eine ptsmarks.vdr umwandeln. Wenn man exakt dieselben Stellen markrierte hatte, sollten auch die beiden ptsmarks.vdr Dateien exakt gleich sein...


    Hier Beispiele:


    Original marks.vdr:
    0:00:16.20
    0:00:32.14
    Dazugehörige ptsmarks.vdr
    802258944
    803700736


    Dann Schnitt der Aufnahme und neu-Definition der marks.vdr:
    0:00:06.06
    0:00:22.00
    Dazugehörige ptsmarks.vdr:
    802258944
    803700736



    Wie man sehen kann, haben sich die marks um ca 10 Sekunden verschoben (ich habe was abgeschnitten), aber die ptsmarks sind identisch. So muss es sein ;)


    Cheers


    Peter / doc

    Mitstreiter für VDRsync gesucht!
    Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

  • ich hatte folgende idee schon mal in einem anderen threat gepostet, scheint aber keiner weiter gelesen zu haben:


    VDR:: Epox 4G4A+,Nexus 2.2,Nova, Cel 2.0 GHz,160 GB Samsung
    Client: Hermes 645 GV, DXR3,Celeron 2GHz
    Fileserver: Nexus 2.1, P4 2.4 GHz, 4x400 GB Samsung RAID 5, 1x320 GB

  • Zitat

    Original von xpix
    @ Doc, ok wollen wir heute abend noch einen neuen Versuch wagen? Ich würde wieder mal die TS vorschlagen? :]


    Auf jeden Fall, es sollten aber möglichst viele Leute mitmachen, sonst bringt es nicht soviel. Schliesslich wollen wir ja den Einfluss von Hardware/Software und Signalquelle festellen, und wenn jeder eine andere Signaquelle hat, dann macht es keinen Sinn...


    @ Raven


    Ich befürchte der Programmieraufwand wäre um einiges grösser, wenn Du automatisch Videotext auswerten willst.... Und dann noch die benachbarte GOP suchen, evt liegst Du dann doch daneben. Wenn die Annahmen stimmt, das
    -Leute mit der gleichen Hardware/Software/Signalquelle auch dieselben Datenströme empfangen können,
    dann sollte der jetztige Ansatz zumindest innerhalb dieser Gruppe einen problemlosen und 100% akkuraten Austauch ermöglichen. Selbst bei Empfangs-Störungen (auch wenn das noch nicht drin ist, kann man das schnell einbauen).


    @ gonz

    Zitat


    <OFFTOPIC>Interessanterweise habe ich auf dem Weg gelernt, dass noad manchmal nicht direkt an IFrames zu schneiden scheint und daher share_marks aus dem Tritt kommt. (Jetzt weiss ich also auch, warum VDR manchmal beim Huepfen auf eine noad Sprungmarke crasht.)</OFFTOPIC>


    Bei meinen ersten Versuchen mit Schnitmarken habe ich mich auch öfter verrannt, das Format ist einfach komisch:
    h:m:s.frames
    Ich habe erst die den Frames Teil als Sekundenbruchteile interpretiert, und meistens klappt das dann trotzdem (keine Ahnung warum, ich glaube, solange Frames < 25 ist...). Seit ich die marks aber so berechne wie oben (habe ich aus dem stdoutcutter, glaube ich), nimmt der VDR sie anstandslos, sie sind identisch zu welchen, die ich im VDR selber setzte, und die geschnittenen Filme haben dieselben md5sums, egal, ob das Skript oder VDR die marks setzt und schneidet.


    Cheers


    Peter / doc

    Mitstreiter für VDRsync gesucht!
    Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

  • Zitat

    Original von Doc


    Auf jeden Fall, es sollten aber möglichst viele Leute mitmachen, sonst bringt es nicht soviel. Schliesslich wollen wir ja den Einfluss von Hardware/Software und Signalquelle festellen, und wenn jeder eine andere Signaquelle hat, dann macht es keinen Sinn...


    Gut ich werde mal die Mods hier fragen ob wir in die News kommen, du solltest vielleicht nochmal Step by Step die Schritte aufschreiben, die man machen muss um auf ein Ergebniss zu kommen, das du dann auswerten kannst.

  • Zitat

    Gut ich werde mal die Mods hier fragen ob wir in die News kommen, du solltest vielleicht nochmal Step by Step die Schritte aufschreiben, die man machen muss um auf ein Ergebniss zu kommen, das du dann auswerten kannst.


    Hi,


    Ok, mach ich ;)


    Der Thread hier ist ja auch langsam ein wenig unübersichtlich...


    Cheers


    Peter / doc

    Mitstreiter für VDRsync gesucht!
    Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

  • Doc
    Du könntest ja kleine screenshots mit den marks posten damit alle wirklich wissen wo sie in ihren Aufnahmen die marks setzen müssen. Dann kann man die Werte auch vergleichen.


    Kann man nicht die marks durch eine Art Fingerabdruck verifizieren ?
    Ich stelle mir das so vor. Wenn die Aufnahme so aussieht (marks = |, erstmal wegdenken)


    sw1w1w1w1w1|d1d1d1d1d1|w2w2w2w2w2|d2d2d2d2d2|w3w3e


    und wenn w1d1 bis d2e bei allen gleich ist und nur bei ..sw1 und w3e.. Unterschiede bestehen, dann könnte man doch aus w1|d1, d1|w2, w2|d2 und d2|w3 eine Art Fingerabdruck generieren (z.B. md5 über 5 sec vor und nach der Schnittmarke). Damit könnte man überprüfen ob die scripte richtig arbeiten und die neue_marks.vdr wäre hardware unabhängig. Oder habe ich das alles falsch verstanden?


    /Martin

  • Zitat

    Original von martini2
    Doc
    Du könntest ja kleine screenshots mit den marks posten damit alle wirklich wissen wo sie in ihren Aufnahmen die marks setzen müssen. Dann kann man die Werte auch vergleichen.


    Mach ich, wenn ich wieder zu Hause bin.

    Zitat


    Kann man nicht die marks durch eine Art Fingerabdruck verifizieren ?
    Ich stelle mir das so vor. Wenn die Aufnahme so aussieht (marks = |, erstmal wegdenken)


    sw1w1w1w1w1|d1d1d1d1d1|w2w2w2w2w2|d2d2d2d2d2|w3w3e


    und wenn w1d1 bis d2e bei allen gleich ist und nur bei ..sw1 und w3e.. Unterschiede bestehen, dann könnte man doch aus w1|d1, d1|w2, w2|d2 und d2|w3 eine Art Fingerabdruck generieren (z.B. md5 über 5 sec vor und nach der Schnittmarke). Damit könnte man überprüfen ob die scripte richtig arbeiten und die neue_marks.vdr wäre hardware unabhängig. Oder habe ich das alles falsch verstanden?


    Weiss ich nicht, weil ich nicht sicher bin, ob ich Dich richtig verstanden habe ;););)


    Was ich verstanden habe:


    sw1 soll Start und Werbung 1 heissen, richtig?
    d1 soll dilm1 heissen, ähhhh, Film 1 oder so
    w2 ist Werbung 2
    d2 etc....
    w3e ist Werbung 3 und Ende.


    Man kann natürlich über die Schnittmarke hinweg aus ein paar GOPs links und rechts davon md5sums berechnen. Muss man aber neu Programmieren, und das sagt uns auch nicht mehr, als die ptsmarks.vdr jetzt schon: Sind die Aufnahmen identisch was die Videodaten angeht?


    Das Hardwareproblem hast Du ebenfalls nicht gelöst, weil es mehr darum geht, dass evt Budget Karten den eingehenden Datenstrom anders filtern als die Karten mit Decoder. Dann würde wirklich beim selbem Eingangssignal was anderes auf der Platte stehen. Da sind die md5sums dann auch verschieden. Da kenn ich mich aber nicht aus.


    Grundsätzlich muss ich auch mit Deiner Skizze die mark einer ganz bestimmten Stelle im Film zuordnen, und dann ein eindeutiges Merkmal aus dem Film extrahieren, also beim bisherigen Ansatz einen PTS, mit Deinem Vorschlag eine md5sum.


    Wenn das Material identisch ist, dann sind die extrahierten Merkmale identisch, egal, was es ist. Wenn das Material sich unterscheidet, dann gehen wir direkt zurück auf Start :(


    Ist das Material identisch, kann man sofort wieder aus der PTS eine mark errechnen bzw die Stelle im Film suchen und die mark berechnen. Hat man md5sums, dann muss man gleitende md5sums berechnen, damit die Stelle finden und die mark berechnen. Das ist aufwändiger.


    Aber wie schon gesagt, hier im Thread ging es munter hin und her, mit ein paar Missverständnissen und noch offenen Fragen. Deshalb ist ein frischer Start ohne Zweideutigkeiten wohl das beste.


    xpix
    Hast Du schon was zum Thema News herausbekommen? Sonst können wir ja einfach einen neuen Thread mit der Anleitung in einem andern Forum als News starten ;)


    Cheers


    Peter / doc

    Mitstreiter für VDRsync gesucht!
    Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

  • Zitat

    Original von ycat
    rofl, in weniger als 2 tagen zum feldtest :] . Hut ab :D


    :D :D :D


    Scheint ganz gut zu klappen


    Cheers


    Peter / doc

    Mitstreiter für VDRsync gesucht!
    Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

  • geht's hier weiter?

    -----------------------------------------------------------------------
    :vdr1
    HW: SNI-PCD-PRO-D7, PII-350, FSC-DVB-S Rev. 1.6
    SW: SuSE 8.1, vdr-1.2.2, lirc-0.6.6
    :newbie

    Einmal editiert, zuletzt von matejek ()

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!