Repolode
steelbrain

steelbrain/ffmpeg-over-ip

Запускайте ffmpeg на удалённой машине с GPU с любого клиента через один TCP-порт — без проброса GPU и общих файловых систем.

Звёзды
1,192
Форки
41
Открытые issues
6
Последний коммит
15 часов назад

Что это?

ffmpeg-over-ip позволяет приложению на одной машине запускать ffmpeg на другой машине с GPU. Клиентский бинарный файл подменяет ffmpeg: он передаёт аргументы командной строки серверному демону, который запускает пропатченный ffmpeg и перенаправляет чтение и запись файлов обратно клиенту. Входные и выходные файлы остаются на клиенте, сервер их не хранит.

Проект рассчитан на такие сценарии, как Docker-контейнеры, виртуальные машины и удалённые хосты, где для прямого доступа к GPU иначе потребовались бы настройки runtime, проброс PCIe или подключение каталогов по NFS/SMB. На сервере должен быть доступен только один TCP-порт, а клиент устанавливает только исходящие соединения. Команды проходят аутентификацию с помощью HMAC-SHA256 и общего секрета. К одному серверу могут подключаться несколько клиентов, для каждого запускается отдельный процесс ffmpeg.

В релизные бинарные файлы входят ffmpeg и ffprobe, собранные с использованием пайплайна jellyfin-ffmpeg и поддерживающие аппаратное ускорение, в том числе NVENC, QSV, VAAPI, AMF и VideoToolbox. Клиенты и серверы доступны для Linux x86_64 и arm64, macOS и Windows x86_64.

Ключевые возможности

  • 01Передаёт команды ffmpeg и ffprobe с клиента на удалённый сервер через один TCP-порт.
  • 02Перенаправляет ввод-вывод файлов обратно клиенту, поэтому общая файловая система не нужна.
  • 03Поддерживает аппаратное ускорение, в том числе NVENC, QSV, VAAPI, AMF и VideoToolbox.
  • 04Проверяет подлинность каждой команды с помощью HMAC-SHA256 и общего секрета.
  • 05Обслуживает несколько клиентов одновременно, запуская для каждого отдельный процесс ffmpeg.
  • 06Передаёт stdout и stderr в реальном времени и возвращает код завершения ffmpeg.

Сценарии использования

  • Позволяет серверу Jellyfin или Emby в Docker-контейнере использовать GPU на другом хосте для транскодирования.
  • Даёт виртуальной машине доступ к GPU хоста без проброса PCIe.
  • Переносит транскодирование с NAS или медиасервера без GPU на машину, у которой он есть.

Быстрый старт

  1. 1

    Установите сервер на машине с GPU (Linux/macOS)

    Установите по официальной инструкции из README
  2. 2

    Установите сервер на машине с GPU (Windows PowerShell)

    Установите по официальной инструкции из README
  3. 3

    Установите клиент на машине медиасервера (Linux/macOS)

    Установите по официальной инструкции из README
  4. 4

    Установите клиент на машине медиасервера (Windows PowerShell)

    Установите по официальной инструкции из README

Что важно знать

  • Лицензия разделена: для fio/ и patches/ действует GPL v3, для остального — MIT.
  • Для настройки требуется общий секрет, а также сервер на машине с GPU и клиент на каждой машине медиасервера.

Темы

Частые вопросы

Что такое ffmpeg-over-ip?
Запускайте ffmpeg на удалённой машине с GPU с любого клиента через один TCP-порт — без проброса GPU и общих файловых систем. ffmpeg-over-ip позволяет приложению на одной машине запускать ffmpeg на другой машине с GPU. Клиентский бинарный файл подменяет ffmpeg: он передаёт аргументы командной строки серверному демону, который запускает пропатченный ffmpeg и перенаправляет чтение и запись файлов обратно клиенту. Входные и выходные файлы остаются на клиенте, сервер их не хранит.
ffmpeg-over-ip можно использовать бесплатно? Какая у него лицензия?
ffmpeg-over-ip распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
ffmpeg-over-ip всё ещё поддерживается?
Активно поддерживается. Последний коммит в ffmpeg-over-ip — 19 окт. 2026 г..
Для чего можно использовать ffmpeg-over-ip?
Позволяет серверу Jellyfin или Emby в Docker-контейнере использовать GPU на другом хосте для транскодирования. Даёт виртуальной машине доступ к GPU хоста без проброса PCIe. Переносит транскодирование с NAS или медиасервера без GPU на машину, у которой он есть.
Как установить ffmpeg-over-ip?
Установите сервер на машине с GPU (Linux/macOS) Установите сервер на машине с GPU (Windows PowerShell) Установите клиент на машине медиасервера (Linux/macOS) Установите клиент на машине медиасервера (Windows PowerShell)
Где скачать ffmpeg-over-ip?
Исходный код и инструкции по установке — на GitHub: https://github.com/steelbrain/ffmpeg-over-ip

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты