Hallo,
in einem x264-Encode ist mir folgender Fehler aufgefallen: An einer Stelle enthält das Video einen Frame, der eigentlich erst wenige Augenblicke später kommen dürfte (und dort dann aber noch einmal vorhanden ist). Beim Ansehen macht sich das durch einen interessanten Sprung in der Bewegung bemerkbar. Mein Skript sieht folgendermaßen aus:
SetMemoryMax(1400)
SetMTMode(3, 8)
# SOURCE
mpeg2source("source.d2v", cpu=4)
AssumeTFF()
# calculate PAR before cropping: PAR = DAR / SAR
PAR = 4.0/3.0 * Float(height) / Float(width)
SetMTMode(2)
# DEINTERLACING
QTGMC(Preset="Slower", EdiThreads=1)
# CROPPING
crop(6, 2, -6, -2)
# calculate new DAR (SAR changed due to cropping): DAR = SAR * PAR
DAR = Float(width) * PAR / Float(height)
# set final DAR for MeGUI
global MeGUI_darx = Round(1000 * DAR)
global MeGUI_dary = 1000
return last
Alles anzeigen
Kann das Problem mit dem Mutlithreading zusammenhängen? Ich verwende Avisynth 2.6 MT (32 Bit) unter Windows 7 (64 Bit). Dafür würde zumindest die Tatsache sprechen, dass der Fehler beim Frame-weisen ansehen des Skriptes nicht auftritt, sondern erst während des Encodierens erzeugt wurde.
Mir ist auch noch aufgefallen, dass das fertige Video 4 Frames mehr hat, als das Avisynth-Skript (zumindest behauptet das DirectShowSource). Insgesamt habe ich jetzt natürlich ein wenig das Vertrauen verloren, denn ein sorgloses Archivieren ohne sofortiges Ansehen und Prüfen eines Videos ist so natürlich nicht mehr möglich.
Fällt euch irgendwas dazu ein?
Grüße
ph4nt0m