Czy możliwe jest uruchamianie zadań na wielu procesorach lub wątkach, aby przyspieszyć avconv?
Czy trwa funkcja, jeśli nie, to dlaczego?
Czy możliwe jest uruchamianie zadań na wielu procesorach lub wątkach, aby przyspieszyć avconv?
Czy trwa funkcja, jeśli nie, to dlaczego?
Odpowiedzi:
Jesteś po -threads opcją avconv. Najbezpieczniejszym ustawieniem byłoby:
-threads auto
ale możesz również ustawić tam liczbę całkowitą, jeśli chcesz trochę poeksperymentować. Współczesny FFmpeg (obecnie standard w Ubuntu) ustawia to auto
domyślnie, jak widać w tej sekcji stron podręcznika „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.
Uwaga 2 ważne punkty:
Jeśli wykonujesz transkodowanie audio wielu plików, skorzystaj z GNU Parallel. Będzie pobierał listę plików jako dane wejściowe i przetwarzał je równolegle w zależności od liczby rdzeni w systemie. Na przykład, tutaj jest przykład bash, który konwertuje muzykę do formatu audio opus równolegle za pomocą 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