Avisynth und ffmpeg Konvertierung von VHS-Material OK?

  • Hallo zusammen,


    Beim Digitalisieren meiner VHS musste ich aufgrund diverser Fehler nochmal von vorne anfangen und habe nun endlich einen Workflow der zu funktionieren scheint. Bevor ich nun mit der Konvertierung beginne wäre es klasse, wenn ihr über meinem Workflow schauen könnt und mir sagt ob das eurer Meinung nach so OK ist oder ob ihr noch etwas anders machen würdet.


    Ausgangslage: VHS abgespielt und mit Panasonic DMR-EH675 auf DVD aufgenommen. Video mit PGCdemux aus der DVD als ein zusammenhängendes .VOB extrahiert. Das .vob-Video hat folgende Eigenschaften (Info aus ffmpeg):


    Workflow:

    1) Mit dgmpgdec Audiofile und .d2v file für avisynth erstellen


    2) Avisynth-Script:

    Wo ich mir noch unsicher bin ist ob ich mit dem Farbraum noch etwas machen muss ConvertToYV12(interlaced=true)? Das Script funktioniert allerdings ohne und das Ergebnis sieht eigentlich auch OK aus (Die Qualität der Aufnahme ist allerdings eh nicht die Beste, da oft etwas überbelichtet etc.).


    3) Zwischenspeichern des Avisynth-Ergebnisses verlustfrei, unkomprimiert (mit VirtualDub) als .avi.


    4) Konvertieren in .mp4(h.264/AAC) mit ffmpeg:

    Code
    1. ffmpeg -i avisynthvideo.avi -c:v libx264 -preset veryslow -crf 20 -vf format=yuv420p -aspect 4:3 -color_primaries bt470bg -color_trc gamma28 -colorspace bt470bg -c:a libfdk_aac -b:a 128k fertigesvideo.mp4


    Ergebnis: Die fertige .mp4-Videodatei hat folgende Eigenschaften (Info aus ffmpeg):


    - Was habe ich vergessen oder übersehen?

    - Bitte auch um Rückmeldung, wenn aus eurer Sicht so OK


    Danke und viele Grüße

  • Ausgangslage: VHS abgespielt und mit Panasonic DMR-EH675 auf DVD aufgenommen. Video mit PGCdemux aus der DVD als ein zusammenhängendes .VOB extrahiert.

    Bei dieser Ausgangslage sind alle weiteren Schritte Holz in den Wald schleppen.

    Würde mir an deiner Stelle einige Anregungen von Bogilein durchlesen, die er in den letzten Monaten neuen Usern was die Digitalisierung von VHS Bändern angeht, gegeben hat. (So viel war hier zuletzt leider nicht los, daher müsstest du sie schnell finden).

  • Danke für den Hinweis auf die Beiträge von Bogilein. Insbesondere hier hat er ja verschiedene Capturing-Verfahren beschrieben.

    Dass meine Aufnahmen auf DVD durch die MPEG-komprimierung nicht an die Qualität einer direkten unkomprimierten Aufnahme herankommen ist mir schon klar. Dafür muss ich mich nicht um sync-Probleme und andere Querelen einer Capturing-Karte kümmern.


    Die oben beschriebene Nachbearbeitung möchte ich machen, da mich die unsauberen Ränder (->crop) und das Interlacing stören und ich am Ende ein gängiges Format (mp4/h.264) haben möchte.


    Wenn ich die Antwort richtig verstanden habe kommt es bei meinem Ausgangsmaterial nicht mehr so genau darauf an den absolut korrekten Farbraum usw. beim Konvertieren zu erwischen, da meine Aufnahme durch die Komprimierung sowieso schon etwas verfälscht ist. Wenn sich das im Rahmen hält ist das OK für mich.

  • Wenn Du mit der Qualität zufrieden bist, ist ja alles gut. Verbesserungen gibt es immer, egal ob bei der Aufnahme (lossless) oder mittels Avisynth Script.

    Ich würde bei QTGMC nur das Preset "faster" benutzen zum Deinterlacen. Man könnte auf alle Fälle noch den CCD-Filter in Virtual Dub einbauen gegen das Chroma Rauschen und die Color Shift Korrektur welche abhängig ist von deinem Abspieler und um die wievielte Kopiengeneration es sich handelt.

    Meine Empfehlung fürs Umwandeln wäre halt das Schweitzer Taschenmesser, Selurs "Hybrid" Programm.

    Ansonsten ist dein Weg schon ganz brauchbar und vor allem auch für Laien gut geeignet wenn man mit den Nachteilen der Hardware Leben kann.

    Mein Tipp mit der höchsten Bitrate aufnehmen bis die Festplatte voll ist und dann die Festplatte mittels Freeware Tools (aufwändig) oder ISO-Buster (Payware aber einfach) auslesen, dann erspart man sich das DVD Brennen und rippen.

  • Den CCD-Filter kannte ich noch nicht. Habe den soeben ausprobiert und er bringt tatsächlich noch eine kleine Verbesserung. Danke!

    Eine Chroma-Shift-Korrektur war bis jetzt bei den ersten beiden VHS-Kassetten nicht nötig.


    Danke für die Tipps. :)

  • Jetzt ist mir doch noch etwas aufgefallen. Und zwar das Gamma bzw. die Transfer characteristics...


    VirtualDub entnimmt dem avisynth-script keine Gamma-Information und zeigt (das ursprüngliche Gamma 2,8 - PAL Video) mit Gamma 2,2 an, also zu hell. Nun sind die meisten Aufnahmen sowieso etwas dunkel, weshalb die Aufhellung eigentlich ganz gut ist, lediglich die Sättigung muss ich noch etwas erhöhen.


    Um nun aber den helleren Gammawert nach der h.264-Kodierung beizubehalten habe ich meinen ffmpeg-Befehl dahingehend geändert, dass ich für die Transfer characteristics den Wert für BT.470 System M (--> Gamma 2,2) verwende. Jetzt habe ich einen Mix aus BT.470 System M für die Transfer characteristics und BT.470 System B/G für den colorspace.


    1) Ist das OK oder soll ich lieber einheitlich im System B/G bleiben?

    2) Wie zukunftssicher ist das System B/G mit seinem Gamma 2,8 noch? Aktuellere Standards verwenden alle ein Gamma von 2,2. Die (Software-)Player sollten aber das alte PAL format auch noch in einigen Jahrzehnten unterstützen oder was meint ihr?

    3) Gibt es in VirtualDub Einstellungen für die transfer characteristics?

  • Wenn libav basierte Software Player die transfer characteristic ordentlich beachten, ist man denke ich auf der sicheren Seite.

    Bei Hardware Playern vermutlich eher nicht, würde mich überraschen wenn die meisten Player den Flag nicht einfach ignorieren,...


    Bei Mpeg2/H.264/H.265/PorRes kann man den transfer characteristic flag übrigens auch im Nachhinein noch mit den bitstream filtern von ffmpeg ändern (ohne das man neu encoden muss). siehe: https://ffmpeg.org/ffmpeg-bitstream-filters.html


    Cu Selur

  • Ach gehen die Flags nur mit Software die auf libav basiert? Das heißt im Umkehrschluss, dass ich besser aufgestellt bin, wenn ich auf Gamma 2,2 encode. Das wird zukünftig in den meisten Fällen korrekt abgespielt?


    Oder ignorieren die Player die Flags und schauen auf Auflösung und FPS und raten dann: PAL, Gamma 2,8?


    Oh mann was mache ich denn jetzt für ein Gamma für meine PAL aufnahmen...

  • Die Flags stehen im Standard, vermute nur, dass die meisten Hardwareplayer einfach einen festen Gammawert verwenden oder vielleicht noch nach der Framerate gehen und die VUI Flags nur recht stiefmütterlich behandeln. Bei Libav würde es mich hingegen wundern, wenn der Wert nicht ausgewertet würde.


    Zitat

    Oh mann was mache ich denn jetzt für ein Gamma für meine PAL aufnahmen...

    Würde einfach mal ein File erstellen, von dem File mehrere Varianten durch ändern des Flags erstellen und dann schauen ob man in mpv, vlc, ffmplay Unterschiede zwischen den Files sieht. Sieht man Unterschiede klappt schon mal libav.

    Da ich vermute, dass in der Zukunft eher Softwareplayer verwendet werden wäre das für mich okay.

    Wenn, wider erwarten, libav basierte Player den Flag ignorierten sollten, würde ich eher bei 2.2 bleiben.


    Cu Selur

  • Also meine Vermutung ist auch gewesen, dass die meisten Software-Player das mit den Flags hinbekommen. Aber deinen Vorschlag mit dem Test finde ich gut und hab ihn mal gemacht. Mit folgendem Ergebnis:


    Player Video mit Flags: -color_primaries bt470bg -color_trc gamma28 -colorspace bt470bg
    Video mit Flags: -color_primaries bt470bg -color_trc gamma22 -colorspace bt470bg
    Video (mp4,h.264) ohne Flags für: -color_primaries -color_trc -colorspace
    VLC Angezeigtes Video Gamma 2,8
    Angezeigtes Video Gamma 2,2 Angezeigtes Video Gamma 2,2
    MPC Angezeigtes Video Gamma 2,2 Angezeigtes Video Gamma 2,2 Angezeigtes Video Gamma 2,2
    Win10 "Filme und TV"
    Angezeigtes Video Gamma 2,2 Angezeigtes Video Gamma 2,2 Angezeigtes Video Gamma 2,2
    Win Media Player
    Angezeigtes Video Gamma 2,2 Angezeigtes Video Gamma 2,2 Angezeigtes Video Gamma 2,2
    XnViewXP Angezeigtes Video Gamma 2,2 Angezeigtes Video Gamma 2,2 Angezeigtes Video Gamma 2,2
    FFplay Angezeigtes Video Gamma 2,2 Angezeigtes Video Gamma 2,2 Angezeigtes Video Gamma 2,2
    Android XPlayer
    Angezeigtes Video Gamma 2,2 Angezeigtes Video Gamma 2,2 Angezeigtes Video Gamma 2,2
    VLC (auf Android)
    Angezeigtes Video Gamma 2,2 Angezeigtes Video Gamma 2,2 Angezeigtes Video Gamma 2,2


    Überraschenderweise haben alle Player, bis auf VLC, den Flag ignoriert und das Video mit dem Gammawert 2,2 angezeigt. Noch überraschender fand ich, dass die jeweiligen Player beim Anzeigen der Codec-Infos alle angegebenen Flags richtig anzeigen und diese dann im Video doch ignorieren.

    Ich habe noch ein paar Screenshots gemacht und die Flags für die Transfer characteristics markiert.




    Damit habe ich nicht gerechnet. Umso besser den Test gemacht zu haben. Ich werde dann wohl auf Gamma 2,2 mit den Flags -color_primaries bt470bg -color_trc gamma22 -colorspace bt470bg kodieren. Damit habe ich zwar System M und System BG gemischt, aber die meisten Player scheint das eh nicht zu interessieren, und die die auf die Flags schauen kommen (zumindest im Gamma, die Farbechtheit prüfe ich jetzt nicht auch noch) gut mit dem Mix an Informationen klar.