É possível executar trabalhos em vários processadores ou threads para acelerar o avconv?
Existe algum recurso em andamento, se não me pergunto por quê?
É possível executar trabalhos em vários processadores ou threads para acelerar o avconv?
Existe algum recurso em andamento, se não me pergunto por quê?
Respostas:
Você está após o -threads opção de avconv. A configuração mais segura seria:
-threads auto
mas você também pode definir um número inteiro lá se quiser experimentar um pouco. Um FFmpeg moderno (agora o padrão no Ubuntu) define isso auto
por padrão, como visto nesta seção das páginas de manual '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 pontos importantes:
Se você estiver fazendo transcodificação de áudio de muitos arquivos, consulte o GNU Parallel. Ele receberá uma lista de arquivos como entrada e os processará em paralelo, com base no número de núcleos em seu sistema. Por exemplo, aqui está um exemplo do bash que converterá música no formato opus audio em paralelo 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