Обновить
4K+
10

Пользователь

0,2
Рейтинг
2
Подписчики
Отправить сообщение

Два архитектурных подхода к совместному просмотру видео и чем они отличаются на практике

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

Подход 1: серверный relay

Watch2Gether (w2g.tv), WParty (wparty.net), vmeste.tv. Пользователь отправляет ссылку на видео, сервер его загружает или проксирует, раздаёт участникам комнаты через собственный плеер. Синхронизация на стороне сервера: он контролирует playback state для всех клиентов.

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

Минусы тоже. Видео проходит через инфраструктуру сервиса, перекодируется. На потоке 1080p с Кинопоиска получишь что-то хуже на выходе. Плюс юридическая зона: проксирование контента с платных платформ нарушает условия использования большинства из них. Поэтому relay-сервисы работают в основном с YouTube, Vimeo, частично с RuTube и ВК Видео. Кинопоиск, Иви, Okko ни один relay-сервис напрямую не поддерживает.

Подход 2: state sync на клиенте

Teleparty (teleparty.com), TandemParty (tandemparty.com). Браузерное расширение внедряется в страницу через content script, находит video element, подписывается на события (play, pause, seeked, ratechange) и транслирует их участникам через WebSocket.

Видеопоток не затрагивается. Каждый участник грузит контент напрямую с CDN платформы в нативном качестве. Расширение только рассылает команды управления.

Сложность в адаптерах. Каждая платформа использует свой плеер с разными обёртками, разными событиями, разными способами управления воспроизведением. Кинопоиск, YouTube, RuTube, ВК Видео, Иви, Okko, все по-разному. Расширение должно содержать отдельный адаптер под каждую, который знает как найти video element, как подписаться на события, как программно управлять плеером.

Teleparty покрывает западные платформы: Netflix, HBO Max, Disney+, Hulu. TandemParty поддерживает 15 платформ, включая российские (Кинопоиск, Иви, Okko, Wink, Premier, KION, Start, Амедиатека) и западные (Netflix, Prime Video, HBO Max, Crunchyroll). WebSocket-сервер у TandemParty на Rust.

Минус state sync подхода: требуется расширение. Без установки не работает, а это дополнительный порог входа. Плюс расширение привязано к Chromium, Firefox и Safari остаются за бортом.

По факту, для синхронного просмотра с сохранением качества state sync выигрывает. Relay проще в онбординге, но проигрывает в качестве картинки и в покрытии платформ.

Теги:
+3
Комментарии0

Синхронный просмотр видео онлайн: почему screen share архитектурно плохое решение и как это исправить

Задача на первый взгляд простая: двое в разных локациях хотят смотреть одно видео синхронно. На практике большинство берёт первое что под рукой (screen share) и получает предсказуемо плохой результат. Разберём что происходит под капотом у каждого подхода.

Screen share

Discord, Zoom, Telegram используют WebRTC или собственные протоколы. Поток с дисплея захватывается, кодируется (VP8/VP9 или H.264 с агрессивным битрейтом для экономии полосы), передаётся через TURN/STUN-сервер, декодируется у получателя. Качество деградирует на каждом этапе, это следствие архитектуры, не баг. Задержка от 500 мс до 3 секунд в зависимости от условий. Только инициатор получает оригинальный видеопоток.

Веб-сервисы (Watch2Gether, WParty)

Видео либо проксируется через их серверы, либо используется embed API платформы. В случае YouTube: iframe с postMessage API для управления. Качество ограничено их инфраструктурой. Российские платформы (Кинопоиск, RuTube, Иви) через embed не работают или работают с серьёзными ограничениями.

Синхронизация состояния плеера

Принципиально другой подход. Расширение не трогает видеопоток. Оно встраивается в страницу, перехватывает события нативного плеера (play, pause, seeked, timeupdate) через MutationObserver или прямую инъекцию в DOM, и транслирует их участникам комнаты через WebSocket. Каждый участник грузит видео напрямую с CDN платформы. Синхронизируется только управление, не контент.

TandemParty работает по этой схеме. Поддержка: Кинопоиск, YouTube, ВК Видео, RuTube, Иви. Задержка синхронизации команд в пределах сетевого RTT. Из нестандартного: QR-пульт, WebSocket-сессия позволяет телефону выступать вторым контроллером плеера после сканирования QR-кода с экрана.

Техническая статья про устройство синхронизации изнутри есть в блоге: tandemparty.com/blog

Теги:
Рейтинг0
Комментарии0

Прощайте, танцы с бубном! Figma наконец-то добавила эффект стекла iOS 26

Дизайнеры, кто помнит, как мы страдали, пытаясь повторить "стеклянный" эффект из новенького iOS 26 в Фигме? Эти попытки создать блюр при помощи костылей, которые съедали все нервы...

Отныне можем выдохнуть.

Только что Figma Desktop встретила меня радостным попапом: "БРООО! ОНО ВЫШЛО!".

Речь идёт о новом фильтре "Glass Effect" (см. превью), который теперь официально доступен. И даже есть коммьюнити-проект от Apple с пояснениями, как им пользоваться.

Если коротко: Figma добавили отдельный фильтр во вкладке "Effects". Но учтите: работает он только на фреймах. На обычных шейпах применяться не будет.

Бьюсь об заклад, что в ближайшее время в Pinterest появится куча новых проектов с использованием этого эффекта. Мне вот только интересно, что разработчикам делать? Уже есть спецы могущие перевести этот эффект в код?

Теги:
Рейтинг0
Комментарии0

Захожу сегодня в настройки ChatGPT, решил поменять его голос. Обычно они все стандартные: над каждым голосом висит голубой шар 🔵, как бы символизирующий его вибрации. И сами ассистенты звучат так, будто ты позвонил в банк: вежливые, ровные и стерильные.

А тут я вижу чёрный шар ⚫️. Под ним имя «Monday» и подпись «всё равно».

Решаю его затестить. И через секунду ловлю покерфейс. Голос звучит так, будто ей не просто плевать, а будто каждое твое слово вызывает у неё лёгкую скуку.

В каждом слове я слышу отстраненную усталость в интонации и тонкую насмешку. Словно ты отвлёк её от чего-то более важного, и она даже не пытается это скрыть.

В её речи столько сарказма и двойственности, что мне приходится переспрашивать, чтобы хоть как-то вытащить из неё информацию.

На секунду даже реально забыл, что это нейросеть.

А потом она добавляет фразу:

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

Я в тотальном шоке полез гуглить. Узнал, что OpenAI втихаря выкатили новое обновление голосового помощника. Был лишь короткий анонс в социальной сети:

Без шуток, в ChatGPT появился новый голос.

Как по мне, они шикарно подобрали ей имя: Monday. Это сама суть понедельника: когда даже "привет" это подвиг.

Что-ж, теперь у меня официально есть токсичные отношения. Только мой абьюзер это нейросеть. Да уж, и тут нейросети нас заменили (!).

Пока у Тони Старка была своя «Пятница», OpenAI выкатили нам «Понедельник». Я лично жду «Вторник»

Теги:
Всего голосов 6: ↑5 и ↓1+5
Комментарии0

Информация

В рейтинге
2 820-й
Зарегистрирован
Активность

Специализация

Графический дизайнер, SMM-специалист
Средний
Adobe Photoshop
Adobe Illustrator
Figma Design
UI/UX дизайн