Solución de la comunidad

Cómo solucionar el alto uso de CPU durante la transcodificación 4K de Jellyfin en ZimaOS

An Intel N100 Jellyfin case where enabling hardware acceleration made one 4K transcode playable, but CPU usage remained at 95–98% and iGPU use was not conclusively verified.

Un usuario de ZimaOS que ejecutaba Jellyfin en un sistema Intel N100 con 16 GB de RAM informó de una diferencia clara en el comportamiento de reproducción: el contenido de hasta 1080p funcionaba con normalidad, pero una transmisión 4K que requería transcodificación elevaba el uso de la CPU al 100 % y se volvía demasiado entrecortada para verla. Jellyfin se ejecutaba con redes Host y el servidor no tenía una GPU dedicada.

El debate de la comunidad no produjo una solución final única y confirmada. En su lugar, se convirtió en una investigación práctica sobre la transcodificación por software, los gráficos integrados de Intel, VA-API, la compatibilidad de códecs, el mapeo de tonos HDR y el lugar correcto para verificar si había una transcodificación activa. Con el tiempo, el usuario original activó la aceleración por hardware y pudo reproducir una transmisión transcodificada, aunque el uso de la CPU se mantuvo alrededor del 95–98 %.

El problema original de transcodificación 4K de Jellyfin

El servidor utilizaba un procesador Intel N100 y 16 GB de memoria. Jellyfin funcionaba como servidor multimedia local y su tipo de red de Docker estaba configurado como Host. La reproducción normal en 1080p no presentaba problemas.

El fallo solo aparecía cuando un archivo 4K requería transcodificación. En ese momento, el uso del procesador alcanzaba el 100 %, la reproducción entrecortaba y la transmisión resultaba prácticamente imposible de ver. Por ello, el usuario quería saber qué ajustes de Jellyfin podían mejorar el rendimiento de la transcodificación sin una tarjeta gráfica dedicada.

Esta diferencia entre 1080p y 4K se convirtió en la pista central de las respuestas. Los miembros de la comunidad se centraron menos en la red y la memoria, y más en qué estaba convirtiendo Jellyfin, si los gráficos integrados del N100 estaban involucrados y si el cliente seleccionado podía reproducir directamente el formato de origen.

Por qué la compatibilidad entre códecs y clientes entró en el debate

goultron describió la transcodificación 4K en un sistema de la clase N100 como una carga de trabajo exigente, especialmente cuando el servidor recurre a la CPU. Su propio enfoque consistía en evitar mantener una biblioteca 4K y preferir contenido H.264, ya que se reproduce directamente en una gama más amplia de dispositivos.

La respuesta también destacó un punto práctico importante: incluso un vídeo H.264 puede requerir algún tipo de conversión. El dispositivo receptor, los formatos de audio compatibles y la velocidad de red disponible pueden afectar a la ruta de reproducción final. goultron sospechaba que la conversión de audio era la responsable de que algunas transmisiones siguieran usando transcodificación pese a utilizar vídeo H.264.

Lo contrastaron con gran parte del contenido 4K disponible, que suele utilizar H.265/HEVC. Algunos dispositivos de reproducción y televisores más pequeños quizá no admitan directamente todos los perfiles de H.265. En esos casos, Jellyfin debe convertir la fuente para el cliente, devolviendo la carga de trabajo al servidor.

Diagnóstico principal de gelbuilding: comprueba primero la iGPU del N100

gelbuilding consideró que el comportamiento del N100 era el esperado si Jellyfin estaba realizando una transcodificación 4K por software. Su explicación era sencilla: esta carga de trabajo puede llevar una CPU pequeña a una utilización del 100 %, lo que explica la reproducción fluida original en 1080p y la transcodificación 4K inutilizable.

La primera comprobación propuesta era determinar si Jellyfin estaba utilizando realmente el motor multimedia de Intel integrado en el N100. El N100 no necesita una tarjeta gráfica independiente para exponer una iGPU, pero Jellyfin debe tener activada la aceleración por hardware y poder acceder a ese dispositivo desde su contenedor.

