Ist es möglich, Jobs auf mehreren Prozessoren oder Threads auszuführen, um avconv zu beschleunigen?
Ist eine Funktion in Bearbeitung, wenn nicht, frage ich mich warum?
Ist es möglich, Jobs auf mehreren Prozessoren oder Threads auszuführen, um avconv zu beschleunigen?
Ist eine Funktion in Bearbeitung, wenn nicht, frage ich mich warum?
Antworten:
Sie sind nach der -threads Option von avconv. Die sicherste Einstellung wäre:
-threads auto
Sie können dort aber auch eine Ganzzahl festlegen, wenn Sie ein wenig experimentieren möchten. Ein modernes FFmpeg (jetzt der Standard in Ubuntu) legt dies auto
standardmäßig fest, wie in diesem Abschnitt der 'ffmpeg-all'-Manpages gezeigt:
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.
Anmerkung 2 wichtige Punkte:
Wenn Sie viele Dateien mit Audio transkodieren, sollten Sie GNU Parallel verwenden. Es wird eine Liste von Dateien als Eingabe verwendet und diese basierend auf der Anzahl der Kerne in Ihrem System parallel verarbeitet. Hier ist zum Beispiel ein Bash-Beispiel, das Musik parallel mit ffmpeg in das Opus-Audioformat konvertiert.
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