Comparativa

Comparativas

Jellyfin vs Plex: ¿qué servidor multimedia autoalojado?

Las suscripciones de streaming se acumulan y usted pierde el control de su mediateca. Alojar Jellyfin o Plex en un VPS cuesta una fracción de esas suscripciones y le convierte en propietario de cada archivo. Esta guía compara ambos servidores en todos los criterios que importan, le acompaña paso a paso en el despliegue y cubre los errores más frecuentes — incluida la migración a Jellyfin 12, publicado en septiembre de 2026, que introduce cambios incompatibles con versiones anteriores.

9 min de lectura8 pasos
Contenido· Por qué alojar su servidor multimedia en un VPS1/6
  1. 01Por qué alojar su servidor multimedia en un VPS
  2. 02Lo que gana alojándolo usted mismo
  3. 03Requisitos para un VPS media-server
  4. 04Desplegar Jellyfin (o Plex) con Docker y reverse proxy
  5. 05Jellyfin 12: qué cambia y cómo migrar
  6. 06Solución de problemas: los errores más frecuentes

Por qué alojar su servidor multimedia en un VPS

Un media-server autoalojado en un VPS le convierte en propietario de su catálogo: películas, series, música y fotos siguen accesibles por HTTPS desde el navegador, una Smart TV o un móvil, sin cuota impuesta ni análisis de sus hábitos.

A diferencia de una máquina doméstica, el VPS dispone de un ancho de banda de subida estable, indispensable para el streaming a distancia, de una IP fija para configurar un dominio y de una disponibilidad 24/7 sin sobrecoste de electricidad. Su mediateca ya no depende de la conexión ni del hardware de su casa.

Jellyfin es totalmente libre (licencia GPL) y no tiene ninguna función de pago; Plex ofrece una experiencia de cliente más pulida, pero reserva la transcodificación por hardware a Plex Pass y, desde el 29 de abril de 2025, la reproducción remota de sus vídeos personales a Plex Pass o Remote Watch Pass. La elección se juega, por tanto, entre libertad total y comodidad preconfigurada.

Lo que gana alojándolo usted mismo

  • Acceso remoto en HTTPS sin pasar por un relé externo ni exponer sus contenidos a un tercero
  • Sin límite de cuentas, de flujos simultáneos ni de tamaño de la biblioteca
  • Transcodificación al vuelo gobernada por sus propios recursos de VPS (CPU o GPU)
  • Subtítulos, metadatos y carátulas recuperados automáticamente y almacenados en su servidor
  • Con Jellyfin: cero funciones de pago, sin telemetría, código fuente auditable
  • Copia de seguridad y migración triviales: todo cabe en un volumen Docker y una carpeta media
  • Soporte DLNA (mediante el plugin oficial de Jellyfin) para transmitir a televisores y reproductores de red sin cliente dedicado

Requisitos para un VPS media-server

Para el streaming directo (remux sin recodificación) basta con un VPS de 2 vCPU y 2 GB de RAM. En cuanto active la transcodificación por software de un flujo 1080p, cuente con 4 vCPU y 4 GB; para varios flujos 4K simultáneos, apunte a entre 6 y 8 vCPU. La transcodificación por hardware (QSV, NVENC) sigue siendo poco habitual en un VPS compartido: dé prioridad a archivos ya compatibles con sus clientes para mantenerse en Direct Play.

En cuanto al almacenamiento, prevea un volumen generoso e, idealmente, un disco rápido para los metadatos. Necesita Docker y Docker Compose instalados, un subdominio (por ejemplo, media.your-domain.com) apuntando a la IP del VPS y un reverse proxy para el TLS.