La ruta de configuración compartida en la respuesta era:

  1. Abre la interfaz de administración de Jellyfin.
  2. Abre Reproducción.
  3. Abre Transcodificación.
  4. Activa la aceleración por hardware.
  5. Selecciona VA-API para la configuración mencionada en el hilo.

El resultado esperado era que el procesamiento dejara de realizarse mediante software en la CPU y pasara a la iGPU de Intel. gelbuilding también advirtió que no se podía esperar que la iGPU del N100 convirtiera sin problemas cualquier fuente 4K. En concreto, identificó algunos archivos HEVC con una tasa de bits alta como cargas de trabajo que aún podrían recurrir al procesamiento por software.

La comunidad corrigió dónde comprobar VA-API

La respuesta inicial sugería comprobar en Panel → Actividad si aparecía una etiqueta VA-API para H.264 o HEVC. goultron probó ese consejo en Jellyfin 10.10.7 y descubrió que la página Actividad solo mostraba eventos como VideoPlayback y VideoPlaybackStopped.

gelbuilding corrigió entonces la instrucción. No se esperaba que la página Actividad mostrara si la transcodificación utilizaba VA-API o software. La información pertinente debía comprobarse mientras la transmisión 4K se transcodificaba activamente en:

  1. Panel
  2. Reproducción
  3. Transcodificación

La sesión activa debería mostrar una línea debajo del códec. Una etiqueta VA-API indica que participa la aceleración por hardware; una etiqueta Software indica que la conversión la realiza la CPU. Si el área de transcodificación está vacía, es posible que el archivo se esté reproduciendo o transmitiendo directamente, lo que significa que no se está realizando ninguna transcodificación de vídeo activa.

Por qué btop no dio una respuesta clara en el hilo

goultron también intentó verificar la actividad de la iGPU mediante btop. La iGPU de Intel no aparecía claramente en el área de GPU, aunque esa misma iGPU ya se había asignado correctamente a Frigate y Frigate mostraba que estaba utilizando el dispositivo.

gelbuilding respondió que, en este contexto de ZimaOS, btop mostraba principalmente las GPU dedicadas y, por ello, podría no mostrar la iGPU de Intel aunque estuviera activa. Por ese motivo, recomendó considerar la vista de Transcodificación activa de Jellyfin como método de confirmación directa.

Zima-Jerry añadió más tarde que se podía utilizar btop para observar el uso de la GPU. Estas dos afirmaciones no se conciliaron antes de que terminara el debate. Por tanto, el hilo de la comunidad respalda el uso de btop como herramienta de observación adicional, pero no como única prueba; la información de transcodificación activa de Jellyfin sigue siendo necesaria para identificar si se está utilizando VA-API o procesamiento mediante software.

Configuración de asignación de tonos HDR de Zima-Jerry

Zima-Jerry enlazó otra configuración de la comunidad centrada en la aceleración por hardware y la asignación de tonos HDR de Jellyfin en el Intel N100. En ese caso anterior, se informó de que la versión de Jellyfin disponible entonces en la App Store tenía un problema de conversión de tonos de color.

La alternativa sugerida era la imagen de contenedor de Jellyfin de nyanmisaka junto con una configuración YAML personalizada. Esta era una solución alternativa de la comunidad vinculada a las versiones de Jellyfin y ZimaOS utilizadas en ese momento, por lo que debe compararse con la versión actual de la App Store antes de sustituir una instalación existente.

Configuración de aceleración por hardware y transcodificación de Jellyfin compartida para un sistema con Intel N100
Captura de pantalla de la comunidad: configuración de transcodificación de Jellyfin compartida por Zima-Jerry.
Opciones adicionales de asignación de tonos HDR y aceleración por hardware de Jellyfin compartidas por Zima-Jerry
Captura de pantalla de la comunidad: opciones adicionales de aceleración por hardware y asignación de tonos HDR.

El resultado compartido en esa publicación relacionada no fue una transcodificación 4K ilimitada. Zima-Jerry estimó que los gráficos integrados del N100 podían convertir sin problemas vídeo Dolby Vision a aproximadamente 4K a 30 fps o menos en la configuración probada.

