Комментарии 8
Не совсем понятно как работает P2P - у провайдеров же все обычно за NAT, без серверного тоннеля не подсоединиться друг к другу?
Или я что-то не знаю?
А какие существующие решения вы рассматривали?
Интересно посмотреть на такие трансляции с точки зрения законности...
Мне понравилось. Идея, реализация, дизайн. Вы молодец 👍
А что на счёт качества картинки?
Если мой друг будет смотреть мою трансляцию на огромном телевизоре, то не увидит ли он кубики размером с кулак?
На маленьких экранах - ОК
Конечно для качества связи пришлось пожертвовать крутым изображением.. узкие места: интернет связь и нагрузка на средне-статистическое железо бюджетного ноутбука, транслирующего экран.
Пока так: Трансляция экрана захватывается в 960×540 (максимум), камера — 640×480. Битрейт регулируется пресетом качества (ползунок в настройках). Аудио фиксировано 32 kbps. ScaleResolutionDownBy = 1 на всех пресетах (не уменьшаем).

Возможно буду далее оптимизировать поток, повышая качество... пока для экрана ноутбука вполне себе
Изначально когда в локальной сети тестировал: там и на фул эйч ди летало конечно... но задача: связь по некачественному интернету)
Тоже была необходимость в одновременном просомотре фильмов онлайн с параллельным звонком. Решил в итоге немного по другому - фильм скачивается заранее каждому на комп, все его открывают у себя в полноэкранном режиме и затем через приложение для синхронного управления мышью (mirror mouse как то так называлось) у всех одновременно нажимается плей.
Скачивание фильма заранее было немного неудобно, но позволяло исключить влияние ширины канала у разных клиентов (как бонус - отличное качество). С онлайн просмотром работало аналогично (плеер открывали на весь экран и синхронно жмется плей), но тут уже были проблемы если провайдер у кого то не тянул по скорости, при небольшой задержки для загрузки клиент получал рассинхрон.

Делаем P2P-кинотеатр: как мы написали десктопное приложение для совместного просмотра видео на Electron