Desplegar Jellyfin (o Plex) con Docker y reverse proxy

  1. Preparar el árbol de directorios y los volúmenes

    En el VPS, cree mkdir -p /srv/jellyfin/{config,cache} y una carpeta media /srv/media/{films,series,musique}. Estas rutas se montarán como volúmenes para persistir la configuración y separar claramente los contenidos de la base de datos.

  2. Redactar el docker-compose.yml

    Declare el servicio jellyfin/jellyfin (o plexinc/pms-docker), monte ./config, ./cache y /srv/media en solo lectura, y exponga el puerto 8096 (Jellyfin) o 32400 (Plex) únicamente en local: 127.0.0.1:8096:8096. El reverse proxy se encargará de la exposición pública.

  3. Arrancar el contenedor

    Ejecute docker compose up -d y luego siga docker compose logs -f. Acceda al asistente mediante un túnel SSH ssh -L 8096:127.0.0.1:8096 user@vps para crear la cuenta de administrador antes de cualquier exposición pública.

  4. Configurar la transcodificación

    En la interfaz de Jellyfin, en Panel de control → Reproducción → Transcodificación, conserve la ruta de transcodificación predeterminada (/cache/transcodes en la imagen oficial): esos archivos temporales no deben estar en ./config, que usted respalda. Si su VPS tiene CPU limitada, priorice el Direct Play y, en el perfil de cada usuario (Panel de control → Usuarios), retire el permiso de reproducir vídeo que requiera transcodificación: los archivos incompatibles fallarán en vez de saturar el servidor. En Plex, la opción equivalente, «Disable video stream transcoding», está en Configuración → Servidor → Transcodificador.

  5. Implantar el reverse proxy y el SSL

    Configure Caddy o Nginx para hacer de proxy de media.your-domain.com hacia 127.0.0.1:8096. Con Caddy bastan dos líneas y el certificado Let's Encrypt es automático; no olvide retransmitir las cabeceras WebSocket para la reproducción en tiempo real. Atención con Jellyfin 12: los prefijos heredados /emby/ y /mediabrowser/ han sido eliminados — si configuró su reverse proxy sobre esas rutas, actualícelo para apuntar a la raíz /.

  6. Asegurar el acceso con la autenticación de Jellyfin

    Jellyfin gestiona la autenticación de forma nativa: exija contraseñas largas y, en el perfil de cada usuario (Panel de control → Usuarios), fije el número máximo de intentos de inicio de sesión fallidos antes del bloqueo. Para Plex detrás de un reverse proxy, declare la URL pública en Configuración → Servidor → Red («Custom server access URLs»); la reproducción remota de sus vídeos exige además un Plex Pass en la cuenta de administrador del servidor, o un Remote Watch Pass en la cuenta de cada espectador. No abra nunca el puerto 8096 ni el 32400 directamente en el cortafuegos: solo los puertos 80/443 deben ser accesibles.

  7. Indexar sus bibliotecas

    En la interfaz, añada las carpetas /media/films y /media/series, elija el agente de metadatos y lance el escaneo. Compruebe que un archivo se reproduce en Direct Play desde un cliente externo para confirmar que el proxy y los códecs son correctos.

  8. Hacer copia de seguridad de la configuración

    La copia de seguridad de Jellyfin se reduce a dos elementos: la carpeta ./config (base de datos, plugins, preferencias) y sus archivos media. Automatice un tar -czf jellyfin-config-$(date +%Y%m%d).tar.gz ./config diario y sincronícelo con almacenamiento remoto. Para Plex, la carpeta Plex Media Server/ es el equivalente. Pruebe la restauración en un entorno de prueba antes de necesitarla.

Jellyfin 12: qué cambia y cómo migrar

Jellyfin 12.0 se publicó el 7 de septiembre de 2026; la rama va ya por la 12.4, publicada en octubre de 2026. El paso de 10.11.x a 12 se debe a un cambio de numeración: el proyecto abandonó el prefijo «10.», y 12.0 es la versión que se habría llamado 10.12.0. Aun así, introduce cambios incompatibles.

Eliminación de los prefijos de API heredados. Las rutas /emby/ y /mediabrowser/ han sido eliminadas definitivamente: los clientes de terceros antiguos y los scripts que dependían de ellas dejan de funcionar mientras no llamen a las rutas desde la raíz /. Además, la autorización heredada («legacy authorization») queda desactivada por defecto, también en las instalaciones migradas. Verifique cada aplicación cliente antes de migrar.

Migración de base de datos irreversible. Jellyfin 12 sigue en SQLite pero reestructura su base: las listas de reproducción y las colecciones pasan a ser relacionales (nueva tabla LinkedChildren) y unas rutinas de limpieza se ejecutan automáticamente en el primer arranque. Estos cambios impiden cualquier vuelta atrás sin una restauración completa. Haga una copia de seguridad completa de la carpeta config/ — especialmente data/jellyfin.db — antes de actualizar la imagen del contenedor Docker. Revertir implica restaurar esa copia junto con la imagen Docker de la versión anterior. Tras la actualización, lance un escaneo completo de las bibliotecas: es necesario para recuperar las versiones alternativas de los medios.

Incompatibilidad de plugins de 10.11. El servidor apunta ahora a .NET 10: los plugins deben recompilarse para Jellyfin 12. Las notas de la versión recomiendan quitar los plugins instalados desde un repositorio (los no integrados) antes de migrar y reinstalarlos después desde el repositorio estable oficial cuando se publiquen versiones compatibles.

