Neu im CVS: verbessertes Spulen

  • Hallo,


    Nachdem jetzt die Zeitstempel in aufgenommenen Filmen für die Berechnung der Filmlänge verfügbar sind,
    habe ich das mal dazu verwendet, die Spulfunktion etwas zu verbessern:
    Für die Sprünge wird jetzt nicht mehr eine feste Bitrate angenommen, sondern anhand der Zeitstempel die durschnittliche Bitrate berechnet.
    Das ist zwar immer noch nicht perfekt, aber damit passt es wesentlich besser.
    Wenn man 1 Minute springt, dann wird auch wirklich eine Minute vorgespult (+/- ein paar Sekunden ;)).


    Das ganze funktioniert jetzt auch für normale MPEG-Dateien, wenn sie Zeitstempel haben.
    (Zumindest bei denen, die ich über mencoder am PC erstellt habe, sind immer Zeitstempel dabei)


    So wie ich das sehe, gibt es bei mp3-Dateien keine Zeitstempel, vielleicht hat von euch jemand eine Idee,
    wie man die Dauer eines Lieds zuverlässig ermitteln kann?


    Für die Entwickler:
    die cmdSkip-Message erwartet jetzt die Anzahl der Millisekunden, die gesprungen werden soll.



    dbluelle

  • Es ist noch ein kleiner Fehler in der timestampts.cpp drinnen.
    Die Variablen sec_duration und sec_currentpos sollten mit -1 initialisiert werden und nicht mit 0 (es wird in der servicedvb.cpp auf >= 0 verglichen). Es kann nämlich sein, dass in einer aufgenommenen Datei am Anfang keine Timestamps zu finden sind, am Ende aber schon. Dann kommt es zu gar keinen Anzeige der Filmdauer im OSD, und vor allem stürzt Enigma irgendwann mal ab... :winking_face:


    Grüße
    Dr. Best

  • Ich habe seit den Änderungen Probleme
    - wenn ich eine Timeshift-Aufnahme starte (das "neue" Dauertimeshift ist bei mir deaktiviert) oder
    - wenn ich in einer Aufnahme, bei der die Werbung mit ProjectX rausgeschnitten wurde, mit 1/3/4/6/7/9 "Springspulen" will.
    Bei beiden Fällen ist das Feld im OSD, in dem der "Timestamp" der Aufnahme angezeigt werden sollte, leer. Ein Bildsuchlauf vor oder zurück (8x/16x/64x) klappt jedoch.
    Die 1/3/4/6/7/9-Sprungzeiten scheinen *wesentlich* erhöht zu sein, will sagen, dass mit 3 nicht eine Minute, sondern vielleicht 10 Minuten nach vorne gesprungen wird.
    Den Dr. Best-Patch kann ich leider heute nicht anwenden, sonst killt mich meine Frau :winking_face:
    cu

  • Die Fehler sollten mit dem Patch behoben sein (also die fehlende Anzeige im OSD und das Sprungzeitenverhalten, was aus dem timestampts.cpp Bug resultiert), beim meinem Testvideo hatte ich genau die gleichen Symptome. :grinning_squinting_face:

    Einmal editiert, zuletzt von Dr.Best ()

  • Hi,


    die fehlende OSD-Anzeige ist in der Tat behoben, danke. Aber die Sprungzeiten klappen immer noch nicht so ganz: erst wenn ich bei einer Timeshift-Aufnahme bis zum Jetzt-Zeitpunkt vorspule, stimmen die Sprungzeiten (zumindest bei RTL), ansonsten springen 1 und 3 ca 7 Minuten. Ähnliches bei bearbeiteten Dateien: auch nach dem Patch betragen die 1 3 Sprungzeiten ca 7 Minuten anstelle von 1 Minute, getestet bei bei zwei Aufnahmen von Eurosport, bei denen mit ProjectX die Werbung rausgeschnitten wurde. Bei einer Aufnahme von Arte ist das genauso extrem, aber ich kann nicht ausschliessen, dass da ein Aufnahmefehler passiert ist. Vorher konnte man allerdings trotzdem in "gefühlten" Minutenschritten springen.
    Kann es sein, dass der neue Anfangs-Sprungwert, der genommen wird, wenn noch keine Berechnung stattgefunden hat, einfach nur zu hoch ist?
    cu

  • Sobald eine Aufnahme geschnitten wurde, werden ja auch die darin enthaltenen timestamp-Infos rausgeschnitten (ich glaube nicht, dass ProjectX neue timestamps schreibt). Damit ist in der Tat ein Problem da. Der Film ist kürzer als die Daten das anzeigen.


    Ich hab bei uns im Image die Funktion mit den Timestamps optional an/ausschaltbar gemacht, so dass jeder selber entscheiden kann, ob er das nutzen will oder nicht (da ich keine Videos schneide und so gut wie keine Problem-Aufnahmen habe ist es bei mir an! :winking_face: ).


    Eventuell sollte dbluelle im cvs diese Funktion auch optional machen. Timestamps sind ne unsichere Sache, manchmal fehlerhaft, und wenn geschnitten wird eh nicht mehr zu gebrauchen.


    Für meine beispielsweise ARD, oder ZDF Aufnahmen, die unbearbeitet auf der Platte liegen, funktioniert es in 99% der Fälle ohne Probleme.

    Einmal editiert, zuletzt von Dr.Best ()

  • Zitat

    Original von Dr.Best
    Sobald eine Aufnahme geschnitten wurde, werden ja auch die darin enthaltenen timestamp-Infos rausgeschnitten (ich glaube nicht, dass ProjectX neue timestamps schreibt). Damit ist in der Tat ein Problem da. Der Film ist kürzer als die Daten das anzeigen.


    Das verstehe ich halbwegs :winking_face: Aber selbst wenn 30% Werbung im Film waren, dürfte der 1-Minuten-Sprung ja auch nur ca. 30% länger werden und nicht 7 Minuten überspringen. Oder mache ich einen Denkfehler?

  • Zitat

    Original von Coronas


    Das verstehe ich halbwegs :winking_face: Aber selbst wenn 30% Werbung im Film waren, dürfte der 1-Minuten-Sprung ja auch nur ca. 30% länger werden und nicht 7 Minuten überspringen. Oder mache ich einen Denkfehler?


    Vermutlich hast du da über eine Schnittmarke gespult, da wird dann der nächste Zeitstempel als aktuelle Position genommen und der ist ja dann z.B. 5 Minuten weiter, wenn du 5 Minuten rausgeschnitten hast.


    Naja, das ganze ist jetzt abschaltbar (in den Experteneinstellungen).
    Zusätzlich gibt es auf Wunsch der DBox-Fraktion auch noch die Möglichkeit, bei der Aufnahme die AC3-Tonspur und den Teletext nicht mit aufzunehmen.


    dbluelle

  • Zitat

    Original von dbluelle
    Vermutlich hast du da über eine Schnittmarke gespult, da wird dann der nächste Zeitstempel als aktuelle Position genommen und der ist ja dann z.B. 5 Minuten weiter, wenn du 5 Minuten rausgeschnitten hast.


    Aber dann sollte es nicht passieren, wenn ich beim Wiedergabebeginn, noch bevor etwas geschnitten wurde, springspule?!?!
    Und es passiert ja auch, wenn ich im Live-Betrieb auf Pause drücke und eine Timeshift-Aufnahme starte - ich habe Dauertimeshift deaktiviert. Wenn ich nach 10-20 Minuten die Wiedergabe starte und auf "3" drücke, um ca. 1 Minute nach vorne zu springen, hüpft er gleich 6-7 Minuten vor. Es sei denn, ich spule vor bis zum Livebild. Dann stimmen die Sprünge.

    Zitat

    Original von dbluelle
    Naja, das ganze ist jetzt abschaltbar (in den Experteneinstellungen).
    dbluelle


    Auch wenn es deaktiviert ist, "springspult" der Empfänger jetzt in *wesentlich* grösseren Schritten als vorher... Komisch... Trotzdem Danke, dass du dich noch so sehr um die DM7k kümmerst, ich freue mich jedes Wochenende auf die eventuell kommenden enigma-cvs-logs :winking_face:
    cu

  • wenns dir mal langweilig wird, dann kannst du auch mal in unser merlin-cvs auf sourceforge reinschauen. da checken wir auch immer wieder sachen ein für e1.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Zitat

    Original von Coronas
    Auch wenn es deaktiviert ist, "springspult" der Empfänger jetzt in *wesentlich* grösseren Schritten als vorher... Komisch...


    War ein blöder Fehler von mir, ist jetzt korrgiert.
    (So langsam müsste ich eigentlich wissen, wie man korrekt zwischen MBit und MByte umrechnet :face_with_rolling_eyes: )


    dbluelle