Wie ändere ich nur die Framerate eines VP9-Webms, ohne etwas anderes zu beeinflussen?

  • Ich möchte nur die Framerate einer VP9-codierten Webm-Datei ändern.
  • Die Quelldatei hat eine Framerate von 1000 FPS, und ich möchte sie auf 30 FPS ändern, ohne das Video/Audio auf andere Weise zu beeinflussen.
  • Ich bin ein völlig unbeschriebenes Blatt bei der Videocodierung/-bearbeitung. Keine Vorkenntnisse/Erfahrungen
  • Google hatte keine Antworten für mich

Fragen:

  1. Gibt es eine Möglichkeit, es zu tun? Ich verwende Ubuntu 14.04
  2. Bedeutet eine Verringerung der Framerate eine geringere CPU-Auslastung?

Antworten (1)

Dies ist bereits bei anderen Codecs/Containern aufgetreten.

Dies funktioniert in ffmpeg NICHT ohne Transcodierung, da ffmpeg leider nicht dafür eingerichtet ist, mit Zeitstempeln auf nicht decodierten Frames herumzuspielen.

Ich denke, Sie sollten in der Lage sein, es damit zu tun (ungetestet):
mkvmerge --default-duration 0:30fps in.webm -o out.webm

Wo 0ist die Track-ID der Videospur. Weitere Informationen finden Sie in der Manpage für mkvmerge. Beachten Sie, dass --fix-bitstream-timing-informationdies derzeit nur für h.264 implementiert ist, sodass Ihre Ausgabe einen vp9-Stream enthält, der wahrscheinlich immer noch 1000 fps anzeigt, aber der Container Frame-Zeitstempel bei 30 fps hat. Spieler verwenden jedoch fast immer Container-Präsentations-Zeitstempel.

Wenn das Video Audio enthält, nehme ich an, dass es die richtige Länge für das Video mit 30 fps hat? Sonst ist das ein großer Aufwand...

Ich wusste nicht, dass es möglich ist, dass die Metadaten eines Videos 1000 fps anzeigen, aber stattdessen 30 fps haben. Vielleicht passiert das in meinem Quellvideo? Gibt es eine Möglichkeit zu überprüfen?
Nun, einige Video-Codecs können einen FPS im Bitstream speichern, getrennt von den Zeitstempeln im Container. Ein schnelles Google hat diesen Link gefunden, der helfen könnte zu erklären, warum es mehrere Ebenen von Dingen gibt. pitivi.org/manual/codecscontainers.html . Bearbeiten: und hier ist ein Link, der besser und detaillierter aussieht. library.rice.edu/services/dmc/guides/video/…
Irgendwo muss es für sowas eine gute FAQ geben? Hat jemand einen Link, der verwirrten Anfängern eine gute Standardantwort gibt?
Um Ihre Frage zu beantworten: Sie könnten sagen, dass die TATSÄCHLICHEN fps Ihres Videos das Echtzeitintervall zwischen den von der Kamera aufgezeichneten Bildern waren. Wenn Sie es mit einem anderen FPS wiedergeben, wird die Zeit im angezeigten Video beschleunigt oder verlangsamt.
oh, und außerdem, wie hast du festgestellt, dass es 1000 fps waren? mplayer zeigt 1000 fps für einige Dateien mit variabler Bildrate, nur als Platzhalter. Es sei denn, Sie haben etwas Seltsames getan oder es gibt einen Fehler in etwas, das Sie verwendet haben (was sicherlich möglich ist, da VP9 noch neu ist), ist es höchst unwahrscheinlich, dass Sie wirklich ein Video haben, das mit 1000 fps abgespielt wird.