Migración directa soportada. Las actualizaciones desde 10.10.7 y 10.11.x a 12 están soportadas — no es necesario reinstalar desde cero ni pasar por una versión intermedia; por debajo de 10.10.7, actualice primero a 10.10.7. Después descargue la nueva imagen Docker, tras hacer la copia de seguridad.

Desplace la tabla

CriterioJellyfinPlex
Licencia / costeLibre (GPL), 100% gratuitoFreemium, Plex Pass de pago para las funciones clave
Transcodificación por hardwareIncluida y gratuitaReservada a los suscriptores de Plex Pass
Acceso remotoDirecto a través de su reverse proxyDirecto o mediante el relé de Plex (ancho de banda limitado); la reproducción remota de vídeo requiere Plex Pass o Remote Watch Pass
PrivacidadSin telemetría, todo se queda en su servidorCuenta Plex y metadatos centralizados
Calidad de los clientes (TV, móvil)Buena, en progresión constanteMuy lograda y estable
Soporte DLNAMediante el plugin DLNA oficial (red host necesaria en Docker)Presente, menos configurable
Plugins y extensionesCatálogo comunitario amplio y activoMás cerrado, funciones integradas
Aplicaciones móvilesGratuitas (Android, iOS)Gratuitas, Plex Pass necesario para las descargas
ComunidadMuy activa, código abierto, foros y MatrixActiva, foro oficial, menos abierta
ChromecastSoportado mediante la app móvilSoportado de forma nativa
Configuración inicialAlgunos ajustes manualesAsistente muy guiado

Solución de problemas: los errores más frecuentes

Transcodificación que falla en silencio. El reproductor muestra un error genérico o el vídeo no arranca. Primera comprobación: en Panel de control → Registros, filtre por Transcod. Si el registro indica que no se encuentra FFmpeg o un error de permisos en la carpeta de transcodificación, el contenedor no encuentra el binario o no puede escribir en esa carpeta (/cache/transcodes por defecto). Verifique que el volumen está montado con permisos de escritura y que la imagen Docker es jellyfin/jellyfin (no una bifurcación sin mantenimiento).

Fallo de la aceleración por hardware. En un VPS sin GPU dedicada, la aceleración por hardware (VAAPI, QSV, NVENC) no está disponible: la transcodificación falla si activó una opción por hardware que el servidor no puede atender. En Panel de control → Reproducción → Transcodificación, desactive la aceleración por hardware para volver a la transcodificación por software, o fuerce el Direct Play. En una máquina con GPU, el contenedor debe poder acceder a ella: asigne el dispositivo de renderizado (devices: - /dev/dri/renderD128:/dev/dri/renderD128, con group_add en el grupo render del host) para VAAPI o QSV, o instale el controlador NVIDIA y el NVIDIA Container Toolkit en el host para NVENC.

Acceso remoto bloqueado detrás de un reverse proxy (prefijo de ruta). Si sirve Jellyfin bajo una subruta como your-domain.com/media/, los recursos estáticos y la API no se cargan correctamente. Un subdominio dedicado (media.your-domain.com) evita estos problemas; la documentación advierte además de que la Base URL rompe, entre otros, el plugin DLNA, HDHomeRun, Sonarr y Radarr. Si la subruta es inevitable, rellene el campo Base URL en Panel de control → Red (se guarda en network.xml y requiere reinicio) y asegúrese de que su reverse proxy reenvía la ruta completa sin reescribirla.

Sincronización de metadatos en bucle. El escaneo de la biblioteca se ejecuta indefinidamente sin progresar. Causas habituales: permisos insuficientes en la carpeta media (Jellyfin debe poder leer los archivos), nombres de archivos que no siguen el estándar Title (Year).mkv, o problemas de conectividad con los agentes de metadatos remotos. Consulte los registros de tareas programadas en Panel de control → Tareas programadas para identificar qué paso está bloqueado.

Para evitar saturar la CPU de su VPS, estandarice su biblioteca en H.264/AAC dentro de un contenedor MP4 o MKV. Un simple script ffmpeg de remux (sin recodificación, opción -c copy) reacondiciona sus archivos en unos segundos y alivia de forma duradera al servidor, sobre todo en un VPS sin GPU. Esta operación no afecta a la calidad del vídeo: solo cambia el contenedor, no el contenido.

Despliegue su media-server en unos minutos

Lance un VPS Cloud ServOrbit con una plantilla Docker preconfigurada y ejecute Jellyfin o Plex con reverse proxy y SSL automático, sin salir de su panel de control.