web-dev-qa-db-fra.com

Encodage multicœur avec VP9 FFmpeg

Je souhaite commencer à utiliser le format WebM et le codec VP9 pour mes vidéos YouTube. Je sais qu’une bonne compression entraîne une vitesse lente, mais FFmpeg n’utilise qu’un de mes 8 cœurs. J'ai essayé d'utiliser -threads 8 dans ma commande, mais FFmpeg semble l'ignorer. D'après ce que j'ai lu, le codeur VP9 devrait prend en charge plusieurs threads. Que puis-je faire pour que cela fonctionne?

FFmpeg version 2.7.2-1build1
libvpx1 version 1.3.0-3ubuntu1
libvpx2 version 1.4.0-4

Commande utilisée:

ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 10 -b:v 5000k -c:a libvorbis output.webm

Pendant que nous y sommes, ai-je besoin des deux packages libvpx installés? libvpx2 a l'icône Ubuntu à côté dans Synaptic, alors je suppose que l'autre est un reliquat de la mise à niveau vers 15.10?

7
SuperSluether

Merci pour l'info sur l'ordre des options @ bodhi.zazen et @LordNeckbeard. Apparemment, l'encodeur libvpx est un peu plus difficile à cet égard. Quand j'ai ajouté l'option -threads après -c: v libvpx, il utilise visiblement plus de cœurs selon top.

-threads 0 utilise seulement 1 cœur, -threads 8 utilise 2 cœurs et -threads 16 utilise 4 cœurs. J'ai essayé d'utiliser un nombre plus élevé, mais l'encodeur indique que plus de 16 threads n'est pas recommandé et n'utilise plus de processeur. La vitesse d'encodage elle-même est environ deux fois plus rapide maintenant. Merci encore pour votre aide!

4
SuperSluether

Pour un serveur avec 16 processeurs, vous pouvez essayer ces options: -threads 16 -slices 16 -cpu-used -4

0
sampah123