Repolode
steelbrain

steelbrain/ffmpeg-over-ip

Ejecuta ffmpeg en una máquina remota con GPU desde cualquier cliente a través de un único puerto TCP, sin passthrough de GPU ni sistemas de archivos compartidos.

Estrellas
1,192
Forks
41
Issues abiertos
6
Último commit
hace 15 horas

¿Qué es?

ffmpeg-over-ip permite que una aplicación en una máquina ejecute ffmpeg en otra que tenga una GPU. Un binario cliente reemplaza a ffmpeg: reenvía los argumentos de la línea de comandos a un daemon servidor, que ejecuta una versión parcheada de ffmpeg y tuneliza las lecturas y escrituras de archivos de vuelta al cliente. Los archivos de entrada y salida permanecen en el cliente; el servidor no los almacena.

El proyecto está pensado para entornos como contenedores Docker, máquinas virtuales y hosts remotos, donde obtener acceso directo a la GPU requeriría configurar el runtime, usar PCIe passthrough o montar sistemas de archivos NFS/SMB. Solo hace falta que se pueda acceder a un puerto TCP del servidor, y el cliente únicamente realiza conexiones salientes. Los comandos se autentican con HMAC-SHA256 y un secreto compartido. Pueden conectarse varios clientes a un mismo servidor, y cada uno obtiene su propio proceso de ffmpeg.

Los binarios de las versiones publicadas incluyen ffmpeg y ffprobe compilados mediante el pipeline de jellyfin-ffmpeg, con aceleración por hardware como NVENC, QSV, VAAPI, AMF y VideoToolbox. Hay clientes y servidores para Linux x86_64 y arm64, macOS y Windows x86_64.

Funciones clave

  • 01Reenvía comandos de ffmpeg y ffprobe desde un cliente a un servidor remoto a través de un único puerto TCP.
  • 02Tuneliza la E/S de archivos de vuelta al cliente, por lo que no se necesita un sistema de archivos compartido.
  • 03Admite aceleración por hardware, como NVENC, QSV, VAAPI, AMF y VideoToolbox.
  • 04Autentica cada comando con HMAC-SHA256 y un secreto compartido.
  • 05Admite varios clientes simultáneos, cada uno con su propio proceso de ffmpeg.
  • 06Transmite stdout y stderr en tiempo real y devuelve el código de salida de ffmpeg.

Casos de uso

  • Permitir que un servidor Jellyfin o Emby en un contenedor Docker use para transcodificar la GPU de otro host.
  • Dar acceso a una máquina virtual a la GPU del host sin PCIe passthrough.
  • Delegar la transcodificación de un NAS o servidor multimedia sin GPU a una máquina que sí tenga una.

Inicio rápido

  1. 1

    Instala el servidor en la máquina con GPU (Linux/macOS)

    Instálalo siguiendo las instrucciones oficiales del README
  2. 2

    Instala el servidor en la máquina con GPU (Windows PowerShell)

    Instálalo siguiendo las instrucciones oficiales del README
  3. 3

    Instala el cliente en la máquina del servidor multimedia (Linux/macOS)

    Instálalo siguiendo las instrucciones oficiales del README
  4. 4

    Instala el cliente en la máquina del servidor multimedia (Windows PowerShell)

    Instálalo siguiendo las instrucciones oficiales del README

Antes de usarlo

  • La licencia está dividida: fio/ y patches/ usan GPL v3, mientras que el resto usa MIT.
  • La configuración requiere un secreto compartido y ejecutar un servidor en la máquina con GPU, además de un cliente en cada máquina de servidor multimedia.

Temas

Preguntas frecuentes

¿Qué es ffmpeg-over-ip?
Ejecuta ffmpeg en una máquina remota con GPU desde cualquier cliente a través de un único puerto TCP, sin passthrough de GPU ni sistemas de archivos compartidos. ffmpeg-over-ip permite que una aplicación en una máquina ejecute ffmpeg en otra que tenga una GPU. Un binario cliente reemplaza a ffmpeg: reenvía los argumentos de la línea de comandos a un daemon servidor, que ejecuta una versión parcheada de ffmpeg y tuneliza las lecturas y escrituras de archivos de vuelta al cliente. Los archivos de entrada y salida permanecen en el cliente; el servidor no los almacena.
¿ffmpeg-over-ip es gratuito? ¿Qué licencia tiene?
ffmpeg-over-ip es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿ffmpeg-over-ip sigue mantenido?
Mantenimiento activo. El último commit de ffmpeg-over-ip fue el 19 oct 2026.
¿Para qué puedo usar ffmpeg-over-ip?
Permitir que un servidor Jellyfin o Emby en un contenedor Docker use para transcodificar la GPU de otro host. Dar acceso a una máquina virtual a la GPU del host sin PCIe passthrough. Delegar la transcodificación de un NAS o servidor multimedia sin GPU a una máquina que sí tenga una.
¿Cómo se instala ffmpeg-over-ip?
Instala el servidor en la máquina con GPU (Linux/macOS) Instala el servidor en la máquina con GPU (Windows PowerShell) Instala el cliente en la máquina del servidor multimedia (Linux/macOS) Instala el cliente en la máquina del servidor multimedia (Windows PowerShell)
¿Dónde consigo ffmpeg-over-ip?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/steelbrain/ffmpeg-over-ip

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados