vdr-transcode - swiss knife for transcoding

  • So schaut es aus ...


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • So, hier nun ein Log; die tausend Wiederholungen frame=... habe ich mal raus gelöscht. Eingegeben hatte ich

    vt -i Alle_Nadeln.mp4 -odir _Alle_Nadeln_an_der_Tanne

    (absichtlich ein anderes Ziel als in der conf Datei (siehe unten) in der Hoffnung man sieht was Auffälliges)


  • -odir wird bei der derzeitigen Version bei Dateieingabe nicht verarbeitet. Bitte etwas Geduld.


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • purzel

    Wenn Du Bock hast, kannst Du mal diesen Patch Testen

    sonst warten, bis ich das ausgetestet habe, dann kommt die neue Version.


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Wenn Du Bock hast, kannst Du mal diesen Patch Testen

    Vielen Dank erstmal. Ich bin jedoch nicht sicher, ob die Version die man derzeit 'runterladen kann diejenige ist auf die der Patch passt. Jedenfalls ging's schief:

    Code
    patching file vdr-transcode
    Hunk #1 FAILED at 834.
    Hunk #2 FAILED at 2481.
    2 out of 2 hunks FAILED -- saving rejects to file vdr-transcode.rej

    Da es nicht viel Code ist habe ich gedacht ich ändere das eben "zu Fuß". Die Zeilennummern passten nicht, aber ich habe die Stellen gefunden. Anscheinend geht's jetzt: im angegebenen odir wird ein Unterverzeichnis mit Namen der mp4 Datei erzeugt - ist doch super, dankeschön!

    (Ich kann nur noch nicht sagen wie reproduzierbar es ist, ich habe nur einen quick'n'dirty Test gemacht)

  • Ich hatte befürchtet, dass der patch nicht mehr passt, aber Du hast es ja offens. hinbekommen.


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Ich hatte befürchtet, dass der patch nicht mehr passt, aber Du hast es ja offens. hinbekommen.

    Ja, sieht sehr gut aus

    (Ich kann nur noch nicht sagen wie reproduzierbar es ist, ich habe nur einen quick'n'dirty Test gemacht)

    Ich habe ihn über Nacht rechnen lassen und stichprobenartig geprüft: sieht super aus.

    Zwei von drei bereits genannten Fehlermeldungen sind ja im Grunde keine "echten" Fehler (Folgendes erscheint u.a. auf der Konsole):

    Das mit dem genindex und nice kommt logischerweise daher, dass auf meinem Arbeitsplatzrechenr kein VDR ist.

    Die Meldung "Keine Berechtigung" ist, weil ich es nicht als root laufen lasse.

    Einzig die Syntax Fehler ... hm, da könnte man mal mit Klammern probieren. Die betreffenden Zeilen sind

    Code
    2304:  si=$(($li/8/$fpso))
    2655: prz=$(($newsize*100/$oldsize))   # in meiner Version Zeile 2657

    Ich probiere gerade mal mit Klammern um die jeweils erste Division bzw. Multiplikation, also


    Code
    2304:  si=$((($li/8)/$fpso))
    2655: prz=$((($newsize*100)/$oldsize))   # in meiner Version Zeile 2657


    Mal sehen was passiert...

  • Das sind Folgefehler, weil der index nicht generiert wird. Ich müsste eine Konfiguration "ohne vdr" einbauen.


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Mal sehen was passiert...

    "natürlich" ging's schief. Ich war in Eile, in Eile bin ich unkonzentriert, unkonzentriert macht man Fehler :(

    Wenn die Variablen $li und $newsize leer sind geht's auf jeden Fall schief, da helfen auch keine Klammern.

    Das sind Folgefehler, weil der index nicht generiert wird. Ich müsste eine Konfiguration "ohne vdr" einbauen.

    Das erklärt's natürlich - aber ist die Option überhaupt nötig? Mehr zufällig hatte ich nämlich ab ca. Zeile 2280 gefunden, dass anscheinend schon geprüft wird ob es vdr auf dem System gibt. Allerdings scheint das nicht zu funktionieren. $VDRDIR ist ja z.B. leer, weil es nie gesetzt wird. Vielleicht so:

    Code
    vdr=$(which vdr)
    if [ -x "$vdr" ] ; then
      nice $vdr --genindex=$dest
      ... usw.
    else  echo 'VDR not found'
    fi
  • Zwei Änderungen


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Das funktioniert, vielen Dank.

    Es ist allerdings an der Stelle fast egal, ob man auf Existenz (-e) oder Ausführbarkeit (-x) des vdr executable prüft, denn which findet ohnehin nur ausführbare Dateien (Binaries und Scripte). Es funktioniert beides.

    Entscheidend sind die Häkchen ("), da habe ich auch lange dran rum geknabbert.

    $VDRDIR bleibt aber weiterhin leer, somit ist

    Code
    if [ -e $VDRDIR/vdr ]
    then
    vdr=$VDRDIR/vdr
    fi

    eigentlich überflüssig ;)


    Nichts für Ungut,

    Purzel

  • Bei mir ist $VDRDIR gesetzt.


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Ich nutze keine VDR-Distri, daher kann ich Dir das nicht beantworten.


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Neue Version

    Angekündigte Änderungen sind eingeflossen

    Bugfixes


    Ausführlicher Changelog folgt noch.


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Changelog


    • Einbau von opus als Audio-Encoder, Tests mit 64kbit für Stereo klingen vielversprechend. Natürlich nicht für vdr geeignet, nur mkv, (mp4)
    • Unterstützung HE-AAC, damit erreiche ich ähnliche Kompression wie opus und es wird von vdr unterstützt.
    • --selb # select best audio track
      Auswahl der Audiospur mit größter Bitrate
    • -odir und -mark sollte jetzt gleichzeitig funktionieren
    • h264_omx Encoder für Raspis
    • Bugfixes


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

    Einmal editiert, zuletzt von jsffm ()

  • Ich habe den Code mal ins Github übertragen:


    https://github.com/jsffm/vdr-transcode


    Da das für mich absolutes Neuland ist, bin ich für Anregungen dankbar.


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • bei mir funktioniert die Transcodierung nicht mehr nach dem letzten update ...


    Ubuntu 20.04.2


    boerse_vor_acht.log



    vt.log:

    Code
    [AVHWDeviceContext @ 0x555a80752700] libva: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
    [AVHWDeviceContext @ 0x555a80752700] Failed to initialise VAAPI connection: -1 (unknown libva error).
    Device creation failed: -5.
    Failed to set value '/dev/dri/renderD128' for option 'vaapi_device': Input/output error
    Error parsing global options: Input/output error
    220 192.168.0.35 SVDRP VideoDiskRecorder 2.4.6; Fri Jan 29 16:05:06 2021; UTF-8
    250 Message queued
    221 192.168.0.35 closing connection

    vt.err

    Code
    ls: Zugriff auf '/media/hd/plexmedia/transcode/Börse_vor_acht.mp4' nicht möglich: Datei oder Verzeichnis nicht gefunden
    /usr/local/bin/vdr-transcode: Zeile 2540: /1024: Syntaxfehler: Operator erwartet. (Fehlerverursachendes Zeichen ist "/1024").
    /usr/local/bin/vdr-transcode: Zeile 2879: ${#videos}-2: Teilstring-Ausdruck < 0.
    /usr/local/bin/vdr-transcode: Zeile 2882: ${#audios}-2: Teilstring-Ausdruck < 0.
    /usr/local/bin/vdr-transcode: Zeile 2886: *8/0: Syntaxfehler: Operator erwartet. (Fehlerverursachendes Zeichen ist "*8/0").
    /usr/local/bin/vdr-transcode: Zeile 2887: *8/0: Syntaxfehler: Operator erwartet. (Fehlerverursachendes Zeichen ist "*8/0").
    /usr/local/bin/vdr-transcode: Zeile 2902: *100/367948: Syntaxfehler: Operator erwartet. (Fehlerverursachendes Zeichen ist "*100/367948").

    dest:

    Code
    /media/hd/recordings/Autotimer/Nachrichten/Börse_vor_acht/2021-01-28.19.55.1-0.rec//media/hd/plexmedia/transcode/Börse_vor_acht.mp4.log


    Könnt ihr mir bitte auf die Sprünge helfen, was hier schief geht?

    --------------------------------------------------------------------------------------------------------------------------------------------------

    BM2LTS im VDR-Portal   http://www.bm2lts.de   http://www.sc-schulze.de

    --------------------------------------------------------------------------------------------------------------------------------------------------

    Empfang: Octopus Net S2 max (8 Tuner) + Octopus Net S2 max (8 Tuner) + Netceiver (2x DVB-s2dual)

    Kopfstation: Virtuelle Maschine mit BM2LTS v3.4.XX

    Clients: NUC10i5FNH2 -> BM2LTS v3.4.XX; FireTV4k mit Kodi u. VNSI-Plugin

    NAS: Aufnahmen u. Plex-Media

    --------------------------------------------------------------------------------------------------------------------------------------------------


Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!