Manuelle Korrektur von Bildstörungen in verlustfrei digitalisiertem Filmmaterial

Started by User1953, August 17, 2020, 05:46:49 pm

Previous topic - Next topic

User1953

Hallo,

bezugnehmend auf meinen zuvor geposteten Beitrag habe ich noch 3 Fragen.

1) Wie beschrieben exportiere ich schadhafte Frames als png aus verlustfrei digitalisiertem VHS-Videomaterial und setze sie nach externer Reparatur per "Logo einfügen" wieder ein.
Im oben durchgeführten Versuch zeigte sich, dass das exportierte Bild auch ohne eine externe Bearbeitung beim Wiedereinfügen einen leichten Helligkeitsverlust erfährt, korrigierbarbar mit dem Kontrast-Filter, Helligkeit +1 (offset=1).
Des weiteren habe ich den Verdacht, dass versuchsweise bei wiederholtem Export - Import des gleichen Frames zusätzlich ein Qualitätsverlust erkennbar wird. Unter Verwendung von png-Bildern erscheint mir das ungewöhnlich.
Mich stört das nicht weiter. Ich habe mich damit arrangiert.

Aus Interesse am Programm sowie an der Programmierung:
Gibt es eine Erklärung für das beschriebene Phänomen?

2) Bei einer halbe Stunde schlechtem VHS-Videomaterial kommen schon einmal 1000 nachbearbeitete Frames zusammen. Deren Rückführung per "Logo einfügen" ist höchst langweilig und zeitraubend.
Deshalb denke ich daran die im Dateinamen mit einer Zeitinfo versehenen Frame-Dateien per VB-Script in eine py-Projektdatei einzusetzen. Meine Programmierkenntnisse reichen dafür aus.

Lässt sich das auch mit der Avidemux-Scriptsprache vielleicht sogar einfacher erledigen?
Gibt es eine Literaturempfehlung zum Erlernen der Sprache?

Gruß,
User1953

User1953

v. 277  20201001

Hallo,

Nachtrag zum Thema 'Frames per Logo einfügen' Filter

Es müssen nicht alle schadhaften Frames extern ausgebessert werden, um sie dann wieder mit der genannten Funktion einzufügen.
Im Falle von farblich verfälschten einzelnen Frames z.B. in VHS-Material wäre die Anwendung der Farbfilter die einfachere Lösung.
  Leider ist 'MPlayer Hue' nicht abschnittsweise anwendbar
  und fällt damit für den genannten Anwendungsfall aus.

Ich möchte deshalb anregen die Filterfunktion entsprechend zu erweitern.

Außerdem würde ich mich freuen, wenn sich die in meinem vorhergehenden Beitrag gestellten Fragen beantworten ließen.

Wie schon im vorhergehenden Post unter 2) angedeutet verwende ich nun ein VB-Script zur Rückführung einer großen Anzahl extern reparierter Frames über den 'Logo einfügen' Filter. Das Script liest bearbeitete Bilddateien und schreibt eine entsprechende Anweisungsfolge in eine Textdatei. Die Anweisungen werden dann per Copy & Paste in die Projektdatei übertragen.

Gruß
User1953


eumagga0x2a

"MPlayer Hue" nutzt aktuell Caching und ist somit für abschnittsweise Anwendung leider ungeeignet. Auf den ersten Blick aber scheint er Caching nicht wirklich zu benötigen. Ich schaue mir das später näher an.

Farbraum-Konvertierung ist grundsätzlich (fast) immer verlustbehaftet.

Quote from: User1953 on October 28, 2020, 12:05:01 pm2) Bei einer halbe Stunde schlechtem VHS-Videomaterial kommen schon einmal 1000 nachbearbeitete Frames zusammen. Deren Rückführung per "Logo einfügen" ist höchst langweilig und zeitraubend.
Deshalb denke ich daran die im Dateinamen mit einer Zeitinfo versehenen Frame-Dateien per VB-Script in eine py-Projektdatei einzusetzen. Meine Programmierkenntnisse reichen dafür aus.

Klingt höchst monströs für mich. Ich würde alle Frames als Einzelbilder exportieren und die, die Nacharbeit erfordern, eben bearbeiten, dann die ursprüngliche Datei mit der bereinigten Version überschreiben und den ganzen Ordner mit zehntausenden Bildern in einem Rutsch in Avidemux laden (das heißt, die erste laden, den Rest lädt Avidemux automatisch, wenn sie fortlaufend benannt sind).

