[markad] überarbeiteter Decoder

  • Hat jemand Interesse, die command line Version von markad als mingw64 (Windows) Binary zu bauen?

  • Hat jemand Interesse, die command line Version von markad als mingw64 (Windows) Binary zu bauen?

    markad braucht einige ffmpeg Libs, ob sich die unter Windows bauen lassen ???


    Edit:

    Scheint möglich zu sein: Anleitung

    VDR

    The post was edited 2 times, last by kfb77 ().

  • Die Libs gibt es alle in mingw64. Und ja - die Liste der nötigen DLLs (libs) ist lang.


    Kompilieren und Linken klappt ja mittlerweile mit einem extra Makefile.mingw64, einer extra README.mingw64, so einigen #ifdefs und einem subfolder win32 in command.


    Es ist eher die Frage nach OS-abhängigen Benutzer-Pfaden für icons (wohin), Schreibrechten etc. und ob das außer mir irgendwann jmd braucht.

    Und klar ist auch, dass nicht alles von Posix zu Win32 portiert werden kann: kein background, nice, chown, ..


    Aber könnte man ne minimale GUI drüber stülpen und damit einige per samba/NFS gemountete Verzeichnisse im Loop abarbeiten lassen.

    Mein win Rechner hat meist weniger zu tun. :)


    Ich überlege, ob überhaupt/was man daraus macht - der Weg bis zu einem funktionierenden Binary wäre jetzt nicht mehr so sehr weit.

    Nur sehe ich auch, dass ein separater Fork absolut doof wäre. Nie aktuell, immer von Hand die letzten Änderungen nachziehen.

  • Aber könnte man ne minimale GUI drüber stülpen und damit einige per samba/NFS gemountete Verzeichnisse im Loop abarbeiten lassen.

    Mein win Rechner hat meist weniger zu tun.

    Das würde mir auch sehr gefallen und ich würde es nutzen.

    Software: yaVDR0.6.1 mit VDR 2.2.0-13yavdr0~trusty, Kernel 4.4.0-229-generic, nvidia 384.130, dddvb 0.9.37.1easyVDR0
    Hardware: ASRock B75 Pro3-M, Intel G2030, RAM 4GB, SSD 64GB, HDD 4TB, Zotac GT630 ZONE Edition 1024MB GK208 (SKU:ZT-60408-20L), DD Cine C2/T2 V7
    Fernseher: SONY KDL-32D3000


  • Wenn wir schon bei Wünschen sind:


    markad standalone auf einem Linux-Server, um Videos zu bearbeiten. Im *.ts-Format, aber von z.B. Enigma2-Boxen. Idealerweise inkl. Erstellung der *.cuts-Datei, die bei Enigma2 verwendet wird...

    Picon.cz2VDR (Kanallogos) - Picons2VDR (Kanallogos) - MP-Logos (Kanallogos) - MV_Backup (Backup mit RSync) - MV_BorgBackup (Backup mit Borg) - Skin FlatPlus (Fork)

    "Es gibt keinen Grund, warum irgendjemand einen Computer in seinem Haus wollen würde." [Ken Olson], Präsident der Digital Equipment Corp., 1977

  • Das würde mir auch sehr gefallen und ich würde es nutzen.

    Als GUI würde ich ein vorhandenes Lazarus Projekt abwandeln, das wäre kein großer Aufwand.

  • Wenn wir schon bei Wünschen sind:


    markad standalone auf einem Linux-Server, um Videos zu bearbeiten.

    Mach doch. Eine command line Version ist doch per default dabei.


    Quote

    Im *.ts-Format, aber von z.B. Enigma2-Boxen.

    Was ist an dem Format anders? Beides ist ts, die Daten müssten sich ähnlich bis identisch sein.

    Wo liegt der Unterschied, bzw. welche Features verhindern mit dem aktuellen Code und einer ts Datei der enigma2 die Erstellung von VDR-kompatiblen marks?

    Wenn das schon klappt, wäre die Erweiterung um eine weitere Ausgabedatei mit Schnittmarken in einem anderen Format kein großes Problem. Vorausgesetzt man weiß den Dateinamen etc.


    Quote

    Idealerweise inkl. Erstellung der *.cuts-Datei, die bei Enigma2 verwendet wird...

    VDR verwendet Zeitstempel hh:mm:ss.ff, enigma2 64bit PTS timestamps.

    Solange keine größeren Stücke der TS Daten fehlen, sollte das eine in das andere direkt umrechenbar sein:

    Code
    1. PTS = seconds * PTS_per_sec;

    Wobei ich PTS_per_sec als Vielfaches von 90000 annehmen würde.

  • Solange keine größeren Stücke der TS Daten fehlen

    Sogar das kann man lösen: markad hat einen undokumentierten Parameter "--pts", den ich mal für mich zur Fehlersuche eingebaut habe. Damit wird zusätzlich zu den VDR kompatiblen Zeitstempeln auch PTS kompatible Zeitstempel in die marks geschrieben. Diese können dann wie von wirbel beschrieben exakt rückgerechnet werden.

    VDR
  • Damit reduziert sich die Frage nach dieser Möglichkeit auf eventuelle Unterschiede in den ts Dateien bzw. woran es aktuell hakt VDR marks zu erstellen. Und natürlich Dateinamen.

  • Bei E2 nennen sich Videos so wie der Timer und alle anderen haben einfach eine extra Erweiterung...


    Code
    1. '20220922 0530 - ORF1 HD - Mr_ Griffin - Kein Bock auf Schule - Durbins Absturz (S01E10).eit'
    2. '20220922 0530 - ORF1 HD - Mr_ Griffin - Kein Bock auf Schule - Durbins Absturz (S01E10).ts'
    3. '20220922 0530 - ORF1 HD - Mr_ Griffin - Kein Bock auf Schule - Durbins Absturz (S01E10).ts.ap'
    4. '20220922 0530 - ORF1 HD - Mr_ Griffin - Kein Bock auf Schule - Durbins Absturz (S01E10).ts.cuts'
    5. '20220922 0530 - ORF1 HD - Mr_ Griffin - Kein Bock auf Schule - Durbins Absturz (S01E10).ts.meta'
    6. '20220922 0530 - ORF1 HD - Mr_ Griffin - Kein Bock auf Schule - Durbins Absturz (S01E10).ts.sc'

    Im Reciever wird nur das. ts angezeigt:

    Code
    1. Mr_ Griffin - Kein Bock auf Schule - Durbins Absturz (S01E10)

    Die .ap und .sc sind wohl index-Daten.

    .eit das entsprechende eÉPG glaube ich.

    .meta ähnelt der info vom VDR:

    Code
    1. 1:0:19:132F:3EF:1:C00000:0:0:0::ORF1 HD
    2. Mr. Griffin - Kein Bock auf Schule - Durbins Absturz (S01E10)
    3. Durbins Absturz (S01E10)
    4. 1663817400
    5. SerienRecorder
    6. 242641501
    7. 2797549792
    8. f:1000
    9. 188
    10. 0

    Alle Videos liegen im /movie/ Verzeichnis. Mit dem Serienrecorder kann man Serien in Unterverzeichnisse mit dem Seriennamen packen

    Code
    1. [/mnt/ST32000542AS/movie] # ls
    2. 'Better Call Saul (2015)' 'No Tomorrow (2016)' 'Star Trek Discovery (2017)' The_Archer
    3. 'Mr Griffin - Kein Bock auf Schule (2018)' Papierkorb 'Star Trek Lower Decks (2020)' 'The Neighborhood (2018)'

    Picon.cz2VDR (Kanallogos) - Picons2VDR (Kanallogos) - MP-Logos (Kanallogos) - MV_Backup (Backup mit RSync) - MV_BorgBackup (Backup mit Borg) - Skin FlatPlus (Fork)

    "Es gibt keinen Grund, warum irgendjemand einen Computer in seinem Haus wollen würde." [Ken Olson], Präsident der Digital Equipment Corp., 1977

  • Auf meinem Ubuntu-VDR gibt es /usr/bin/markad und /usr/local/bin/markad. Ersteres ist wohl eine ältere Version aus einem Ubuntu-repository, letztere die aus Deinem Plugin.

    Ich habe nie einen Parameter für

    Code
    1. --bindir=DIR use DIR as location for markad executable
    2. (default: /usr/bin)

    vorgegeben, also hat das Plugin bei mir wohl noch nie Deine Version benutzt. :(


    Wäre es nicht besser, wenn das markad-binary standardmäßig von der Lokation verwandt würde, wie es auf dem jeweiligen System in der $PATH-Variable geregelt ist? Standardmäßig bevorzugt Ubuntu lokale Installationen, so dass /usr/local/bin verwandt worden wäre.


    Darüber gestolpert bin ich auf dem Odroid, wo es eine Fehlermeldung gab:

    Code
    1. markad: cannot find /usr/bin/markad, please install

    Das Plugin hatte den Start abgebrochen und vdr kam nicht hoch. Gewundert habe ich mich zunächst, weshalb das Plugin eine Datei, die es selbst (entsprechend der Standard-Werte für PREFIX und BINDIR aus vdr's Makefile) installiert hat, dort nicht zuerst sucht und findet.... und dann habe ich mich gefragt, warum ich das Problem auf dem anderen VDR nicht auch hatte...

    ACT-620, Asrock B75 Pro3-M, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

  • Wäre es nicht besser, wenn das markad-binary standardmäßig von der Lokation verwandt würde, wie es auf dem jeweiligen System in der $PATH-Variable geregelt ist?

    Nein, weil ich mich nicht darauf verlassen, wie beim Start von VDR die $PATH Variable gesetzt ist. Das ist je nach Distribution oder selbst gebauten Start Script anders.


    Standardmäßig bevorzugt Ubuntu lokale Installationen, so dass /usr/local/bin verwandt worden wäre.

    Das hängt davon ab, ob selber gebaut (dann /usr/local/bin) oder aus einer Distribution installiert (dann /usr/bin).


    Es ist auch durchaus möglich, dann man produktiv in /usr/bin das markad aus der Distribution hat und zu Testzwecken ein selbst gebautes in /usr/local/bin.


    Es ist Aufgabe der Distribution die Parameter korrekt zu setzen, bzw. von jedem selbst, wenn er selbst baut.

    VDR
  • Die Version 3.0.27 ist auf vdr-plugin-markad verfügbar. Sie enthält o.g. Patch.

    Code
    1. 2022-11-07: Version 3.0.27
    2. - fix variable init for getline and sscanf (thx to durchflieger@vdr-portal.de)
    3. - some minor bug fixes and optimizations, see git
    VDR