È possibile eseguire lavori su più processori o thread per accelerare avconv?
C'è una funzione in corso, se non mi chiedo perché?
È possibile eseguire lavori su più processori o thread per accelerare avconv?
C'è una funzione in corso, se non mi chiedo perché?
Risposte:
Stai cercando l' opzione -threads di avconv. L'impostazione più sicura sarebbe:
-threads auto
ma puoi anche impostare un numero intero lì se vuoi sperimentare un po '. Un moderno FFmpeg (ora lo standard in Ubuntu) imposta questo auto
per impostazione predefinita, come si vede in questa sezione delle pagine man '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.
Nota 2 punti importanti:
Se stai eseguendo la transcodifica audio di molti file, cerca di usare GNU Parallel. Prenderà un elenco di file come input e li elaborerà in parallelo in base al numero di core nel sistema. Ad esempio, ecco un esempio bash che convertirà la musica nel formato audio opus in parallelo usando 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