Kürzlich wollte ich die Webm-Codecs VP8 und VP9 ausprobieren, aber als ich ffmpeg
eine H.264 MP4-Datei in einen der beiden anderen Codecs codierte, stellte ich fest, dass die Codierung (um fast eine Größenordnung) langsamer ist.
Ein 1080p30-Video von H.264 zu VP9 mit 3 MBit / s wird mit ungefähr 6-7 fps codiert, während dasselbe Video mit ungefähr 40 fps zu H.264 codiert wird. Ich habe den libvpx-vp9
Codec ffmpeg
für das VP9-Format verwendet. Ich bekomme die gleichen Ergebnisse auch für VP8 und Theora.
Kann mir jemand erklären, warum VP9 so viel langsamer ist? Ich habe eine andere Maschine ausprobiert, die mir mit Handbremse ähnliche Ergebnisse lieferte.
Antworten:
libvpx-vp9
ist ein viel langsamerer Encoder als,libx264
aber die Standardeinstellungen von Threads in ffmpeg (0 = auto) sind für libvpx nicht wirksam. Durch manuelles Einstellen wird die Geschwindigkeit erhöht. z.BAuf einem 4-Kern-Computer bekomme ich beim Codieren eines 1080-30p H.264-Streams eine Beule von
3.8 fps
bis10 fps
.quelle
-preset
fürlibx264
und-speed
fürlibvpx-vp9
. Sieheffmpeg -h full
. Diese können einen großen Unterschied machen, wirken sich aber auch auf die Qualität oder die Komprimierungseffizienz aus.-speed
Option machte keinen großen Unterschied für michVP9 ist ein komplexerer Codec, der eine bessere Komprimierung bietet. Das Verhältnis von Videokomprimierung zu Leistung ist tendenziell exponentiell. Sie sollten erwarten, dass der VP9-Austausch (AV1) noch langsamer ist.
quelle