Ich möchte das WebM-Format und den VP9-Codec für meine YouTube-Videos verwenden. Ich weiß, dass mit einer guten Komprimierung eine langsame Geschwindigkeit einhergeht, aber FFmpeg verwendet nur 1 meiner 8 Kerne. Ich habe versucht, -threads 8 in meinem Befehl zu verwenden, aber FFmpeg scheint dies zu ignorieren. Von dem, was ich gelesen habe, der VP9 Encoder sollte mehrere Threads unterstützen. Was kann ich tun, damit dies funktioniert?
FFmpeg version 2.7.2-1build1
libvpx1 version 1.3.0-3ubuntu1
libvpx2 version 1.4.0-4
Befehl verwendet:
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 10 -b:v 5000k -c:a libvorbis output.webm
Muss ich währenddessen beide libvpx-Pakete installieren? libvpx2 hat das Ubuntu-Symbol in Synaptic daneben, also schätze ich, dass das andere ein Überbleibsel von einem Upgrade auf 15.10 ist?
-threads 0
sollte alle Ihre Kerne verwenden. Sie können -threads 8 oder -threads 16 ausprobieren. Die Reihenfolge der Optionen ist wichtig. Setzen Sie daher die Option -threads vor die Eingabeoption (-i input.mp4).-i
werden auf den Eingang (den Decoder oder Demuxer) angewendet.Antworten:
Vielen Dank für die Informationen zur Reihenfolge der Optionen @ bodhi.zazen und @LordNeckbeard. Anscheinend ist der libvpx-Encoder etwas wählerischer. Wenn ich nach -c: v libvpx die Option -threads hinzugefügt habe, werden laut oben sichtbar mehr Kerne verwendet.
-threads 0 verwendet nur 1 Kern, -threads 8 verwendet 2 Kerne und -threads 16 verwendet 4 Kerne. Ich habe versucht, eine höhere Zahl zu verwenden, aber der Encoder sagt, dass mehr als 16 Threads nicht empfohlen werden und keine CPU mehr verwenden. Die Codierungsgeschwindigkeit selbst ist jetzt etwa doppelt so hoch. Nochmals vielen Dank für die Hilfe!
quelle
Für einen Server mit 16 CPUs können Sie die folgenden Optionen ausprobieren: -threads 16 -slices 16 -cpu-used -4
quelle