Repolode
steelbrain

steelbrain/ffmpeg-over-ip

Execute o ffmpeg em uma máquina remota com GPU a partir de qualquer cliente, por uma única porta TCP e sem passthrough de GPU nem sistemas de arquivos compartilhados.

Estrelas
1,192
Forks
41
Issues abertas
6
Último commit
há 16 horas

O que é?

O ffmpeg-over-ip permite que um aplicativo em uma máquina execute o ffmpeg em outra máquina com GPU. Um binário cliente substitui o ffmpeg: ele encaminha os argumentos da linha de comando para um daemon servidor, que executa um ffmpeg com patches e encaminha todas as leituras e gravações de arquivos de volta ao cliente. Os arquivos de entrada e saída permanecem no cliente, e o servidor não os armazena.

O projeto é voltado a configurações como contêineres Docker, máquinas virtuais e hosts remotos em que obter acesso direto à GPU exigiria configuração de runtime, passthrough de PCIe ou montagens NFS/SMB. Basta que uma porta TCP do servidor esteja acessível, e o cliente só inicia conexões de saída. Os comandos são autenticados com HMAC-SHA256 usando um segredo compartilhado, e vários clientes podem se conectar a um servidor, cada um com seu próprio processo do ffmpeg.

Os binários de lançamento incluem ffmpeg e ffprobe compilados a partir do pipeline jellyfin-ffmpeg, com aceleração de hardware como NVENC, QSV, VAAPI, AMF e VideoToolbox. Há clientes e servidores para Linux x86_64 e arm64, macOS e Windows x86_64.

Recursos principais

  • 01Encaminha comandos do ffmpeg e do ffprobe de um cliente para um servidor remoto por uma única porta TCP.
  • 02Encaminha a E/S de arquivos de volta ao cliente, dispensando um sistema de arquivos compartilhado.
  • 03Oferece suporte a aceleração de hardware, incluindo NVENC, QSV, VAAPI, AMF e VideoToolbox.
  • 04Autentica cada comando com HMAC-SHA256 e um segredo compartilhado.
  • 05Atende vários clientes simultaneamente, cada um com seu próprio processo do ffmpeg.
  • 06Transmite stdout e stderr em tempo real e retorna o código de saída do ffmpeg.

Casos de uso

  • Permitir que um servidor Jellyfin ou Emby em um contêiner Docker use a GPU de outro host para transcodificação.
  • Dar acesso de uma máquina virtual à GPU do host sem passthrough de PCIe.
  • Delegar a transcodificação de um NAS ou servidor de mídia sem GPU para uma máquina que tenha uma.

Início rápido

  1. 1

    Instale o servidor na máquina com GPU (Linux/macOS)

    Instale seguindo as instruções oficiais do README
  2. 2

    Instale o servidor na máquina com GPU (Windows PowerShell)

    Instale seguindo as instruções oficiais do README
  3. 3

    Instale o cliente na máquina do servidor de mídia (Linux/macOS)

    Instale seguindo as instruções oficiais do README
  4. 4

    Instale o cliente na máquina do servidor de mídia (Windows PowerShell)

    Instale seguindo as instruções oficiais do README

Antes de usar

  • A licença é dividida: fio/ e patches/ usam GPL v3, enquanto o restante usa MIT.
  • A configuração requer um segredo compartilhado e a execução de um servidor na máquina com GPU, além de um cliente em cada máquina de servidor de mídia.

Tópicos

Perguntas frequentes

O que é ffmpeg-over-ip?
Execute o ffmpeg em uma máquina remota com GPU a partir de qualquer cliente, por uma única porta TCP e sem passthrough de GPU nem sistemas de arquivos compartilhados. O ffmpeg-over-ip permite que um aplicativo em uma máquina execute o ffmpeg em outra máquina com GPU. Um binário cliente substitui o ffmpeg: ele encaminha os argumentos da linha de comando para um daemon servidor, que executa um ffmpeg com patches e encaminha todas as leituras e gravações de arquivos de volta ao cliente. Os arquivos de entrada e saída permanecem no cliente, e o servidor não os armazena.
ffmpeg-over-ip é gratuito? Qual é a licença?
ffmpeg-over-ip é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
ffmpeg-over-ip ainda é mantido?
Manutenção ativa. O último commit de ffmpeg-over-ip foi em 19 de out. de 2026.
Para que posso usar ffmpeg-over-ip?
Permitir que um servidor Jellyfin ou Emby em um contêiner Docker use a GPU de outro host para transcodificação. Dar acesso de uma máquina virtual à GPU do host sem passthrough de PCIe. Delegar a transcodificação de um NAS ou servidor de mídia sem GPU para uma máquina que tenha uma.
Como instalar ffmpeg-over-ip?
Instale o servidor na máquina com GPU (Linux/macOS) Instale o servidor na máquina com GPU (Windows PowerShell) Instale o cliente na máquina do servidor de mídia (Linux/macOS) Instale o cliente na máquina do servidor de mídia (Windows PowerShell)
Onde consigo ffmpeg-over-ip?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/steelbrain/ffmpeg-over-ip

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados