Docker-образ с headless-клиентом Steam и рабочим столом для трансляции игр в браузер, Moonlight или Steam Link.
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
Установите сервер на машине с GPU (Linux/macOS)
Установите по официальной инструкции из README - 2
Установите сервер на машине с GPU (Windows PowerShell)
Установите по официальной инструкции из README - 3
Установите клиент на машине медиасервера (Linux/macOS)
Установите по официальной инструкции из README - 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 обновляется ежедневно.
Похожие проекты
Фреймворк с открытым исходным кодом для создания детерминированных MP4-видео из HTML, CSS, медиафайлов и анимаций с перемоткой, разработанный для AI-агентов, пишущих код.
Кроссплатформенная библиотека на C++ для фильтрации изображений и видео через OpenGL/ES, с бьюти-фильтрами и эффектами на основе распознавания лиц.
Нативное графическое приложение для FFmpeg с детальными настройками конвертации видео, аудио, изображений, субтитров и метаданных.
Веб-интерфейс на Streamlit поверх yt-dlp: скачивает отдельные видео и плейлисты и раскладывает файлы по папкам, которые сканируют Plex, Jellyfin или Emby.
Локальный видеокомпрессор с веб-интерфейсом, который сжимает ролики до заданного размера, используя кодирование на GPU или CPU через FFmpeg.