Thanks: 0
Ergebnis 1 bis 5 von 5
-
23.12.2013, 16:19 #1
- 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
Box 1:Gigablue QuadBox 2:Gigablue QuadBox 3:Xtrend ET8000Hilfe 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
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)
-
Advertising
-
04.01.2014, 18:17 #2
- 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
ThemenstarterBox 1:Gigablue QuadBox 2:Gigablue QuadBox 3:Xtrend ET8000Ich 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?
-
04.01.2014, 18:29 #3
- Registriert seit
- 20.04.2013
- Beiträge
- 24.824
- Thanks (gegeben)
- 4679
- Thanks (bekommen)
- 9077
- Total Downloaded
- 596,61 MB
- Total Downloaded
- 596,61 MB
Box 1:GB Q4K-SC / UE4K-SC / UE4K-CBox 2:GigaBlue Q-SSC / Q+-SSCBox 3:DM900uhd-SS / Vu+DuoBox 4:ZGemma H7/H9 SF8008Box 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'] ...
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! ----
-
10.01.2014, 21:07 #4
- 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
ThemenstarterBox 1:Gigablue QuadBox 2:Gigablue QuadBox 3:Xtrend ET8000Danke 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)
-
22.04.2014, 21:02 #5
- 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
ThemenstarterBox 1:Gigablue QuadBox 2:Gigablue QuadBox 3:Xtrend ET8000Ach ja, das Plugin lebt: http://www.opena.tv/forum/showthread...%28und-mehr%29
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)
Lesezeichen