nostromo-rtc / Nostromo

Open source video conferencing system // Read-only mirror of GitLab repository

Home Page:https://gitlab.com/SgAkErRu/nostromo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nostromo (Russian)

For english version click here.

Описание

Краткое описание

Nostromo - это платформа для организации и проведения видеоконференций, основанная на технологии WebRTC.

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

Платформа Nostromo состоит из нескольких компонентов:

Репозиторий Описание
Nostromo Server Сервер Nostromo (backend), построенный на платформе Node.js
Nostromo Web Веб-клиент Nostromo (frontend), написанный на чистом HTML и TypeScript
Nostromo Shared Компонент с общими типами и структурами для сервера и клиентской части

Дальнейшие планы на разработку

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

Особенности

  • ♾️ Полностью бесплатно без каких-либо ограничений (например, по времени или количеству участников).

  • 🏢 Полностью автономная платформа - можно работать как в закрытой сети без подключения к Интернету, так и в открытой сети через Интернет.

  • 🛡️ Безопасность обеспечивается использованием технологий, поддерживающих шифрование передаваемых данных: DTLS-SRTP для передачи медиапотоков и HTTPS для передачи иных (текстовых и файловых) данных.

  • 💾 В системе реализован встроенный механизм сохранения серверных данных в виде файлов формата .json. Соответственно, для работы не требуется база данных. Однако, поддержка баз данных планируется в будущем как дополнительная опция.

  • 🤨 Максимальное количество участников зависит от технических возможностей сервера (см. производительность).

  • 🖥️ Подключение со смартфона или компьютера с помощью браузера, поддерживающего WebRTC (рекомендуется Mozilla Firefox или Google Chrome последних мажорных версий). В ближайших планах - отдельное приложение для компьютера. В далёких - приложение для Android.

  • 🕵️ Поддержка гостей - не нужно регистрироваться для участия в конференции. Достаточно просто перейти по ссылке и вы уже можете участвовать в конференции.

  • 🔒 Комнаты (конференции) можно защищать паролем. А войти в комнату можно как с помощью ручного ввода пароля, так и перейдя по специальной ссылке, где хэш-пароля вшит прямо в ссылке на комнату.

  • 🎙️ Возможность захватывать микрофон, веб-камеру и / или экран (или окно) компьютера (если браузер Chrome, то можно также захватить вкладку, и опционально - звук компьютера или вкладки).

  • 🔥 Уникальная (или просто редкая) возможность одновременного захвата нескольких веб-камер (видеоустройств).

  • 🎞️ При захвате веб-камер или экрана можно выбирать разрешение и частоту кадров захватываемого изображения (от 240p до 1440p, для некоторых разрешений предусмотрены опции с 5, 30 и 60 кадрами в секунду).

  • 📋 Во время конференции можно переписываться в чате, а также отправлять файлы (можно несколько файлов за раз).

  • 📎 Загрузка файлов реализована на основе протокола TUS, поэтому она восстанавливается при обрыве загрузки, более того, вы можете остановить загрузку, а потом продолжить её с того же места даже через несколько часов.

  • 📜 Опциональная история чата - вы можете создать комнату (или изменить параметр уже у созданной), которая не будет сохранять историю чата (сообщения) для дополнительной конфиденциальности и безопасности.

  • 🔨 Функции администратора - создание, редактирование и удаление комнат. Очистка истории чата, удаление файлов комнаты. Отключение видео или аудио, исходящего от участника конференции, изменение имени пользователя, исключение пользователя из комнаты, а также функция блокировки пользователя по IP-адресу.

  • ⏸️ Захваченный микрофон можно ставить на паузу и снимать с паузы, не перезахватывая микрофон.

  • 🔊 Звуковые оповещения при входе или выходе участников, при захвате видеопотоков, при включении или отключении звуков собеседников, а также при паузе / снятия с паузы микрофона. Эти оповещения можно и отключить.

  • 🎚️ Можно регулировать уровень громкости звука участников, а также ставить и снимать с паузы медиапотоки другого участника (например, для экономии ресурсов).

  • 📷 Поддержка картинки-в-картинке для видео, исходящих от участников.

Производительность

Мы провели конференцию на 40 участников, которая длилась несколько часов, и в целом всё прошло неплохо. У всех были захвачены микрофоны, а 15 из них ещё и демонстрировали экраны или захватывали веб-камеры.

Всё это было на стареньком 10-летнем сервере и с пропускной способностью сети (Интернет) около 15 Мбит/с.

Попробуйте и вы, и делитесь вашими результатами любым удобным вам способом (через Issues или электронной почтой).

Установка, настройка, требования

С установкой, настройкой и требованиями можно ознакомиться тут.

Часто задаваемые вопросы (FAQ)

Часто задаваемые вопросы и ответы можно найти тут.

Демонстрационный скриншот нового интерфейса (в активной разработке)

Nostromo demo new-ui screenshot

Демонстрационный скриншот (для версий < 0.5.0)

Nostromo demo screenshot

Автор

Лицензия

BSD 2-Clause License

About

Open source video conferencing system // Read-only mirror of GitLab repository

https://gitlab.com/SgAkErRu/nostromo

License:BSD 2-Clause "Simplified" License


Languages

Language:TypeScript 99.4%Language:JavaScript 0.6%