User1953

Hallo,

vielen Dank für die Auskunft.

Quote from: eumagga0x2a on November 14, 2020, 06:33:03 pmKlingt höchst monströs für mich. Ich würde alle Frames als Einzelbilder exportieren und die, die Nacharbeit erfordern, eben bearbeiten, dann die ursprüngliche Datei mit der bereinigten Version überschreiben und den ganzen Ordner mit zehntausenden Bildern in einem Rutsch in Avidemux laden (das heißt, die erste laden, den Rest lädt Avidemux automatisch, wenn sie fortlaufend benannt sind).

Soweit mir bekannt, geht der Export einer Serie von Bildern nur im jpg-Format. Es ist verlustbehaftet. Man sieht z.B. bei der Darstellung von Wolken die Kompressionsartefakte. Den Bilderexport erledige deshalb bis auf Weiteres mit Shotcut im png-Format mit fortlaufender Nummerierung. Avidemux nimmt eine solche Serie an. Probiert habe ich es mit 2000 Frames.

Die Nacharbeit von einigen Halbbildstapeln erfolgt weiterhin mit Avidemux in Verbindung mit externem Bildbearbeitungsprogramm und Änderung der Projektdatei zum Frame genauen Entstapeln der per Logo rückgeführten Dateien wie früher gezeigt.

Alles mit einem Programm wäre schöner.

Gruß,
User1953


eumagga0x2a

Quote from: undefinedSoweit mir bekannt, geht der Export einer Serie von Bildern nur im jpg-Format. Es ist verlustbehaftet.

In der Tat, diesen Umstand habe ich aus den Augen verloren. Für den Export im PNG-Format könnte man theoretisch internes tinyPy-Scripting bemühen, allerdings muss man dafür eine Funktion hinzufügen, um nach Editor().nextFrame() auch das Vorschaubild zu aktualisieren. Aktuell geht das nur bei Keyframes mit Avidemux().seekKeyFrame(1) ( = finde das nächste Keyframe und zeige es auch an).

Könnte für die ersten 1000 Bilder so etwa wie

adm = Avidemux()
ed = Editor()
prefix = "/path/to/folder/pic"
for i in range (0,1000):
    s = str(i)
    l = len(s)
    while l<4:
        s = "0" + s
        l = len(s)
    adm.savePng(prefix + s + ".png")
    adm.showNextFrame()

aussehen, wobei "showNextFrame()" noch nicht existiert.

Das auffüllen von führenden Nullen mit einer Schleife stellt eine Krücke für anscheinend fehlende Unterstützung für formatierte Ausgabe dar (bin mit Python allgemein und tinyPy nicht sonderlich vertraut, und die von Python bekannten Lösungen funktionieren mit tinyPy nicht).

User1953

v. 277  20201001

Hallo,

vielen Dank für das Script.

adm = Avidemux()
ed = Editor()
prefix = "/path/to/folder/pic"
for i in range (0,1000):
    s = str(i)
    l = len(s)
    while l<4:
        s = "0" + s
        l = len(s)
    adm.savePng(prefix + s + ".png")
    adm.showNextFrame()


Ich habe es ohne die letzte Anweisung in die Scripting Shell eingegeben und ausgeführt.

Es erscheint der Hinweis:

X PNG
  Failed to save as PNG

bei jedem Schleifendurchlauf. (hier 1000 Mal)

Der Versuch im Script png durch jpg oder bmp zu ersetzen führt ebenfalls zu

X PNG
  Failed to save as PNG.

Habe ich etwas falsch gemacht?




User1953

Hallo, zur Vervollständigung:

mit der vollständig modifizierten Anweisung

adm.saveBmp(prefix + s + ".bmp")

erscheint:

Ausgabedatei kann nicht angelegt werden
BMP Operation fehlgeschlagen.

eumagga0x2a


User1953

Hallo,

mit einem einem eingerichteten Ordner im Laufwerk e funktioniert das Script:

adm = Avidemux()
ed = Editor()
prefix = "e:/TEST/Photo/pic"
for i in range (0,100):
    s = str(i)
    l = len(s)
    while l<4:
        s = "0" + s
        l = len(s)
    adm.savePng(prefix + s + ".png")
    adm.seekKeyFrame(1)


Vielen Dank