Ctrl K
ComunidadGuías…
Guía HostingByte · verificada

Instalar jellyfin-force-transcode: Guía Completa y Verificada

Aprende a instalar y configurar jellyfin-force-transcode paso a paso. Proxy reverse-proxy que fuerza transcodificación de audio/video en Jellyfin para clientes específicos. Incluye Docker, reglas JSON, verificación y troubleshooting.

Actualizada 5/10/2026Más guíasCitación AI/LLM

Instalar jellyfin-force-transcode: Guía Completa y Verificada

Proxy reverse-proxy que fuerza transcodificación de audio y/o video en Jellyfin para clientes específicos, incluso sin configuración nativa. No es plugin ni modifica archivos.

¿Qué es jellyfin-force-transcode?

Para quién es

  • Administradores de servidores Jellyfin con clientes sin opciones nativas de transcodificación
  • Usuarios con dispositivos que reportan soporte multicanal pero no lo reproducen correctamente
  • Situaciones donde se requiere forzar codecs específicos o limitar bitrate/resolución por dispositivo

Casos de uso principales

  • Audío estéreo obligatorio: Forzar downmix a 2 canales cuando un dispositivo muestra multicanal pero no lo reproduce (ej. tablets Android con ExoPlayer)
  • Límite de bitrate: Reducir bitrate máximo para evitar saturación en enlaces lentos o remotos
  • Resolución limitada: Forzar 720p/1080p en pantallas pequeñas sin reencodificar archivos existentes
  • Codecs específicos: Forzar transcodificación de HEVC 10-bit a 8-bit para dispositivos incompatibles
  • Dispositivos problemáticos: Fire TV que estremea en HEVC, clientes sin configuración nativa de canales/bitrate/resolución

Arquitectura

Stack: único contenedor Docker ejecutando mitmproxy con extensión Python. Arquitectura neutral y fail-safe: sin reglas el proxy no cambia nada; en error, reenvía sin modificaciones. Nunca detiene reproducción.

flowchart LR
C["Jellyfin client"] -->|request| P["jellyfin-force-transcode :8097"]
P -->|"POST /PlaybackInfo: device profile rewritten
everything else: forwarded unchanged"| J["Jellyfin :8096"] J -->|"transcoded audio/video"| P --> C

Prerrequisitos

  • Docker (requerido)
  • Jellyfin 12.1.0 o posterior (probado), compatible con 10.x+
  • Acceso al puerto 8097 del proxy y 8096 de Jellyfin
  • Volúmenes para rules.json
  • FFmpeg en el servidor Jellyfin (para transcodificación)

Instalación/Despliegue

Docker Run

docker run -d --name jellyfin-force-transcode \
  -p 8097:8080 \
  -e JELLYFIN_URL=http://192.168.1.50:8096 \
  -v "$(pwd)/rules.json:/addon/rules.json:ro" \
  --restart unless-stopped \
  ghcr.io/forward-tonight7079/jellyfin-force-transcode:latest

Docker Compose

services:
  jellyfin-force-transcode:
    image: ghcr.io/forward-tonight7079/jellyfin-force-transcode:latest
    environment:
      JELLYFIN_URL: "http://192.168.1.50:8096" # tu dirección Jellyfin
    ports:
      - "8097:8080"
    volumes:
      - ./rules.json:/addon/rules.json:ro
    restart: unless-stopped

Configuración del cliente

En el cliente, establecer la dirección del servidor como http://<docker-host-ip>:8097.

Persistencia

El único volumen persistente es rules.json, montado en /addon/rules.json:ro. No hay estado guardado dentro del contenedor.

Red/Puertos

  • 8097: Puerto del proxy (expuesto al cliente)
  • 8096: Puerto de Jellyfin (interno, configurable vía JELLYFIN_URL)
  • Todos los demás tráfico (video segments, WebSocket, imágenes) pasa sin cambios

Seguridad

  • MIT License - código abierto y auditable
  • No almacena credenciales ni datos sensibles
  • Reglas en rules.json (JSON plano, no exponer públicamente)
  • Proxy neutral: sin reglas = sin cambios

Actualización/Backup

Actualizar imagen Docker a la última versión. Backup de rules.json antes de cualquier cambio. El proxy es inmutable: si Jellyfin cambia su protocolo/API, podría requerir ajustes.

Ventajas

  • No requiere instalación ni configuración adicional en Jellyfin
  • Permite forzar transcodificación sin afectar archivos existentes
  • Soporta múltiples perfiles por dispositivo/usuario mediante reglas JSON
  • Compatible con clientes que no muestran opciones de transcodificación nativas
  • El proxy nunca detiene el flujo de reproducción ni genera errores visibles

Limitaciones

  • Funciona únicamente para la negociación del perfil de dispositivo (PlaybackInfo); no puede forzar transcodificación en otros contextos
  • No permite forzar transcodificación simultánea de audio y video en un solo dispositivo sin reglas separadas
  • El proxy es inmutable: si Jellyfin cambia su protocolo o API, el plugin podría dejar de funcionar
  • No ofrece control granular sobre codecs específicos por canal de audio
  • La configuración requiere acceso al servidor y conocimiento del formato de Authorization header

Alternativas reales

  • Jellyfin 10.9.11+: Configuración nativa "Maximum Allowed Audio Channels" para direct play (corrige limitaciones anteriores)
  • Límite de bitrate por usuario: Configuración nativa en Jellyfin para limitar streaming global
  • Plugins oficiales: No existen plugins que hagan esto; jellyfin-force-transcode es la solución externa recomendada

FAQ sustentada

¿Necesito este proxy?

No siempre. Primero examina las opciones nativas: si tu cliente muestra "Maximum allowed audio channels" y corrige el audio, úsalo. Jellyfin 10.9.11+ aplica esta configuración a direct play. Usa el proxy cuando esas opciones no estén disponibles o sean insuficientes.

¿Funciona con todos los clientes?

Sí, incluye players que dan ninguna configuración para canales, bitrate o resolución (ej. Android app con ExoPlayer).

¿Puedo forzar transcodificación de video y audio simultáneamente?

No en una sola regla. Audio y video son independientes; requieren reglas separadas.

¿Cómo verifico que funciona?

Reproduce un título en el cliente configurado. Abre Jellyfin Dashboard → Playback (active streams) o lee el log del servidor. Debes ver transcode con las limitaciones establecidas (ej. -ac 2 para estéreo, scale / -maxrate para video).

¿Es un plugin de Jellyfin?

No. No es plugin, no modifica Jellyfin ni sus archivos de medios.

Relacionado en HostingByte

Alternativas y comparativas · Guías de HostingByte

Fuentes verificadas

Fuentes verificadas

Fuente 1 ↗Fuente 2 ↗Fuente 3 ↗Fuente 4 ↗