Die Funktion hat mir aber nicht gefallen, da sie aus Sicht vom VDR eine neue Aufnahme erzeugt. Das finde ich dann in der Live Oberfläche unübersichtlich. Außerdem versuche ich damit noch ein weiteres Problem von mir zu lösen: Auf manchen TVs (z.B. bei Panasonic, Samsung hat das Problem nicht) ist die AC3 Spur viel leiser als die MPEG2 Spur. Das kann ich dabei auch gleich ausgleichen.
[markad] überarbeiteter Decoder
-
-
Mal eine unverschämte Frage: Mag jemand derjenigen, die das können, ein deb-Paket für raspbian (buster) bauen?
-
Oder alternativ ganz woanders hosten und Logos weglassen. Irgendwo finden die sich sicher als Archiv und können vom Benutzer oder Distributor an die richtige Stelle gelegt werden.
Hallo,
das Thema git habe ich nicht aus dem Auge verloren. Den Vorschlag von M-Reimer finde ich gut. Die Umsetzung hat ein wenig gedauert, aber jetzt ist es soweit:
Ich hatte Kontakt zum Autor des Plugins und er hat meiner Bitte, eine Kopie erstellen zu dürfen und darauf weiter zu entwickeln, zugestimmt. Er hat sogar in Aussicht gestellt, wenn er Zeit dazu hat, meine Änderung zurück in sein Git zu spielen. Thx Joe_D
Hier ist das Git zu finden: kfb77 mirror von vdr-plugin-markad
Es basiert auf dem Code von hier vdr-plugin-markad , enthält alle meine Versionen seit 1.0.0, beinhaltet aber keine Logos. Bitte diese selbst manuell hinzufügen.
Master hat eine neue Version 1.0.3 (die Versionen haben einen Punkt mehr bekommen, um in die Logik des original Codes zu passen).
one more thing: ich baue gerade an einer neuen Version, die optional ohne Logos auskommen wird. Ich versuche die notwendigen Infos direkt aus der Aufnahme zu erkennen. Das würde auch das Problem der Sonderfälle und von Änderungen lösen. Bei Tests hatte ich auch schon den Fall entdeckt, das #wirbleibenzuhause als Logo erkannt wird, aber egal, damit hat es sogar auch funktioniert.
-
Sieht gut aus. Ich habe das gerade für vdr4arch mal hingebastelt.
https://github.com/VDR4Arch/vd…54b71ced6d85b29b512f74993
Für die Logos hole ich einfach eine alte Version und schiebe die von dort an die richtige Stelle.
Das vordefinierte Config-File passt jetzt sicher nicht mehr. Wenn jemand Lust hat da eines vorzubereiten, dann immer her damit. Ansonsten muss ich das irgendwann noch selber updaten.
Was die Logos angeht: Für vdr4arch schiebe ich das Verzeichnis von dem die gelesen werden schon ewig von "/var/lib/markad" nach "/usr/share/markad". Das ist meiner Meinung nach "richtiger". Eventuell siehst du das ja auch so und könntest das bei Gelegenheit umbauen.
-
Das vordefinierte Config-File passt jetzt sicher nicht mehr.
Was für ein Config-File meinst du? Eine Empfehlung für den Inhalt der markad.conf steht im README.
-
War es nicht so das einige deiner Anpassungen über neue Parameter aktiviert werden? Kann mich da aber auch täuschen. Das haben wir aktuell:
https://github.com/VDR4Arch/vd…vdr-markad/50-markad.conf
Was den Pfad zu den Logos angeht: Der passt unter /var/lib/markad nur wenn der VDR dort wirklich im Betrieb schreibt. Andernfalls dürfen die eigentlich nicht unter /var liegen.
-
Ja genau, darum diese Empfehlung:
[markad]
--astopoffs=0
--cDecoder
Der Pfad habe ich nicht verändert, der war schon immer so. Aber du hast Recht, markad schreibt da nie drauf. Ich befürchte aber, dass wenn ich das ändere, entsteht mehr Chaos als Nutzen.
-
Kann sein. Ich schiebe das für Arch auf jeden Fall schon immer an den "richtigen" Ort.
Ich gehe mal davon aus die alten Parameter "--bindir" und "--logocachedir" gehen nach wie vor?
Ich werde mal "logocachedir" auch ändern. Wenn ich da mein /usr/share/markad" reinbaue kann ich auf längere Sicht den Symlink raushauen.
-
Ich gehe mal davon aus die alten Parameter "--bindir" und "--logocachedir" gehen nach wie vor?
Ja klar, gehen weiterhin. --logocachedir nutze ich sogar gerade selbst um mit falschem Pfad absichtlich das Fehlen der Logos zu simulieren. --bindir habe ich nie angefasst, da hat mir schon immer der Default Wert gefallen.
-
In meinem Git gibt es zwei neue Versionen:
1. in master die v1.0.4 mit einigen kleinen Bug Fixes
2. im Branch V02 eine Beta Version mit neuen Funktionen:
--cut cut video based on marks and write it in the recording Directory
requires --cDecoder
there are no splits of the target file, make sure your filesystem can handle big files
--ac3reencode re-encode AC3 stream to fix low audio level of cutted video on same devices
requires --cDecoder and --cut
--autologo=<option> 0 = disable, only use logos from logo cache directory (default)1 = enable, find logo from recording and store it in the recording directory
memory usage optimized operation mode, but runs slow
2 = enable, find logo from recording and store it in the recording directory
speed optimized operation mode, but needs a lot of memonry, use it only > 1 GB memory
Von Interesse dürfte die Option autologo sein. Wer den Beta Code testen möchte:
git clone -b V02 https://github.com/kfb77/vdr-plugin-markad
Dann markad mit den Parametern
--cDecoder --loglevel=3 --astopoffs=0 --autologo=2 --logocachedir=/tmp
aufrufen.
Falls ein Logo in logocachedir gefunden wird, wir es auch wie bisher verwendet. Darum logocachedir für Tests bewusst auf einen falschen Pfad setzen und somit markad zwingen, selber ein Logo zu ermitteln. Das Logo wird dann im Aufnahmeverzeichnis gespeichert.
Das Logo selbst zu ermitteln ist sehr CPU und Speicher aufwendig, also nicht mit zu schwachen Systeme testen.
Auf meinem i3 braucht es ca. 30s, auf dem RaspPi1 eine Stunde.
-
das mit der cut Option hab ich nicht verstanden
Zitat--cut cut video based on marks and write it in the recording Directory
requires --cDecoder
there are no splits of the target file, make sure your filesystem can handle big files
und was mach ich mit den alten Einträgen in der setup.conf, kann das erstmal so bleiben?
Code
Alles anzeigenmarkad.DeferredShutdown = 0 markad.Execution = 0 markad.GenIndex = 0 markad.HideMainMenuEntry = 0 markad.IgnoreMargins = 0 markad.Log2Rec = 0 markad.LogoOnly = 0 markad.OSDMessage = 0 markad.SaveInfo = 0 markad.SecondPass = 1 markad.Verbose = 0 markad.whileRecording = 1 markad.whileReplaying = 1
Christian
-
Die Einträge gehören in die /etc/vdr/conf.avail/markad.conf, also etwa so:
Code[markad] --astopoffs=0 --cDecoder --loglevel=3 --autologo=2 --cut --logocachedir=/var/lib/markad
Mit der Einstellung dauert markad aber etwas länger
Es bleibt die 00001.ts erhalten und auch die "marks" dazu, zusätzlich wir ein nach den Marks geschnittenes .ts-File mit dem Titel des Aufnahme-Verzeichnisses als Name erzeugt.
-
ah ok, dachte er erzeugt einfach ein Logo während er da eh gerade nach sucht.
hab aber auch mein Kämpfen das command line tool zu bauen, das VDR Plugin kompiliert problemlos...
-
Hallo Christian,
mit der --cut Option wird im Aufnahmeverzeichnis eine .ts Datei erstellt, die entsprechend den vorher ermittelten Marken geschnitten wurde. Das kann auch der VDR selbst, er erzeugt damit aber ein neues Aufnahmeverzeichnis. Die Option macht nur Sinn für jemand, der die Aufnahmen nicht über den VDR, sondern über das shared Aufnahmeverzeichnis (z.B. über DLNA direkt auf dem Smart TV) anschaut. Das ist damit wohl eher ein persönlich genutztes feature.
Die setup.conf kannst du so lassen, ich würde aber eine folgende zusätzliche markad.conf (da wo dein VDR die hat, normalterweise /etc/vdr/conf.d) empfehlen (diese Parameter gehen nicht über die Oberfläche):
[markad]
--astopoffs=0
--cDecoder
-
wmautner , danke, git erklärt, dann hätte ich mir meinen Post sparen können
CKone mit --autolog=2 (oder=1) sucht markad selbst nach dem Logo in der Aufnahme und speichert es im Aufnahmeverzeichnis, aber nur, wenn er in --logocachedir (Default /var/lib/markad) keines findet.
Unter Ubunti 18.04 sollte es problemlos bauen, das ist meine Entwicklungsplattform. Hast du libavcodec-dev und libavformat-dev vorher installiert ?
Es gibt außerdem eine neue Version 2.0.1 auf dem git.
-
prima, dann hab ich das ja doch richtig verstanden und kann ihn ein Logo suchen lassen und das anschließend ins logocachedir kopieren
bin auf den Clients auf bionic aber auf dem Aufnahmeserver leider immer noch auf xenial. Mit einem make im stammverzeichnis baut er bei 1.05 wie auch bei 2.0.1 nur das vdr Plugin und übergeht das command line tool. Geb ich ihm dann noch mal ein make im command Verzeichnis hinterher kommt bei beiden Versionen:
Code
Alles anzeigenmarkad-standalone.cpp: In member function ‘void cMarkAdStandalone::CheckStop()’: markad-standalone.cpp:380:34: error: in C++98 ‘mark’ must be initialized by constructor, not by ‘{...}’ MarkAdMark mark={}; ^ markad-standalone.cpp:394:30: error: in C++98 ‘mark’ must be initialized by constructor, not by ‘{...}’ MarkAdMark mark={}; ^ markad-standalone.cpp: In member function ‘void cMarkAdStandalone::CheckStart()’: markad-standalone.cpp:500:38: error: in C++98 ‘mark’ must be initialized by constructor, not by ‘{...}’ MarkAdMark mark={}; ^ markad-standalone.cpp:680:41: error: in C++98 ‘mark’ must be initialized by constructor, not by ‘{...}’ MarkAdMark mark={}; ^ markad-standalone.cpp:751:26: error: in C++98 ‘mark’ must be initialized by constructor, not by ‘{...}’ MarkAdMark mark={}; ^ markad-standalone.cpp: In constructor ‘cMarkAdStandalone::cMarkAdStandalone(const char*, const MarkAdConfig*)’: markad-standalone.cpp:2868:16: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 macontext={}; ^ markad-standalone.cpp:2868:14: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 macontext={}; ^ markad-standalone.cpp: In function ‘int main(int, char**)’: markad-standalone.cpp:3311:27: error: in C++98 ‘config’ must be initialized by constructor, not by ‘{...}’ struct config config={}; ^ Makefile:59: die Regel für Ziel „markad-standalone.o“ scheiterte make: *** [markad-standalone.o] Fehler 1
mag auch am älteren compiler liegen, libavcodec-dev und libavformat-dev sind natürlich drin. - mit dem originalen source aus yavdr baut es natürlichChristian
-
ja, vermutlich Compiler Version. Um das Problem nachzustellen, muss ich erst mal ein Ubuntu 16.04 installieren.
quick and dirty: Führe g++ -dumpversion | cut -d"." -f1 aus und trage das Ergebnis in command/Makefile in der Zeile ifeq ($(CXXVERION),4) statt der "4" ein.
-
ja, vermutlich Compiler Version. Um das Problem nachzustellen, muss ich erst mal ein Ubuntu 16.04 installieren.
quick and dirty: Führe g++ -dumpversion | cut -d"." -f1 aus und trage das Ergebnis in command/Makefile in der Zeile ifeq ($(CXXVERION),4) statt der "4" ein.
die 5 wäre es gewesen: beide command line binaries für 1.0.5 und 2.0.1 haben damit gebaut, vielen Dank!
ich probiere das dann mal aus!
-
die 5 wäre es gewesen: beide command line binaries für 1.0.5 und 2.0.1 haben damit gebaut, vielen Dank!
Ich hatte es schon fast vermutet …
Ich baue es für die nächste Version mit ein.
-
krasser scheiß: grad mal Tagesschau aufgenommen und er hat absolut perfekt markiert und auch sofort ein Logo extrahiert: "Das_Erste_HD-A16_9-P0.pgm"
Ich sammel die mal mal für die gängigsten Sender und werde damit dann /var/lib/markad aktualisieren, insbesondere bei RTL HD hat das ja nicht zufriedenstellend funktioniert die letzten Jahre...
Prima Arbeit!
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!