Thanks Thanks:  0
Ergebnis 1 bis 5 von 5
  1. #1
    Avatar von Fischreiher
    Registriert seit
    22.12.2013
    Ort
    an der Havel
    Beiträge
    1.349
    Thanks (gegeben)
    436
    Thanks (bekommen)
    787
    Total Downloaded
    40,84 MB
    Total Downloaded
    40,84 MB
    ReceiverDanke
    Box 1:
    Gigablue Quad
     
     
    Box 2:
    Gigablue Quad
     
     
    Box 3:
    Xtrend ET8000
     
     

    Hilfe bei der Entwicklung eines Plugins zum schnellen Überspringen von Werbung

    Beim Topfield gab es ein geniales Plugin zum schnellen Überspringen von Werbung, das nach dem Prinzip der binären Suche funktionierte. Gesprungen wurde mit zwei Tasten vor und zurück, wobei sich der Sprungabstand bei jedem Richtungswechsel halbierte, z.B. bei einer Werbepause von 7:41:

    Code:
    ">"  springt +2:00  zu +2:00
    ">"  springt +2:00  zu +4:00
    ">"  springt +2:00  zu +6:00
    ">"  springt +2:00  zu +8:00 - oops, zu weit ...
    "<"  springt -1:00  zu +7:00 zurück
    ">"  springt +0:30  zu +7:30
    ">"  springt +0:15  zu +7:45 - zu weit ..
    "<"  springt -0:08  zu +7:37 zurück
    ">"  springt +0:04  zu +7:41 - Treffer
    Aufgrund eines Patents auf diesen Algorithmus (http://www.topfield-europe.com/forum...58&postcount=9) würde ich nie auf die Idee kommen, so etwas zu schreiben oder zu veröffentlichen. Wenn aber für den initialen Sprungwert und für die Sprungwerte nach dem Richtungswechseln beliebige Zeiten einstellbar sind, kann ich ja nichts dafür, wenn ein User mit genug krimineller Energie dort 2:00, 1:00, 0:30, 0:15, 0:08 und 0:04 einstellt.


    Da ich nicht genug Erfahrung habe, um ein Plugin "von null" aus zu schreiben, wollte ich mich in das MultiQuickButton 'reinhängen, das die Zuordnung von Funktionen zu Tasten elegant verwaltet. In der XML-Datei "mqbfunctions.xml" sind hier diverse Funktionen beschrieben.

    Nachdem ich vorgestern noch keine Ahnung von Python hatte, habe ich es tatsächlich geschafft, den Algorithmus mit Sprüngen und Timeout zu implementieren und in MultiQuickButton zu integrieren. Der Timeout sorgt dafür, dass, nachdem die richtige Stelle gefunden wurde, der nächste Suchvorgang wieder mit dem initialen Sprungwert beginnt.

    Jetzt fehlt mir noch die Anzeige der Zeit, um die im aktuellen Suchvorgang gesprungen wurde (Werbung überspringen macht doppelt Spaß, wenn man dabei sieht, wie viel man übersprungen hat.) Diese Zeit würde ich gerne in die obere Infoleiste mit einblenden, in der z.B. beim Timeshift schon der Wert steht, um den der Timeshift gerade versetzt läuft.

    Weiß jemand, wie man zur oberen Infoleiste eine zusätzliche Information hinzufügen kann?
    Oder kann man über eine randlose Infobox die Zeitangabe einfach drüberkleben?


    Außerdem möchte ich das Plugin um manuelle Lesezeichen erweitern. Bisher gibt es ja nur die Stopmarke, die automatisch gesetzt wird (ich glaube über die .cuts-Datei ?) und beim Fortsetzen der Wiedergabe an der alten Stelle automatisch gelöscht wird (oder beim nächsten Stopp überschrieben wird, was aufs gleiche rauskommt).

    Manuelle Lesezeichen hingegen (die manuell gesetzt, manuell angesprungen, und manuell gelöscht werden können) sind hilfreich, um Stellen im Film permanent zu markieren, z.B. die lustigsten Szenen. Hier suche ich noch ein gutes Konzept. Sollte man diese ebenfalls in die .cuts-Datei schreiben, weil es artverwandte Informationen sind, oder solgt man damit für jede Menge Inkompatibilität und sollte die manuellen Lesezeichen lieber getrennt verwalten?

    Auch könnte man die oben beschriebene Funktion zum Überspringen von Werbung optional zur automatischen Erstellung von Schnittmarken verwenden. Dazu müsste ich wissen, wie die .cuts-Datei aufgebaut ist und wie darauf zugegriffen wird. Wie gesagt, ich suche noch ein Konzept, und ich bin für jede Anregung dankbar.

    EDIT: EMC bietet genau diese permanenten Lesezeichen - auch für Videos, die keine .ts-Dateien sind.
    Geändert von Fischreiher (14.03.2014 um 20:28 Uhr)

    •   Alt Advertising

       

  2. #2
    Avatar von Fischreiher
    Registriert seit
    22.12.2013
    Ort
    an der Havel
    Beiträge
    1.349
    Thanks (gegeben)
    436
    Thanks (bekommen)
    787
    Themenstarter
    Total Downloaded
    40,84 MB
    Total Downloaded
    40,84 MB
    ReceiverDanke
    Box 1:
    Gigablue Quad
     
     
    Box 2:
    Gigablue Quad
     
     
    Box 3:
    Xtrend ET8000
     
     
    Ich habe jetzt einfach meine eigene Infoleiste als Screen definiert und in der eingebetteten Skin die Informationen aus "TimeshiftState" mit meinen Informationen kombiniert.

    Meine Sprungfunktionen funktionieren schon ganz gut im Timeshift-Buffer. Ich habe mich dabei in die "InfoBarPlugins.__init__" reingehängt, um die Tasten abzufragen, und benutze zum Springen "InfoBarSeek.doSeekRelative(InfoBar.instance, pts)".

    Nun sollen die Sprünge aber auch bei der Wiedergabe einer zuvor aufgezeichneten Sendung funktionieren. Ich befürchte, dass ich im Player mit den InfoBar-Funktionen nicht weiterkomme, da diese nur für Live-TV und Timeshift gelten.

    Liege ich da richtig? Und kann mir jemand ein Plugin empfehlen, in dem ich mir entsprechende Funktionen für Tastenabfrage und Sprünge im Wiedergabemodus angucken kann?

  3. #3
    Avatar von Papi2000
    Registriert seit
    20.04.2013
    Beiträge
    24.820
    Thanks (gegeben)
    4679
    Thanks (bekommen)
    9076
    Total Downloaded
    596,61 MB
    Total Downloaded
    596,61 MB
    ReceiverDanke
    Box 1:
    GB Q4K-SC / UE4K-SC / UE4K-C
     
     
    Box 2:
    GigaBlue Q-SSC / Q+-SSC
     
     
    Box 3:
    DM900uhd-SS / Vu+Duo
     
     
    Box 4:
    ZGemma H7/H9 SF8008
     
     
    Box 5:
    diverse andere . . .
     
     
    Du kannst das Debuglog (Menü-Einstellungen-System-Erweiterte Einstellungen-Crashlog Einstellungen) aktivieren, dann kannst du unter /home/root/logs die Logs finden. Dort werden auch Tastendrücke protokolliert:
    Code:
    ...
    action ->  OkCancelActions cancel
    [SCREENNAME]  MenuSummary
    [SCREENNAME]  ['menu_setup', 'Menu']
    0 ae 1
    KEY: 174 EXIT
    1 ae 1
    KEY: 174 EXIT
    action ->  OkCancelActions cancel
    [SCREENNAME]  MenuSummary
    [SCREENNAME]  ['menu_mainmenu', 'Menu']
    ...
    Ich greife auf meine Boxen unter anderem per WinSCP zu, und habe dort Notepad++ eingebunden. Dann muß man quasi nur das aktuelle ein paarmal neu laden. Am Ende sind dann die Actions drin...
    Grüßle
    Ralf
    ---------------------------------------------
    Gigablue Quad4K-mixed, UE4K, Trio4K, Quad_Plus-SSC, UE_Plus-SC, X2/X3-SC, UltraUE-SC, ...
    Astra 19.2E UniCable & KabelBW, oATV/teamBlue
    (u.a.: DM900uhd,Vu+Duo,ZGemma H9Twin & H7S), PC-DVB-S/C/T, Xtreamer, BDP5200, Philips 24PFS4022/12, 65OLED855/12,UE32C5700, RPi3+
    ---- Einen Receiver kann sich jeder kaufen - Eine stabile E²-Box muß man sich verdienen! ----



  4. #4
    Avatar von Fischreiher
    Registriert seit
    22.12.2013
    Ort
    an der Havel
    Beiträge
    1.349
    Thanks (gegeben)
    436
    Thanks (bekommen)
    787
    Themenstarter
    Total Downloaded
    40,84 MB
    Total Downloaded
    40,84 MB
    ReceiverDanke
    Box 1:
    Gigablue Quad
     
     
    Box 2:
    Gigablue Quad
     
     
    Box 3:
    Xtrend ET8000
     
     
    Danke für den Tipp. Ich habe inzwischen festgestellt, dass "InfoBarSeek.doSeekRelative(InfoBar.instance, pts)" durchaus auch im Player funktioniert, und die Tastendrücke der unterschiedlichen Screens kann man in der "InfoBarPlugins.__init__" getrennt behandeln, so geht's:

    Code:
    def InfoBarPlugins__init__(self):
        from Screens.InfoBarGenerics import InfoBarEPG
        if isinstance(self, InfoBarEPG):
            x = {'action_1': (self.action_1, _('action_1'))}
            self['MyActions'] = HelpableActionMap(self, 'MyActions', x)
        elif isinstance(self, InfoBarShowMovies):
            x = {'action_2': (self.action_2, _('action_2'))}
            self['MyMoviePlayerActions'] = HelpableActionMap(self, 'MyMoviePlayerActions', x)        
        else:
            InfoBarPlugins.__init__ = InfoBarPlugins.__init__
            InfoBarPlugins.action_1 = None
            InfoBarPlugins.action_2 = None
        baseInfoBarPlugins__init__(self)

  5. #5
    Avatar von Fischreiher
    Registriert seit
    22.12.2013
    Ort
    an der Havel
    Beiträge
    1.349
    Thanks (gegeben)
    436
    Thanks (bekommen)
    787
    Themenstarter
    Total Downloaded
    40,84 MB
    Total Downloaded
    40,84 MB
    ReceiverDanke
    Box 1:
    Gigablue Quad
     
     
    Box 2:
    Gigablue Quad
     
     
    Box 3:
    Xtrend ET8000
     
     
    SpecialJump: Plugin zum schnellen manuellen Überspringen von Werbung (und mehr)
    http://www.opena.tv/plugins/6240-spe...-und-mehr.html
    Feature der Woche:
    * Fast Zap Mode (beschleunigte Umschaltzeiten durch vorausschauendes Vorladen des nächsten Senders auf einem weiteren Tuner)


Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 Uhr.
Powered by vBulletin® Version 4.2.5 (Deutsch)
Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.
Resources saved on this page: MySQL 6,25%
Parts of this site powered by vBulletin Mods & Addons from DragonByte Technologies Ltd. (Details)
vBulletin Skin By: PurevB.com