[to_h264] VDR Aufnahme mit ffmpeg in h264 umwandeln

  • Das ist eine Fortsetzung von VDR Aufnahme in h264 umwandeln


    Funktioniert mit .vdr und .ts


    Ziel wird in .rec Ordner + 1 min gespeichert


    Video wird nach h264 konvertiert
    Audio mp2 wird nach aac konvertiert

    • bis 192 kb/s --> 128 kb/s
      über 192 kb/s --> 192 kb/s

    AC3 wird kopiert


    Alle Tonspuren bleiben erhalten


    Untertitel werden kopert


    info.vdr wird ergänzt mit "L 99"


    Softhddevice spielt das Ergebnis klaglos ab.


    Hier zur letzten Version


    Achtung: der hier angehängte script ist nicht aktuell

    Dateien

    • to_h264.gz

      (2 kB, 219 Mal heruntergeladen, zuletzt: )


    vdr-User-# 755 to_h264 chk_r

    Dieser Beitrag wurde bereits 6 Mal editiert, zuletzt von jsffm ()

  • Folgende Änderungen:


    aac-Library vom Fraunhofer Institut (libfdk_aac) kann aktiviert werden. Die Klangqualität soll besser sein.


    Von -deinterlace auf yadif umgestellt.


    Concat der Eingabedateien kann aktiviert werden, soll ab ffmpeg V 1.1 funktionieren.

    Dateien

    • to_h264.gz

      (2,28 kB, 92 Mal heruntergeladen, zuletzt: )


    vdr-User-# 755 to_h264 chk_r

  • Hinweis: Die concat-Funktion macht Probleme bei > 1 Audio Spuren!


    Getestet mit ffmpeg V 1.2.1


    vdr-User-# 755 to_h264 chk_r

  • Bugfix für concat-Funktion

    Dateien

    • to_h264.gz

      (2,29 kB, 61 Mal heruntergeladen, zuletzt: )


    vdr-User-# 755 to_h264 chk_r

  • Bugfix 2 für concat-Funktion - subtitle

    Dateien

    • to_h264.gz

      (2,29 kB, 98 Mal heruntergeladen, zuletzt: )


    vdr-User-# 755 to_h264 chk_r

  • Mal wieder eine neue Version:


    Bitratenermittlung für aac erweitert:

    • unter 160 kb/s --> 96 kb/s
      bis 192 kb/s --> 128 kb/s
      über 192 kb/s --> 192 kb/s


    "-async 1" ersetzt durch "-copyts"


    Vor Allem bei älteren .vdr Aufnahmen war die Reihenfolge der Audiospuren falsch, die werden jetzt autom. sortiert.


    Alternativ kann eine man. Auswahl der Audiospuren aktiviert werden.


    Verbesserungen im Protokoll


    Ausgabe im Matroska Format kann aktiviert werden.


    Ich hoffe, ich habe nix vergessen :D


    MfG,


    jsffm


    Nachtrag:


    Bei ffmpeg-Version >= 1.2 gingen die Language-Informationen verloren, das Problem ist gelöst.

    Dateien

    • to_h264.gz

      (3,54 kB, 77 Mal heruntergeladen, zuletzt: )


    vdr-User-# 755 to_h264 chk_r

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von jsffm ()

  • Hier noch eine kleine Verbesserung bei der Überprüfung der manuellen Auswahl der Audiospuren.

    Dateien

    • to_h264.gz

      (3,55 kB, 75 Mal heruntergeladen, zuletzt: )


    vdr-User-# 755 to_h264 chk_r

  • Wichtige Änderung!


    Die GOP-Länge wurde verkürzt, dadurch deutlich bessere Navigation (Springen, spoolen etc.)

    Dateien

    • to_h264.gz

      (3,59 kB, 79 Mal heruntergeladen, zuletzt: )


    vdr-User-# 755 to_h264 chk_r

  • Hier mal eine testing version für experimentierfreudige User


    Concat für ffmpeg < 1.1 mittels cat, hakt leider manchmal bei ts. Kann abgeschaltet werden.


    Erkennungssicherheit für .vdr durch -f mpeg erhöht.

    Dateien

    • to_h264-t.gz

      (4,53 kB, 124 Mal heruntergeladen, zuletzt: )


    vdr-User-# 755 to_h264 chk_r

  • Um dein Monolog mal zu unterbrechen :] DANKE !


     :D


    vdr-User-# 755 to_h264 chk_r

  • Was mich mal interessieren würde, welche Ausgabeplugins ausser softhddevice funktionieren denn?


    vdr-User-# 755 to_h264 chk_r

  • Dann werd ich mal meinen nur kurz unterbrochenen Monolog fortsetzen.


    Nach meiner bisherigen Erfahrung sind Komprimierungen > 3 durchaus möglich, aber nicht die Regel. Das hängt stark von der Quelle ab.


    concat mit cat funktioniert problemlos mit neueren TS-Dateien, ältere machen grundsätzlich bei der Nachbearbeitung Probleme, wie an anderer Stelle schon ausführlich diskutiert.


    Bei vdr-Dateien tritt manchmal das Problem auf, dass die Reihenfolge der Audiodateien bei den Segmenten voneinander abweicht, ich versuche das durch eine Vorbehandlung mit projectx zu lösen. Wenn das stabil läuft, werde ich es veröffentlichen.


    MfG


    vdr-User-# 755 to_h264 chk_r

  • Möchte auch mal Feedback geben:


    Grundsätzlich finde ich Deine Plugin-Idee super. ich würde es aber so nie verwenden, da ich zu 95% nur KOnzerte archiviere. Da ist ein umkodieren mit geringerer Bitrate sehr kontraproduktiv.
    Meine Bitte: Kannst DU einen schlater einbauen, die Bitrate entweder aufs maximum zu setzten, oder keine audiokonvertierung durchzuführen? (ich weiß nur nicht, ob der VDR dann damit klarkommen würde)


    Falls DU noch ne Idee für die Zukunft brauchst: :-D


    Was wäre, wen man noch andere inputformate mit zulässt, also auch divX, avi oder sonstige Container?


    VG & Danke für die bisherige gute Arbeit!


  • Es sollte kein Qualitätsverlust stattfinden.


    Ich wandle mpeg2 video in h264 um, welches bei gleicher Qualität mit deutlich geringerer Bitrate auskommt.


    AC3 wird nicht verändert.


    mp2-Ton wird nach AAC gewandelt, hierbei sollten keine hörbaren Verluste auftreten, es gibt aber einen Schalter mp2-Ton beizubehalten.


    Da das Ganze ein Script ist, sollte es kein Problem sein, die Bitrate höher einzustellen, ich glaube aber kaum, dass Du einen Unterschied siehst.


    Bei anderen Containeren ist die Vielfalt der Formate so groß, das überlasse ich anderen Tools. Ich würde die eher mit mplayer oder xbmc direkt anschauen.


    MfG


    vdr-User-# 755 to_h264 chk_r

  • Hallo,


    danke für Deine Arbeit an dem Skript!
    Ich würde das Konvertieren auf einem Server erledigen lassen, der aber nicht der VDR ist. D.h. ein Starten des Skriptes durch den VDR ist (direkt) nicht möglich.
    Stattdessen würde ich gerne per Cron regelmäßig über Aufnahme-Vereichnisse gehen und die Konvertierung anstoßen. Dabei sollen aber natürlich schon konvertiere Aufnahmen übergangen werden.
    Erkennt das Skript Aufnahmen, die schon konvertiert sind?


    Gruß,
    Hendrik


  • Den Skript von einem Server ausführen ist kein Problem, läuft gut über NFS. Eine autom. Ansteuerung würde ich eher über einen extra Skript machen, der kann auch prüfen, ob was gemacht werden muss, hiebei muss auch auf HD geprüft werden, also am Besten auf mpeg2video prüfen, konvertierte sind H264, wie HD-Aufnahmen.


    vdr-User-# 755 to_h264 chk_r

  • Hallo,


    Danke für die schnelle Antwort.


    Erstmal noch ein Feedback zu deinem Skript:
    In Zeile 729 steht:
    $vdr --genindex


    $vdr enthält $VIDDIR/vdr


    Nicht jeder hat dort seinen VDR. Meist liegt der VDR aber im PATH.


    --> vdr --genindex wäre besser, oder?


    Zum extra-Skript: was meinst du mit "muss auch auf HD geprüft werden?"
    Und: Was ist "mpeg2video"? (Danach lässt sich schwer googlen, da Google daraus mpeg2 video macht und sehr viel findet.


    Schließlich noch ein Fehler:


    Hast du eine Idee, woran das liegen kann?


    Zuletzt:
    Spricht etwas gegen
    aaclib="libfaac"
    statt
    aaclib="libfdk_aac" # Fraunhofer Library


    Meine FFMPEG-Version unterstützt letzteren nicht.


    (Welche Distribution verwendest du eigentlich?)


    Gruß,
    Hendrik

  • henfri


    es spricht nichts dagegen, wenn Du den Script an Deine Umgebung anpasst.


    Deinn ffmpeg scheint eine git-Version zu sein, ich habe hier auch eine Solche im Test, die problemlos läuft.


    vdr-User-# 755 to_h264 chk_r


  • es spricht nichts dagegen, wenn Du den Script an Deine Umgebung anpasst.


    Außer, dass ich das bei jedem deiner Updates nochmal mache. Daher meine Anregung, das gleich auf deiner Seite möglichst allgemein zu halten


    Zitat

    Deinn ffmpeg scheint eine git-Version zu sein, ich habe hier auch eine Solche im Test, die problemlos läuft.


    Edit:
    Das mit dem "-i" war mein Fehler. (ich hatte ein ffmpeg -i eingefügt um die verwendete Version einzublenden, -i gibt's aber nicht)
    Es läuft jetzt noch nicht, weil FFMPEG in meiner Version kein aac kann.


    Oh jeh.. FFMPEG kompilieren war echt ätzend... Aber ich hab mir Notizen gemacht.
    Welche Optionen hast du dem ./configure übergeben? Reicht
    ./configure --enable-gpl --enable-libxvid --enable-postproc --enable-avfilter --enable-shared --enable-libx264 --enable-nonfree --enable-libfaac --enable-libmp3lame --enable-version3 --enable-postproc --enable-pthreads --enable-x11grab
    oder fehlt da noch etwas?


    Kannst du noch was zur Formaterkennung sagen? (mpeg2video)


    Gruß,
    Hendrik