Resultado de reproducción de Jellyfin después de aplicar la configuración de transcodificación por hardware para Intel N100 compartida por la comunidad
Captura de pantalla de la comunidad: resultado de reproducción mostrado después de aplicar la configuración personalizada.

Qué cambió después de que el usuario original activara la aceleración por hardware

Tras revisar las respuestas, Heimwerkerking activó la aceleración por hardware para la transcodificación. Esto produjo una mejora significativa: al menos una secuencia transcodificada pasó a poder reproducirse.

La información de reproducción activa que se mostraba en el panel era 48,7 Mbps MP4 H264 AAC. Sin embargo, el uso de la CPU se mantuvo entre el 95 % y el 98 %, por lo que el usuario seguía sin estar seguro de si la iGPU de Intel estaba realizando realmente la conversión de vídeo.

Este resultado no demostró que el problema se hubiera resuelto por completo. Mostró que el cambio de configuración mejoró la reproducción, pero el hilo seguía sin una etiqueta VA-API confirmada, un resultado completo de FFmpeg o una lectura de la iGPU conciliada. La respuesta final volvió a sugerir observar el uso de la GPU con btop y no se publicó ninguna confirmación posterior.

Lo que esta discusión de la comunidad demuestra realmente

La discusión respalda firmemente la transcodificación 4K por software como la primera explicación de que un N100 alcance el 100 % de CPU. También establece una ruta de verificación corregida: inicia una transcodificación 4K e inspecciona la sesión activa en el área de Reproducción y Transcodificación de Jellyfin, en lugar del historial de Actividad.

Las respuestas añaden varios límites relacionados con la carga de trabajo. La compatibilidad del cliente con H.265, la conversión de audio, una tasa de bits de fuente elevada, el mapeo tonal HDR y el contenedor específico de Jellyfin pueden cambiar el resultado. La activación de VA-API mejoró la capacidad del usuario original para reproducir una transmisión transcodificada, pero el uso de CPU siguió siendo elevado.

El hilo no establece un número universal de transmisiones para el N100 ni demuestra que sea necesaria una GPU Intel Arc. gelbuilding presentó dos posibles pasos siguientes para los usuarios que aún necesitan una conversión 4K estable: reducir la tasa de bits de la fuente o añadir una GPU Intel Arc pequeña. La discusión terminó antes de que el autor original probara cualquiera de las dos opciones.

Preguntas frecuentes de la discusión de la comunidad

¿Por qué funcionaba 1080p mientras la transcodificación 4K sufría interrupciones?

La comunidad atribuyó la diferencia a la carga de trabajo de software mucho más pesada que se genera cuando el archivo 4K requiere conversión. El N100 original alcanzó la utilización total de la CPU durante ese proceso.

¿Dónde debe comprobarse VA-API en Jellyfin?

Inicia una transmisión 4K que fuerce la transcodificación y, después, inspecciona la sesión activa en Panel, Reproducción y Transcodificación. Se mostró que el historial de eventos de Actividad no proporcionaba la etiqueta VA-API o Software necesaria.

¿Qué significa que la vista de transcodificación activa esté vacía?

Según la corrección de gelbuilding, puede significar que el archivo se está reproduciendo directamente o transmitiendo directamente, y que no hay ninguna transcodificación de video activa en ese momento.

¿La activación de la aceleración por hardware resolvió completamente el caso?

No. Hizo reproducible una transmisión transcodificada, pero la carga de CPU indicada se mantuvo en el 95–98 % y el hilo terminó sin una confirmación final de que la iGPU gestionara toda la canalización.

¿Qué opciones sugirió la comunidad si la reproducción 4K seguía siendo inestable?

Las respuestas sugirieron priorizar, cuando fuera práctico, contenido multimedia H.264 compatible, reducir la tasa de bits de la fuente 4K, probar la configuración personalizada de Jellyfin compartida por Zima-Jerry o añadir una GPU Intel Arc pequeña para disponer de una ruta de transcodificación por hardware más capaz.