FFMPEG y aceleración por hardware - guía de capacidades

Aquí tienes la guía definitiva de los desarrolladores de FFMPEG sobre el soporte realmente complicado de aceleración por hardware disponible en el FFMPEG actual (versión 6, a mediados de 2023).

Ten en cuenta que con MCEBuddy, hay una versión independiente de FFMPEG utilizada por MCEBuddy para la transcodificación. Nótese que esto, por definición, significa que hay una operación de decodificación en curso con la salida yendo directamente a una operación de codificación. Y no siempre está claro si alguna de ellas está utilizando la GPU o no, y son cosas completamente separadas.

Como alternativa, MCEBuddy puede usar Handbrake para esto. Sin embargo, Handbrake tiene su propia versión de FFMPEG integrada y no utilizará el FFMPEG separado.

Lo mismo aplica a Comskip, también tiene su propia versión de FFMPEG integrada que utiliza. Comskip solo hace decodificación. Así que si tu Comskip no está usando aceleración por GPU, puede que no sea posible, o podría ser que la decodificación por CPU sea igual de rápida - ese es el punto con la reproducción (decodificación).

Entonces, en general, no es simple ni claro saber exactamente qué características está soportando o es capaz cada versión separada de FFMPEG o incluso si MCEBuddy puede invocar las opciones apropiadas - como cuando se usa la última versión de Comskip para donantes, las opciones de GPU nVidia solo pueden ser invocadas manualmente en la línea de comandos. Y las opciones no existen en la versión de donante que viene con MCEBuddy.

Así que recomiendo mirar cuidadosamente la guía de desarrolladores de Hwaccel de FFMPEG, saber qué CPU y GPU tienes, qué codecs (¡también decodificar - no solo codificar!) estás usando para realmente entender qué significa esa opción “hwaccel” - qué hace y más importante qué no hace, y ajustar las expectativas en consecuencia.

Lo que funciona en un servidor puede no funcionar igual en un servidor diferente con diferentes CPUs y GPUs y Sistemas Operativos. Así que, YMMV.

Gracias por compartir esta información y consejos sobre las capacidades de aceleración por hardware de FFMPEG y su uso en diferentes aplicaciones como MCEBuddy, Handbrake y Comskip. Has destacado la complejidad y variabilidad en el soporte de aceleración por hardware, dejando claro que la efectividad de estas características puede variar dependiendo del hardware específico, códecs y versiones de software que se estén utilizando.

Una cosa interesante aquí es que MCEBuddy analizará automáticamente las capacidades de las tarjetas gráficas/controladores e intentará adaptar la aceleración por hardware (por separado para codificación y decodificación) a las capacidades del sistema y a los códecs involucrados en el perfil (personalizado o predeterminado, incluyendo el manejo de múltiples tarjetas gráficas).
Si no estás satisfecho con la opción plug and play, aún tienes la posibilidad de crear perfiles altamente personalizados que estén ajustados a la aceleración por hardware de tu sistema, que MCEBuddy no intentará optimizar más. Consulta el tema de comandos avanzados para más detalles, específicamente la opción UsingHardwareEncoding sobre cómo crear dichos perfiles personalizados.