Lanzamiento de Jellyfin - v10.6.0
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Tras meses de trabajo, llega otra versión colosal con más de 30 mejoras significativas y toneladas de correcciones.
Con más de 500 pull requests fusionados entre el servidor y el cliente web, Jellyfin 10.6.0 trae una cantidad increíble de nuevas funciones, mejoras y correcciones de errores. Es un lanzamiento enorme y tenemos mucho que cubrir, ¡así que empecemos!
Otros servicios han lanzado recientemente varias formas de ver contenido con amigos. En la situación global actual, esto tiene mucho sentido, y Jellyfin no se queda atrás.
Nos enorgullece anunciar la función estrella de Jellyfin 10.6: SyncPlay.
SyncPlay te permite crear salas a las que otros usuarios o clientes pueden unirse para compartir una experiencia de visualización común. No hay límite en el número de usuarios por sala, y puedes unirte a la misma sala con el mismo usuario desde múltiples clientes.
Gracias al colaborador primerizo OancaAndrei, quien envió pull requests tanto al servidor como al cliente web (jf#2733, jf-web#1011) para sentar las bases de esta función, ahora puedes ver películas con amigos y familiares desde la comodidad de sus respectivos hogares.
Se espera que la función mejore en futuras versiones de Jellyfin, pero ya ha sido utilizada por múltiples usuarios durante el ciclo de desarrollo, con un retraso entre clientes de solo unos milisegundos.
Migración a Entity Framework Core
Llevaba tiempo en nuestros planes, pero gracias al nuevo miembro del equipo barronpm, ¡por fin podemos decir que la reescritura de nuestro modelo de base de datos avanza a buen ritmo!
Anteriormente, Jellyfin usaba una combinación de bases de datos SQLite (sí, varias), archivos XML y código espagueti en C# para operaciones de base de datos. La información estaba fragmentada en múltiples lugares, a veces incluso duplicada, y generalmente se filtraba en C# en lugar de usar el procesamiento más rápido del motor de base de datos.
Durante este ciclo, barronpm ha estado descifrando y desenredando este lío, logrando migrar con éxito ActivityDB (jf#2970) y UserDB (jf3148) a EF Core.
Aunque aún queda camino por recorrer, EF Core debería traer consultas más rápidas, soporte para múltiples motores de bases de datos, código más limpio y un uso de memoria significativamente reducido. Actualmente, aún existe un puente para conectar las nuevas bases de datos EF Core con el código existente, que se limpiará más adelante.
Parte de la mejora en el uso de memoria se debe a que nuestro ORM personalizado heredado actual almacena todo en memoria para compensar su lentitud. Para bases de datos grandes, esto podría resultar en cientos de megabytes de memoria perdidos en caché. Con EF Core, sin embargo, dejamos el trabajo pesado al motor de la base de datos, lo que lleva a mejores tiempos de respuesta y menor uso de memoria en general.
Tus bases de datos se migrarán automáticamente cuando inicies Jellyfin 10.6 por primera vez. Aunque el proceso de migración ha sido bien probado en los últimos meses, pueden surgir problemas durante el proceso. Para prevenir pérdida de datos, por favor haz una copia de seguridad de tus archivos de datos existentes antes de comenzar la migración.
Un cliente web más moderno
Nuestro cliente web ha acumulado durante mucho tiempo una enorme deuda técnica, debido a que el proyecto del cual hicimos fork solo proporcionaba versiones minimizadas del código fuente y utilizaba tecnologías web anticuadas. Hasta hace poco, estas tecnologías obsoletas nos impedían utilizar herramientas modernas de JavaScript que nos permitirían limpiar significativamente el código fuente.
Afortunadamente, esto ya quedó atrás gracias a que MrTimscampi mejoró nuestro proceso de construcción del cliente web implementando Gulp para realizar diversas tareas necesarias con herramientas modernas (jf-web#862). Esto nos permite usar JavaScript de vanguardia gracias a Babel, además de simplificar enormemente el soporte para clientes heredados (especialmente versiones antiguas de WebOS y Tizen).
Entre los beneficios de esta migración a Gulp, hemos comenzado a abandonar RequireJS para adoptar los estándares de Módulos EcmaScript, gracias al trabajo de Camc314, cromefire, Delgan, dkanada, grafixeyehero, MrTimscampi y sarab97.
Este cambio radical, una vez completado, nos permitirá simplificar el proceso de construcción del cliente web, lo que a su vez facilitará nuestra migración a Vue y mejorará significativamente la organización del código. También debería traer mejoras de rendimiento notables en el futuro, al abordar la deuda técnica y eliminar prácticas y bibliotecas obsoletas.
Rendimiento del servidor, corrección de errores y mejoras de red
Nuestro experto en rendimiento de C#, Bond-009, continúa su misión de eliminar advertencias del código fuente del servidor y mejorar su rendimiento general, corrigiendo múltiples errores en el proceso.
mark-monteiro trabajó en varias correcciones para la versión 10.6, incluyendo la reestructuración de los ajustes de red accesibles desde el panel de administración (jf#2774, jf-web#1140).
El miembro del equipo nyanmisaka, con ayuda de artiume, aporta numerosas mejoras a la transcodificación (jf#2809, jf-web#1046, jf#2821, jf#2715), incluyendo alternadores de formato, opciones para desactivar la transcodificación de vídeos HEVC y VP9 de 10 bits para GPUs antiguas, soporte para decodificadores VP8/VP9 QSV y NVDEC en FFmpeg 4.3, mejor soporte para subtítulos UTF-16 y otras mejoras.
Otros cambios en el servidor incluyen correcciones para problemas de metadatos en colecciones (jf#3117), mejoras en los proveedores de metadatos (jf#3071, jf#3056, jf#3289), y más proveedores principales trasladados a complementos (jf#3208).
Más mejoras en el cliente web
Itegulov y dkanada han mejorado el soporte para libros electrónicos añadiendo un lector EPUB basado en epub.js (jf-web#1263). El soporte para más formatos de lectura está en desarrollo para futuras versiones, incluyendo CBZ/CBR y PDF.
Al utilizar la nueva pantalla de detalles de la versión 10.5 durante los últimos meses, notamos posibles mejoras en la experiencia. El miembro del equipo MrTimscampi, con aportes del resto del equipo web y algunos usuarios, realizó una segunda revisión de esta pantalla (jf-web#949, jf-web#1206), optimizando el diseño y solucionando problemas visuales. Delgan añadió los toques finales evitando saltos en el contenido al renderizar los selectores de pistas (jf-web#1406).


El miembro del equipo ferferga y el colaborador samuel9554 han trabajado en rediseñar nuestra experiencia musical. Para la versión 10.6, renovaron la interfaz del reproductor musical móvil e implementaron cambios significativos en el mini-reproductor y la interfaz de control remoto (jf-web#1056, jf-web#1430).


MrTimscampi también rediseñó el sistema de carga de imágenes (jf-web#1065), solucionando problemas visuales y mejorando el uso de memoria al descargar imágenes fuera de vista. Complementando esta mejora, ferferga, GranPC, JustAMan y Bond-009 implementaron soporte para marcadores de posición Blurhash tanto en el servidor como en el cliente web, aportando mayor refinamiento visual a la interfaz.
JustAMan revisó nuestro nuevo sistema de renderizado de subtítulos SSA/ASS y mejoró significativamente el rendimiento para subtítulos con efectos complejos (jf-web#1144, jf-web#1095, jf-web#1048, jf-web#1005). Si bien aún consideramos esta función experimental, ahora debería renderizar la mayoría de subtítulos con precisión y buen rendimiento.
Otras mejoras en el cliente web incluyen un visor de imágenes rediseñado (jf-web#967), una opción para configurar el número de elementos por página en bibliotecas (jf-web#983), un interruptor para la versión nightly del cliente Chromecast (jf-web#1242), y soporte para múltiples repositorios de plugins (jf-web#1393, jf#3244).
Patrocinadores de Patreon y GitHub
Con el aumento de actividad en el proyecto, queremos destacar algunas formas de apoyar a las personas que trabajan diariamente en Jellyfin.
Queremos recalcar que, aunque algunos de nuestros colaboradores aceptan donaciones económicas de forma individual, Jellyfin y sus funciones nunca estarán ocultas detrás de un muro de pago. Apoyar económicamente a los desarrolladores es completamente voluntario y no le dará acceso exclusivo a funciones ni a soporte, ni cambiará la prioridad de sus solicitudes de características o problemas.
anthonylavado, nuestra maravillosa persona de relaciones con desarrolladores y PR, acepta donaciones a través de GitHub Sponsors.
barronpm, cuyo trabajo principal está en la parte del servidor de Jellyfin y quien ha liderado la migración a EF Core, abrió recientemente una página de Patreon.
dkanada, cuyo trabajo abarca desde el servidor hasta el cliente web, acepta donaciones mediante Github Sponsors
ferferga, colaborador del cliente web, entusiasta de la localización y persona increíble en todos los aspectos, acepta donaciones a través de Github Sponsors.
nielsvanvelzen, quien ha trabajado arduamente en el cliente para Android TV, puede recibir apoyo en Github Sponsors.
MrTimscampi, cuyo trabajo principal ha sido limpiar y modernizar el cliente web, también abrió recientemente una página de Patreon.
oddstr13, uno de los desarrolladores de Jellyfin para Kodi, también acepta donaciones en Github Sponsors.
thornbill, quien gestiona los clientes de iOS y Android, y también contribuye al cliente de Android TV, puede recibir apoyo en Github Sponsors
Colaboradores
Como nota final, nos gustaría agradecer a todos los colaboradores que trabajaron para hacer de Jellyfin 10.6 una realidad: