Variable Frame Rate (VFR) ist ein Begriff aus der Videokomprimierung für eine Funktion, die von einigen Containerformaten unterstützt wird und die es ermöglicht, die Frame Rate während der Videowiedergabe aktiv zu ändern oder ganz auf die Frame Rate zu verzichten und für jedes Frame einen individuellen Zeitcode festzulegen.
Ich verstehe dieses Konzept also. Aber es wirft unzählige Fragen auf, und die meisten Infoblöcke sind nur Stummel:
Sind alle Dezimal-FPS VFR; können Ganzzahl-FPS VFR sein? Oder ist es spezifisch für die Art und Weise, wie das Video erstellt wurde, wie wenn Sie Ihren Bildschirm mit OBS aufzeichnen und die FPS auf 30 setzen, aber eine Dezimalzahl von 29,777 erhalten? Existiert VFR wirklich nur bei aufgezeichneten Videos aus dem wirklichen Leben, aber 3D-/2D-Animationen hätten kein VFR? Ich verstehe nicht, was die Dezimalzahl mit der Definition zu tun hat, jeder ganzzahlige Wert würde auch passen. Ich weiß, dass Sie -vfrdet in ffmpeg verwenden können, um zu erkennen, ob etwas VFR ist ... aber wenn alle VFR Dezimalzahlen sind, was ist dann der Sinn, warum prüfen Sie nicht stattdessen einfach die FPS.
Wenn Sie VFR-Videos mit derselben Bildrate neu kodieren, behält die Ausgabe dann immer noch dieselbe Geschwindigkeit und Anzahl von Bildern bei oder tritt ein Datenverlust auf (außerhalb des Codec-Qualitätsverlusts), der sich von konstanten Bildern pro Sekunde unterscheidet? Werden bei der Wiedergabe eines VFR-Videos ALLE Bilder angezeigt oder werden Bilder tendenziell übersprungen (nehmen wir an, die Hardware funktioniert einwandfrei)?
Warum unterstützen nicht „alle“ Videoeditoren nicht ganzzahlige FPS-Werte? Ich meine, alles, was ich als Bruchteil ganzer Zahlen ausdrücken kann, sollte meiner Meinung nach als FPS-Eingabeeinstellung verfügbar sein … sonst verfehlt das den Sinn der „Videobearbeitung“. Was genau ist der Grund dafür, dass diese angeblich voll ausgestatteten Videoeditoren Sie auf nur 5 voreingestellte FPS beschränken, d. h. (30/60/24/23,97/25). Ich bin noch verwirrter, weil einige Videoeditoren zwar sagen, dass sie 60 FPS unterstützen, aber nur 60 FPS für die Timeline-Bearbeitung unterstützen … und der unterstützte FPS-Wert der Ausgabe wird (noch vor dem Export!) mit 59,94 angegeben, und ich sehe OFFIZIELLE Tutorial-Videos, die mir und allen anderen sagen, dass 59,94 dasselbe ist wie 60. Ich bin nicht sicher, ob das mit VFR oder etwas anderem zusammenhängt.
Ist der FPS-Wert eines VFR einfach die durchschnittliche FPS des gesamten Videos? Oder handelt es sich um eine fortgeschrittenere Methode zur Mittelwertbildung/Berechnung? Welche Rolle spielt es überhaupt, wenn in einem VFR-Video eine einzelne „durchschnittliche“ FPS aufgeführt ist? Die Definition besagt, dass das Video unabhängig von einer einzelnen FPS ist. Gibt es eine Art spezielles Datenpaket, das dem Videoplayer mitteilt, das Video auf eine bestimmte Weise wiederzugeben, sodass einige Teile in der gewünschten Weise schneller/langsamer sind? Kann VFR nicht technisch gesehen bedeuten, dass der Anfang eines Videos mit 60 FPS und die letzten 10 Sekunden mit 5 FPS abgespielt werden? Woher soll ein Videoplayer wissen, dass er den Anfang mit 60 FPS und das Ende mit 5 FPS abspielen soll, wenn er nur eine Zahl hat, von der er ausgehen kann.
Antwort1
Are all decimal fps vfr; can integer fps be vfr?
Nein, eine Bruchzahl von Bildern pro Sekunde kann immer noch konstant sein. Beispielsweise hat NTSC (der US-Fernsehstandard) eine konstante Bildrate von 29,97 (oft als 30000/1001 dargestellt) Bildern pro Sekunde.
Does vfr really only exist on real-life recorded video, but 3d/2d animation wouldn't have vfr?
Der Inhalt ist irrelevant. Animationen werden normalerweise mit einer bestimmten Bildrate im Hinterkopf erstellt. Aber es gibt keinen Grund, warum das so sein muss.
I don't see what being a decimal has to do with the definition
Nichts.
why not just check the fps instead.
Was ist "fps prüfen" und was bedeutet das überhaupt (siehe Punkt 4)
If you re-encode vfr video at the same fps,
Es hängt ganz davon ab, WIE Sie kodieren und wie das von Ihnen zum Kodieren verwendete Tool funktioniert. Die meisten Tools lassen alles, was hereinkommt, an die Ausgabe durch, ohne die Bildrate zu verändern (es sei denn, Sie weisen sie dazu an).
Does playback of a vfr video show ALL the frames or does it tend to skip frames
Hängt vom Gerät ab. Wenn Ihr Fernseher beispielsweise 60 Hz hat und Sie 61 fps kodieren, kann er NICHT jedes Bild anzeigen. Wenn der Inhalt jedoch durchschnittlich 60 fps hat, aber auf 62 hochschnellt, verteilt der Fernseher die Bilder möglicherweise gleichmäßig und zeigt sie alle an, oder er lässt zwei Bilder aus und wiederholt später zwei Bilder. Jedes Display ist anders und es gibt keine Regel, was es tun soll.
Why do video editors not 'all' support non-integer fps values?
Sie müssen den Entwickler dieser Tools fragen. Außer Faulheit, Kosten oder Einfachheit gibt es keinen Grund, der eine solche Funktion in einem Tool verhindern würde.
Um noch auf den Punkt der Einfachheit einzugehen: In vielen Fällen ist die vom Benutzer gewünschte Bildrate einfach nicht möglich. Beispielsweise verwendet RTMP eine 1-kHz-Taktung, was bedeutet, dass nicht einmal 30 fps CFR möglich sind (30 ist nicht gleichmäßig durch 1000 teilbar, es ergibt 30 fps AFR, wobei zwei Drittel der Frames 33 ms lang und ein Drittel 34 ms lang sind). Wenn die Benutzeroberfläche ein Verhältnis hat, bei dem der Benutzer einen beliebigen Wert für die Bildrate eingeben kann, erhält er aufgrund der Einschränkung des gewählten Videoformats sehr oft ein unerwartetes Ergebnis.
telling me and everyone that 59.94 is the same as 60
Das ist absolut nicht dasselbe. In den meisten Fällen spielt es keine Rolle. Und bei Internetvideos spielt es auch nie eine Rolle, aber bei manchen Arbeitsabläufen im Fernsehbereich müssen die Bildraten oft exakt sein, damit die verschiedenen Geräte zusammenarbeiten können.
Is the fps value of a vfr just the average fps across the entire video?
Es gibt keinen Standard zur Berechnung der durchschnittlichen Bildrate. Die Software liest möglicherweise einfach einen Wert aus dem Header, berechnet den Durchschnitt der ersten Sekunden oder berechnet die Bildrate über die gesamte Datei. Jedes Tool arbeitet anders.
What is even the role of having a singular listed 'average' fps in a vfr video?
Bequemlichkeit.
is there some kind of special data packet that tells the video player to playback the video in a certain way such that some parts are faster/slower in the desired fashion?
Nein, jedem Frame ist ein Zeitstempel zugeordnet. Der Player zeigt nur ein Frame an, bis es Zeit ist, das nächste Frame anzuzeigen. Er beschleunigt und verlangsamt sich bei jedem einzelnen Frame.
Can't vfr technically mean the start of a video plays at 60 fps and the last 10 seconds play at 5 fps?
Ja
How would a video player know to play the start at 60 fps...and the end at 5fps...if it only has 1 number to go off of.
Es gibt nicht eine Zahl, von der man ausgehen kann. Es gibt eine Zahl pro Frame.