¿Es posible ejecutar trabajos en múltiples procesadores o subprocesos para acelerar avconv?
¿Hay alguna característica en progreso? Si no, me pregunto por qué.
¿Es posible ejecutar trabajos en múltiples procesadores o subprocesos para acelerar avconv?
¿Hay alguna característica en progreso? Si no, me pregunto por qué.
Respuestas:
Está buscando la opción -threads de avconv. La configuración más segura sería:
-threads auto
pero también puede establecer un número entero allí si desea experimentar un poco. Un FFmpeg moderno (ahora el estándar en Ubuntu) establece esto auto
de manera predeterminada, como se ve en esta sección de las páginas del 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 puntos importantes:
Si está haciendo una transcodificación de audio de muchos archivos, considere usar GNU Parallel. Tomará una lista de archivos como entrada y los procesará en paralelo según la cantidad de núcleos en su sistema. Por ejemplo, aquí hay un ejemplo bash que convertirá la música al formato opus audio en 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