Est-il possible d'exécuter des travaux sur plusieurs processeurs ou threads pour accélérer avconv?
Y a-t-il une fonctionnalité en cours, sinon je me demande pourquoi?
Est-il possible d'exécuter des travaux sur plusieurs processeurs ou threads pour accélérer avconv?
Y a-t-il une fonctionnalité en cours, sinon je me demande pourquoi?
Réponses:
Vous recherchez l' option -threads d'avconv. Le réglage le plus sûr serait:
-threads auto
mais vous pouvez également y définir un entier si vous voulez expérimenter un peu. Un FFmpeg moderne (maintenant le standard dans Ubuntu) définit cela auto
par défaut comme on le voit dans cette section des pages de manuel 'ffmpeg-all':
threads integer (decoding/encoding,video)
Set the number of threads to be used, in case the selected
codec implementation supports multi-threading.
Possible values:
auto, 0
automatically select the number of threads to set
Default value is auto.
Remarque 2 points importants:
Si vous effectuez un transcodage audio de nombreux fichiers, essayez d'utiliser GNU Parallel. Il prendra une liste de fichiers en entrée et les traitera en parallèle en fonction du nombre de cœurs de votre système. Par exemple, voici un exemple bash qui convertira la musique au format audio opus en parallèle en utilisant ffmpeg.
find ./* -depth -type f -name \*.ogg -o -name \*.flac -o -name \*.m4a -o -name \*.mp3 -o -name \*.ogg | parallel -j+0 --gnu nice -n 19 ffmpeg -i "{}" -acodec libopus "{.}.opus" -loglevel quiet