Запущенный сервер Peertube, а так же обновленная версия установки так сказать лайт к сожалению стар и немощен. Ему нужна помощь в кодировании видео. В этом ему будет помогать десктоп с видеокартой от Nvidea и осью виндовс. Все они живут в одной сети, но это не мешает настроить и очень удаленную машину в помощь через интернет, главное что бы был тырнет.

Суть в следующем на сервере Peertube есть такая функция в русском переводе она называется Включить удаленных участников. Такая возможность предоставляется для транслируемого видео, загруженного видео или запись трансляции, а так же если включена видеостудия. По сути все транскодирование видео перекладывается на удаленную машину с хорошим ТТХ, в моем случае это комп с видяхой и дохрена памяти.

Что необходимо установить для работы сервера Peertube Runner в Windows

Итак понадобится:

  • Node.js (v20.x или выше).
  • FFmpeg (v4.3 или выше) и FFprobe.
  • Python (для задач транскрипции, если включено).
  • NSSM (для запуска средства выполнения тестов в качестве службы Windows).
  • Драйверы NVIDIA CUDA (для использования ускорения графического процессора).
  • Git (для клонирования репозиториев, если это необходимо).

Про все это как устанавливать писать не буду, у меня уже давно все поставлено причем ставилось постепенно по мере надобности выполнения других задач и вот оно пригодилось еще и для этого случая.

Все пути приложений прописаны в PATCH чтобы не парицо.

Как проверить установленные приложения

Если хочется быстро проверить наличие и версии этих приложений в Windows, можно сделать это через командную строку.


Node.js (v20.x или выше)

node -v
  • Вывод должен быть вроде v20.1.0.
  • Если версия < 20 или ошибка — Node.js либо не установлен, либо старая версия.

FFmpeg и FFprobe (v4.3 или выше)

ffmpeg -version
ffprobe -version
  • FFmpeg и FFprobe обычно идут вместе.
  • Версия должна быть ≥ 4.3.

Python (для транскрипции)

python --version
  • Вывод, например, Python 3.12.0.
  • Если Python не установлен или не добавлен в PATH — появится ошибка.

NSSM (для запуска как служба)

Если будет желание автоматически запускать сервер при старте системы, у меня такого желания пока нет могу и ручками все сделать.

nssm version
  • Если команда не найдена — NSSM не установлен или не в PATH.

Драйверы NVIDIA CUDA

nvidia-smi
  • Показывает версию драйвера и версию CUDA.
  • Если команда не найдена — либо нет драйвера NVIDIA, либо CUDA не установлена.

Git

git --version
  • Например, git version 2.41.0.windows.1.
  • Если команда не найдена — Git не установлен.

Установка Peertube Runner сервер в Виндовс 10

npm install -g @peertube/peertube-runner

Проверка установки:

peertube-runner --version

Запуск сервера Peertube Runner

Открыть PowerShell запустить сервер:

peertube-runner server

После запуска в одной из строк будет прописан путь, где живет конфиг, это пригодится. Примерно такая строка Using C:\Users\ИМЯ-ПОЛЬЗОВАТЕЛЯ\AppData\Roaming\peertube-runner-nodejs\Config\default\config.toml as configuration file

Регистрация сервера Peertube Runner

Зайти в вебморду сервера Peertube под пользователем root

Для того чтобы помощь заработала нужно поставить галки в требуемых местах:

Настройки-Конфигурация-VOD ✔️ Включить удаленных участников для VOD или в моем случае https://video.wildserver.ru/admin/settings/config/vod

Там же, если включена Включить видеостудию поставить ✔️ Включить удаленных участников для студии

Нажать кнопку Сохранить

Тоже сделать для Трансляции ✔️ Включить удаленных участников для трансляций https://video.wildserver.ru/admin/settings/config/live

Появится вкладка Настройки-Runners выбрать Регистрационные токены https://video.wildserver.ru/admin/settings/system/runners/registration-tokens-list

Скопировать существующий токен или создать новый.

Запустить еще одно окно с PowerShell и выполнить команду с адресом сервера , полученным токеном и желаемым именем сервера Peertube Runner

peertube-runner register --url https://video.wildserver.ru --registration-token ТОКЕН --runner-name my-desktop

Проверка регистрации сервера Peertube Runner

peertube-runner list-registered

В вебморде сервера Peertube во вкладке Настройки-Runners-Удаленные участники появится так сказать данные о помошнике. https://video.wildserver.ru/admin/settings/system/runners/runners-list

Мониторинг выполнения задач сервера Peertube Runner

Так же в отдельном окне PowerShell не трогать окно с запущенным сервером. Можно посмотреть выполняемые задачи, если они есть. Проверить можно во время стрима или загрузив файл с видео. Все это так же доступно в вебморде Настройки-Runners-Задания участника https://video.wildserver.ru/admin/settings/system/runners/jobs-list. В последнем варианте удобнее, можно посмотреть наличие ошибок, если таковые имеются или какие то аномалии, что бы весело провести время решая их.

Файл конфигурации сервера Peertube Runner

В данном случае универсального конфига не могу предоставить, поскольку составлял его для своих задач и исходя из своего железа. Естественно в процессе эксплуатации необошлось без ошибок и непоняток, которые решились правкой конфига. Открыть удобным текстовым редактором я юзаю VisualStudioCode

C:\Users\ИМЯ-ПОЛЬЗОВАТЕЛЯ\AppData\Roaming\peertube-runner-nodejs\Config\default\config.toml

[jobs]
concurrency = 2

[ffmpeg]
threads = 4
nice = -10
hwaccel = "cuda"

[transcription]
engine = "whisper-ctranslate2"
model = "small"

[[registeredInstances]]
url = "https://video.wildserver.ru"
runnerToken = "ТОКЕН"
runnerName = "my-desktop"

[live]
maxRetries = 0
checkIntervalSeconds = 10

Итог:

Загружаемые видео действительно обрабатываются на десктопной винде, а вот в режиме трансляции у меня так и не получилось настроить транскодирование, OBS постоянно перезапускает трансляцию ровно через минуту. Много чего попробовал решения пока не нашел.