Das ist ein interessantes Thema, ich glaube, ich habe herausgefunden, was vor sich geht.
Ich denke, das „Problem“ ist, dass MCEbuddy Handbrake als Kodierungsprogramm auswählt und die Art, wie MCEbuddy deine Bildrate (diejenige, die du in der GUI angibst) an Handbrake weitergibt, darin besteht, den Kommandozeilenparameter -r 59.94 hinzuzufügen.
Die Verwendung des -r-Parameters führt standardmäßig zur Einstellung einer maximalen Bildrate, wodurch Handbrake angewiesen wird, eine Bildrate von höchstens 59,94 zu wählen, anstatt sie zu erzwingen. Es scheint, als würde es damit eine im Bereich von 29,xx auswählen …
Ich denke, es gibt dann einige Möglichkeiten, dem zu begegnen:
- Handbrake nicht verwenden (schlechte Option)
- ein Standardprofil verwenden, bei dem ffmpeg eine höhere Priorität als Handbrake hat (schlechte Option)
- –cfr ans Ende von handbrake-general in deinem Profil anhängen (beste Option)
d. h. für Option 3, in profiles.conf das Profil [mp4 normal]:
handbrake-general=--decomb --loose-anamorphic --verbose=2 -f mp4 -O
wird zu
handbrake-general=--decomb --loose-anamorphic --verbose=2 -f mp4 -O --cfr
Du kannst schnell testen, dass dies das Problem ist, indem du ein Profil verwendest, bei dem ffmpeg eine höhere Priorität hat. Verwende das Profil [DivX AVI Normal] mit in der GUI eingestellten 59,54, es verwendet ffmpeg.
Hier sind meine Ergebnisse dafür:
Video
ID : 1
Format : xvid
Codec ID : xvid
Duration : 26 s 994 ms
Bit rate : 1 826 kb/s
Width : 1 920 pixels
Height : 1 072 pixels
Display aspect ratio : 16:9
Frame rate : 59.940 (60000/1001) FPS
Scan type : Progressive
Bits/(Pixel*Frame) : 0.015
Stream size : 5.87 MiB (87%)
Zur Erklärung, dies ist direkt aus der Handbrakecli-Dokumentation entnommen:
-r, --rate <float> Set video framerate
(5/10/12/15/20/23.976/24/25/29.97/
30/48/50/59.94/60/72/75/90/100/120
or a number between 1 and 1000).
Be aware that not specifying a framerate lets
HandBrake preserve a source's time stamps,
potentially creating variable framerate video
--vfr, --cfr, --pfr Select variable, constant or peak-limited
frame rate control. VFR preserves the source
timing. CFR makes the output constant rate at
the rate given by the -r flag (or the source's
average rate if no -r is given). PFR doesn't
allow the rate to go over the rate specified
with the -r flag but won't change the source
timing if it's below that rate.
If none of these flags are given, the default
is --pfr when -r is given and --vfr otherwise
Letztendlich bin ich mir nicht ganz sicher, ob das Verdoppeln der Bildrate das ist, was du willst. Wenn ein Video mit 30 fps entzerrt wurde, bringt es nichts, das dann auf 60 zu verdoppeln, was das Setzen der Bildrate möglicherweise bewirkt. Ich bin mir nicht ganz sicher, aber ich denke, du willst die Bildrate verdoppeln und die Deinterlace-Einstellungen ändern.
Hier ist, was ich aufgrund meines begrenzten Verständnisses denke, und ich bin mir nicht sicher, wie es Plex macht, decomb macht es, und wie sich yadif unterscheidet:
Beispiel
60i fps, Bilder über 3 Sekunden Video:
ABCDEFGH
30p fps, Bilder über 3 Sekunden Video:
ACEG
60p fps, Bilder über 3 Sekunden Video, nachdem die Bildrate durch Setzen von
-r 59.94 -cfr verdoppelt wurde:
AACCEEGG
Im obigen Beispiel sollten 30p und 60p für ein menschliches Auge gleich aussehen, oder? Die „Bildrate“ hat sich verdoppelt, aber die Bilder sind dieselben, also kein visueller Unterschied?
Was du wirklich willst, ist
60i fps, Bilder über 3 Sekunden Video:
ABCDEFGH
60p fps, Bilder über 3 Sekunden Video:
ABCDEFGH
Und um diesen gewünschten Effekt zu erzielen, denke ich, musst du deine Deinterlace-Einstellungen ändern.
Siehe dazu: Yadif deinterlace
Dies sind die Einstellungen in MCEbuddy für yadif, die sich niemals ändern:
yadif=0:-1:1
MCEbuddy Handbrake hingegen verwendet
--decomb (Standard-decomb-Einstellungen / kein Preset)
Aus der Dokumentation:
--decomb[=string] Deinterlace video using a combination of yadif,
blend, cubic, or EEDI2 interpolation.
Presets:
bob
eedi2
eedi2bob
Du kannst erkennen, warum decomb gut ist: Es berechnet zunächst, ob es überhaupt entzerrt werden muss (es behält die Bilder, wenn kein Combing vorliegt, und falls es entzerrt werden muss, verwendet es eine Mischung aus Deinterlace-Methoden (die berechnet, welche in diesem Moment im Video am besten geeignet ist)).
Ich bin sicher, dass decomb in seinem Standardzustand von einer Verdopplung der Bildrate profitieren würde, aber ich bin mir nicht sicher, ob der tatsächliche Nutzen, den du suchst, erfordert
--decomb=bob
stattdessen? Und diese Einstellung würde ein benutzerdefiniertes Profil erfordern und könnte in MCEbuddy durch Ändern von „auto int detect“ beeinflusst werden.
Ein guter Test wäre, im Handbrake-GUI die Bildrate zu erzwingen, wobei decomb-Standard und decomb BOB verwendet werden – lass mich wissen, ob du einen Unterschied erkennst.