[markad] überarbeiteter Decoder

  • Achtung: der Parameter --fulldecode hat bei mir zu segfaults geführt.

    vdr User #2022 - hdvdr2:

    Lenovo SFF M83, Intel(R) Core(TM) i5-4670S, 32 GB Ram, zram-swap/tmp, ubuntu-focal+ESM, softhdcuvid, ffmpeg-6.1(git)

    ddbridge-6.5 mit 2xDVB-S2 und (Flex) 2xDVB-C/T Tunern, nvidia-GF1050Ti SFF (nvidia-dkms-570.124), System SSD btrfs,

    timeshift-btrfs, Video 8TB HDD XFS/cow, yavdr-ansible-2.7.3-seahawk, epgd-git mit plugins, Kernel 6.12.18+dddvb-0.9.41-git

    vdradmin-am-3.6.13-git, vdr-live-ng, vdrmanager (Smartphones als FB)

  • Danke für den Hinweis, dafür sind Beta Versionen da.

    Bitte poste mal das markad.log dazu.

    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, epg2vdr, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

  • Es ist so weit, die Version 4.0.0 von vdr-plugin-markad ist verfügbar.

    Bei Probleme bitte immer die markad.log posten.

    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, epg2vdr, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

    Edited once, last by kfb77 (July 14, 2024 at 11:09 AM).

  • Da muss ich gleich noch einen Update hinterher schieben.

    Die Version 4.0.1 von vdr-plugin-markad ist verfügbar.

    Bei Probleme bitte immer die markad.log posten.

    Code
    -  fix false cleanup weak marks
    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, epg2vdr, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

  • Die Version 4.0.2 von vdr-plugin-markad ist verfügbar.

    Bei Probleme bitte immer die markad.log posten.

    Code
    2024-07-21: Version 4.0.2
    - allow H.264 progressive without full decode
    - fix decoding of H.264 interlaced video with 25 frames per second
    - improve video cut performance
    - fix video cut with AAC LATM audio (thx to jsffm@www.vdr-portal.de for the idea on how to solve it)
    - some minor bug fixes and optimizations, see git
    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, epg2vdr, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

  • Die Version 4.0.3 von vdr-plugin-markad ist verfügbar.

    Bei Probleme bitte immer die vollständige markad.log posten.

    Code
    2024-07-26: Version 4.0.3
    - FFmpeg <= 4.3.7 does not support multithreading hwaccel, disable it
    - fix reset to software decoder if codec or pixel format is not supported by hardware
    - disable VPS configuration if markad runs during recording
    - some minor bug fixes and optimizations, see git
    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, epg2vdr, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

  • Die Version 4.0.4 von vdr-plugin-markad ist verfügbar.

    Bei Probleme bitte immer die vollständige markad.log posten.

    Code
    2024-07-31: Version 4.0.4
    - fix UHD decoding
    - some performance improvement
    - some minor bug fixes and optimizations, see git
    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, epg2vdr, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

  • Die Version 4.1 mit hwaccel für den Encoder ist gerade am entstehen.

    Ich würde dazu wieder gerne Tests auf anderer Hardware sehen. Gerne auch wieder jsffm und seahawk1986, da kenne ich schon die Hardware, aber gerne andere, die die --cut Funktion nutzen.

    Video Codec ist egal, ist alles von Interesse. Code von Branch V04 bauen, besser aber nicht installieren, sondern direkt aus dem Build Verzeichnis aufrufen. Zwei Test mit der gleichen Aufnahme, möglichst eine kurze Sendung:

    1. Test ohne hwaccel:

    markad --fulldecode --fullencode=all --cut --pts --autologo=2 --loglevel=3 --vps --log2rec --threads=4 --logocachedir=/tmp nice <Pfad zur Aufnahme>

    2. Test mit hwaccel:

    markad --fulldecode --fullencode=all --hwaccel=<Methode>,force --cut --pts --autologo=2 --loglevel=3 --vps --log2rec --threads=4 --logocachedir=/tmp nice <Pfad zur Aufnahme>

    Falls im markad.log "ERROR:" vorkommt, bitte das ganze Log File posten, sonst reicht der Statistik Block am Ende des Log Files. Meine Beispiele dazu:

    Hardware: i3-9100 mit UHD Graphics 630

    H265 ohne hwaccel:

    Code
    Thu Aug  1 17:30:15 [5718] DEBUG: processing statistics: -------------------------------------------------------------
    Thu Aug  1 17:30:15 [5718] DEBUG: pass 1 (initial logosearch): time    26s -> 0:00:26h
    Thu Aug  1 17:30:15 [5718] DEBUG: pass 2 (mark detection):     time   836s -> 0:13:56h
    Thu Aug  1 17:30:15 [5718] DEBUG: pass 3 (mark optimization):  time     0s -> 0:00:00h
    Thu Aug  1 17:30:15 [5718] DEBUG: pass 4 (overlap detection):  time     0s -> 0:00:00h
    Thu Aug  1 17:30:15 [5718] DEBUG: pass 5 (cut recording):      time  2219s -> 0:36:59h
    Thu Aug  1 17:30:15 [5718] DEBUG: global statistics: -----------------------------------------------------------------
    Thu Aug  1 17:30:15 [5718] DEBUG: decoding:                    time    71s -> 0:01:11h
    Thu Aug  1 17:30:15 [5718] INFO:  duration:                    time  3082s -> 0:51:22h
    Thu Aug  1 17:30:15 [5718] DEBUG: ------------------------------------------------------------------------------------

    H265 mit vaapi:

    Code
    Thu Aug  1 17:58:38 [7540] DEBUG: processing statistics: -------------------------------------------------------------
    Thu Aug  1 17:58:38 [7540] DEBUG: pass 1 (initial logosearch): time    23s -> 0:00:23h
    Thu Aug  1 17:58:38 [7540] DEBUG: pass 2 (mark detection):     time   986s -> 0:16:26h
    Thu Aug  1 17:58:38 [7540] DEBUG: pass 3 (mark optimization):  time     0s -> 0:00:00h
    Thu Aug  1 17:58:38 [7540] DEBUG: pass 4 (overlap detection):  time     0s -> 0:00:00h
    Thu Aug  1 17:58:38 [7540] DEBUG: pass 5 (cut recording):      time   540s -> 0:09:00h
    Thu Aug  1 17:58:38 [7540] DEBUG: global statistics: -----------------------------------------------------------------
    Thu Aug  1 17:58:38 [7540] DEBUG: decoding:                    time   177s -> 0:02:57h
    Thu Aug  1 17:58:38 [7540] INFO:  duration:                    time  1551s -> 0:25:51h
    Thu Aug  1 17:58:38 [7540] DEBUG: ------------------------------------------------------------------------------------

    Interessant ist, dass bei mir das Decoding auf der GPU langsamer ist als das Decoding in der CPU mit 4 Threads. Erst beim Schneiden ist das Decodieren/Encodieren in der GPU deutlich schneller.

    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, epg2vdr, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

  • Ich habe wieder das Problem auf Pro7 und TV Total. Wurde ja schon öfter gemeldet. Im Log sehe ich, das er das Logo rechts oben nicht erkennt. Anfangs und Endzeit werden erkannt. Die Werbung dazwischen nicht.

    Getestet mit 3.6.8 und 4.0.4.

  • Laut Log File kann ich nicht mal annähernd ein Logo erkennen. Da stört der laufend eingeblendete Fernseher Rahmen über dem Logo. Das ist genauso ein statisches Bild wie das Logo und ich erkenne das Logo am Unterschied zwischen sich verändernden Teile des Bildes und dem gleichbleibenden Teil des Bildes. Und genau das geht bei dieser Sendung nicht.

    Workaround Lösungen stehen hier.

    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, epg2vdr, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

  • Laut Log File kann ich nicht mal annähernd ein Logo erkennen. Da stört der laufend eingeblendete Fernseher Rahmen über dem Logo. Das ist genauso ein statisches Bild wie das Logo und ich erkenne das Logo am Unterschied zwischen sich verändernden Teile des Bildes und dem gleichbleibenden Teil des Bildes. Und genau das geht bei dieser Sendung nicht.

    Workaround Lösungen stehen hier.

    Oh danke für den Link, hatte ich doch glatt übersehen, obwohl ich fleissig mitlese. :thumbup:

    Server: CPU J1900 | 1x CineS2 | Debian Bookworm headless | VDR 2.6.7
    Client: 2x Himbeere

  • Hi, ich habe mit der 4.1 und cuda als hwaccel die ERRORs:

    Code
    Fri Aug  2 12:44:24 [23930] ERROR: cEncoder::InitEncoderCodec(): hwaccel encoder name: h264_cuda not found
    Fri Aug  2 12:44:24 [23930] ERROR: cEncoder::OpenFile(): init encoder with hwaccel failed, fallback to software encoder
    Fri Aug  2 12:54:00 [23930] ERROR: cEncoder::InitEncoderCodec(): hwaccel encoder name: h264_cuda not found
    Fri Aug  2 12:54:00 [23930] ERROR: cEncoder::OpenFile(): init encoder with hwaccel failed, fallback to software encode

    Der Aufruf:

    /usr/bin/markad --fulldecode --fullencode=all --hwaccel=cuda,force --cut --pts --autologo=2 --loglevel=3 --vps --log2rec --threads=3 --logocachedir=/tmp nice `pwd`

    Hardware: Intel(R) Core(TM) i5-4670S CPU @ 3.10GHz

    Die Fehlermeldungen erhalte ich auch mit mp2-Material.

    Code
    Fri Aug  2 14:54:48 [24373] ERROR: cEncoder::InitEncoderCodec(): hwaccel encoder name: mpeg2_cuda not found
    Fri Aug  2 14:54:48 [24373] ERROR: cEncoder::OpenFile(): init encoder with hwaccel failed, fallback to software encoder
    Fri Aug  2 14:57:48 [24373] ERROR: cEncoder::InitEncoderCodec(): hwaccel encoder name: mpeg2_cuda not found
    Fri Aug  2 14:57:48 [24373] ERROR: cEncoder::OpenFile(): init encoder with hwaccel failed, fallback to software encoder

    Files

    vdr User #2022 - hdvdr2:

    Lenovo SFF M83, Intel(R) Core(TM) i5-4670S, 32 GB Ram, zram-swap/tmp, ubuntu-focal+ESM, softhdcuvid, ffmpeg-6.1(git)

    ddbridge-6.5 mit 2xDVB-S2 und (Flex) 2xDVB-C/T Tunern, nvidia-GF1050Ti SFF (nvidia-dkms-570.124), System SSD btrfs,

    timeshift-btrfs, Video 8TB HDD XFS/cow, yavdr-ansible-2.7.3-seahawk, epgd-git mit plugins, Kernel 6.12.18+dddvb-0.9.41-git

    vdradmin-am-3.6.13-git, vdr-live-ng, vdrmanager (Smartphones als FB)

  • Vielen Dank für den Test.

    Das wird wohl nichts mit cuda, da gibt es keinen Encoder in FFmpeg. Oder weiß jemand, wie man den bekommt ?

    "ffmpeg -encoders | grep h264" zeigt dir, welche Encoder es in deinem FFmpeg gibt.

    Versuche es mal mit nvenc, den gibt es zumindest bei mir. Testen kann ich es mangels NVIDA Karte nicht.

    Mit vaapi geht Encoding auch nur mit "intel-media-va-driver-non-free".

    Edit: die falsche Start Marke in deinem Log wird in der nächsten Version auch gefixed.

    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, epg2vdr, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

    Edited once, last by kfb77 (August 2, 2024 at 3:50 PM).

  • Die Version 4.1.0 von vdr-plugin-markad ist verfügbar.

    Bei Probleme bitte immer die vollständige markad.log posten.

    Code
    2024-08-07: Version 4.1.0
    - new feature: hwaccel for encoder
    - some minor bug fixes and optimizations, see git

    Getestet ist das GPU Encoding nur mit VAAPI, aber grundsätzlich müsste alles gehen, was die verwendete Hardware und das verwendete FFmpeg unterstützt. Bekannte Einschränkungen stehen im Wiki.

    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, epg2vdr, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

  • Beim bauen unter arch bekomme ich diese Info:

    Code
    In Funktion »copy«,
        eingefügt von »_S_copy« bei /usr/include/c++/14.1.1/bits/basic_string.h:435:21,
        eingefügt von »_M_mutate.constprop« bei /usr/include/c++/14.1.1/bits/basic_string.tcc:337:15:
    /usr/include/c++/14.1.1/bits/char_traits.h:427:56: Warnung: »__builtin_memcpy« liest zwischen 2 und 9223372036854775805 Bytes aus einer Region der Größe 1 [-Wstringop-overread]
      427 |         return static_cast<char_type*>(__builtin_memcpy(__s1, __s2, __n));
          |  

    Gruß utiltiy

    meine VDR

    vdr03: Antec Remote Fusion, Intel DH67BL, Celeron G1620, GT630, 2x 2GB DDR3 - Hynix, SDA SATA 40GB, SDB SATA 1.5TB, L4M Cine S2 [yaVDR/vdr4arch]
    vdr04: Antec Remote Fusion Micro, Intel DH67BL, Celeron G550, GT630, 2x 2GB DDR3 - Kingston, SDA SATA 160GB WD, SDB SATA 3TB WD Red, L4M Cine S2 [yaVDR/vdr4arch]


    VDR Projects

  • Da steht nichts von markad drin, haben da gerade die Standard Libs in Arch ein Problem ?

    Kann jemand, der Arch besser kennt als ich (also praktisch jeder) was dazu sagen ?

    Edit: Ich habe mal kurz ein Arch aufgesetzt, bei mir baut das ohne Fehler.

    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, epg2vdr, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

    Edited once, last by kfb77 (August 7, 2024 at 6:38 PM).

  • Edit: Ich habe mal kurz ein Arch aufgesetzt, bei mir baut das ohne Fehler.

    OK, dann weiß ich auch erstmal nicht weiter. Meine VM nutze ich schon ewig für's bauen der Pakete für meine VDR's, trotzdem Danke für den Gegentest - bist auf zack ;)

    Hier das ganze Log vom Bau:

    Gruß utiltiy

    meine VDR

    vdr03: Antec Remote Fusion, Intel DH67BL, Celeron G1620, GT630, 2x 2GB DDR3 - Hynix, SDA SATA 40GB, SDB SATA 1.5TB, L4M Cine S2 [yaVDR/vdr4arch]
    vdr04: Antec Remote Fusion Micro, Intel DH67BL, Celeron G550, GT630, 2x 2GB DDR3 - Kingston, SDA SATA 160GB WD, SDB SATA 3TB WD Red, L4M Cine S2 [yaVDR/vdr4arch]


    VDR Projects

  • bist auf zack

    Wenn man im Container lebt, ist das nicht so aufwendig:

    lxc launch images:archlinux testarch

    15s warten und man hat ein neues Arch Linux.

    FFmpeg installieren und markad bauen, der Rest ist ja alles bei Arch eh dabei.

    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, epg2vdr, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!