Konvertierung von 60i zu 60p

Hallo. Ich habe über Plex Programme von OTA-Quellen per HDHomeRun aufgezeichnet und MCEBuddy zuverlässig zum Konvertieren der Dateien eingesetzt. Aber ich stecke bei einem bestimmten Aspekt der Konvertierung fest.

Bei Programmen, die in 1080i60 ausgestrahlt werden, behandelt MCEBuddy sie so, als würden sie mit 29,97 fps laufen (technisch korrekt, aber es gibt 60 Felder/Sekunde, was die zeitliche Auflösung beeinflusst). Das bedeutet, dass ich bei der Ausgabe eine 1080p30-Datei bekomme – scheinbar unabhängig vom verwendeten Profil und Encoder. Das ist problematisch, da es möglich sein sollte, eine 1080p60-Datei mit einem Bob- oder Yadif-Deinterlacer zu erzeugen, der die zeitliche Auflösung von 60p beibehält. Genau das machen Plex und mein Fernseher, um die original .ts-Dateien flüssig als 60p anzuzeigen – das sieht großartig aus.

Die Standalone-Handbrake-App kann so etwas exportieren – also ist es definitiv möglich.

Ich habe versucht, in den Experteneinstellungen manuell 59,94 fps anzugeben, aber selbst das liefert eine Ausgabedatei mit 29,97 fps. Gibt es eine Möglichkeit, MCEBuddy dazu zu bringen, die Ausgabebildrate anhand der Felder pro Sekunde – statt der Frames in der Quelldatei – zu bestimmen? Oder gibt es einen anderen Workaround, um eine passende Ausgabe zu erhalten? Danke.

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:

  1. Handbrake nicht verwenden (schlechte Option)
  2. ein Standardprofil verwenden, bei dem ffmpeg eine höhere Priorität als Handbrake hat (schlechte Option)
  3. –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.

Vielen Dank. Ich habe deinen früheren Beitrag gesehen und bin im Grunde zu demselben Schluss gekommen, zu dem du hier kommst. Der Trick für eine flüssige Wiedergabe über die Handbrake-GUI besteht tatsächlich darin, Decomb zu aktivieren und auf Bob zu setzen. Ich muss nicht einmal eine Framerate angeben; das Problem wird einfach gelöst.

Ich habe das Profil „MKV Normal“ lediglich angepasst und decomb=bob hinzugefügt:

handbrake-general=--decomb=bob --detelecine --loose-anamorphic --verbose=2 -O

Ich hoffe tatsächlich, dass ich gar kein -cfr hinzufügen muss, denn das ist in der GUI-Version nicht nötig. In einer idealen Welt würde dieses Preset auch Sendungen detelecinieren, die z. B. mit 24 fps gedreht wurden; ich versuche also, einen einzigen Profil-Stand zu erreichen, mit dem MCEBuddy immer eine Datei ausgibt, die dem tatsächlichen Quellmaterial entspricht.

Es läuft gerade an einer Testdatei; ich melde mich hier wieder, sobald es durchgelaufen ist. Nochmals vielen Dank.

Super! Deinem Beitrag nach zu urteilen warst du der Antwort schon so nahe, dass ich verwirrt war, aber als ich nachsah, war es doch etwas nuancierter.

Fällt dir ein Unterschied auf zwischen
1080i60 → 1080p30
und
1080i60 → 1080p60 --decomb / --decomb bob?

Ich frage mich, vielleicht werde ich mal reinschauen – nie dran gedacht.

Ich habe den Test gerade abgeschlossen, und er sieht großartig aus. Ich merke definitiv einen Unterschied mit --decomb; die Bewegung ist viel, viel flüssiger als bei 1080p30. Die Ausgabe ist jetzt visuell nicht mehr von der Eingabedatei zu unterscheiden. (Das kann auch daran liegen, dass sie doppelt so groß ist, also sind Bitrate/Qualität das nächste Problem, das es zu lösen gilt…)

Freut mich, dass du das gelöst hast, da ich ebenfalls darauf stoße. Muss man bei dieser Methode immer noch 59,94 fps in den Experteneinstellungen angeben?

Ich habe versucht, handbrake-general=--decomb=bob --detelecine --loose-anamorphic --verbose=2 -O zu verwenden, ohne Erfolg.

Ich erhalte eine ruckelige 30fps Bildrate. Ich habe auch die Idee aufgegeben, mein Video zu deinterlacen und stattdessen MCEBuddy zu nutzen, um die Werbung herauszuschneiden, aber das funktioniert nun auch nicht mehr.

  1. Keine Kombination aus AutoDeinterlace=false, ffmpeg-VideoOptimized=true, handbrake-VideoOptimized=true mit einem Standardprofil erhält mein 60 Felder pro Sekunde interlaced Video.

  2. Die Verwendung von MP4 Unprocessed erhält ebenfalls nicht die Felder pro Sekunde und ich erhalte ein 1080i30 ruckeliges Video.

Ich weiß nicht mehr, was ich noch tun soll. Könnte ein paar Ratschläge gebrauchen!