Ich habe eine große 8k 360-Grad-Bilddatei, die ich kürzlich gerendert habe. Zu Demonstrationszwecken möchte ich diese in ein paar Minuten langes Video umwandeln, damit die Leute es im VR 360 Viewer von YouTube ansehen können. Allerdings erweist sich dieser Prozess als äußerst langsam.
Derzeit verwende ich ffmpeg:ffmpeg -loop 1 -i input.png -pix_fmt yuv420p -c:v libx264 -preset ultrafast -r 24 -threads 128 -t 1 output.mp4
Damit bekomme ich auf meinem (ziemlich schnellen) Laptop nur etwa 1 FPS und auf meiner leistungsstärkeren Desktop-CPU ein paar mehr. Ich habe versucht, GPU zu verwenden, aber FFMPEG hat eine Fehlermeldung ausgegeben, dass meine GTX-Karte das 8192 x 8192 große Bild nicht verarbeiten kann. Ich stecke also derzeit in stundenlanger Codierung für ein paar Minuten Video fest – gibt es schnellere Möglichkeiten, dies zu tun?
Übrigens verwende ich Linux und habe Zugriff auf eine Gaming-Karte (obwohl diese, wie bereits erwähnt, möglicherweise nicht nützlich ist). Ich bin derzeit auf FOSS/kostenlose Software beschränkt – keine kostenpflichtigen Anwendungen. Am liebsten würde ich dies in ffmpeg tun. Ich habe ein NVME-SSD-Laufwerk, also erwarte ich nicht, dass das Lesen von Daten ein Engpass sein wird, aber vielleicht ist es das?
Antwort1
Wenn es sich nur um ein Standbild handelt, rendern Sie einfach ein kurzes Segment und erstellen Sie anschließend eine größere Datei daraus.
ffmpeg -loop 1 -framerate 24 -i input.png -pix_fmt yuv420p -c:v libx264 -preset veryfast -t 5 5s.mp4
und dann
ffmpeg -stream_loop 50 -i 5s.mp4 -c copy 255s.mp4
um eine 255 Sekunden lange Datei zu erhalten.