Выпуск децентрализованной видеовещательной платформы PeerTube 6.0

Состоялся выпуск децентрализованной платформы для организации видеохостинга и видеовещания PeerTube 6.0. PeerTube предлагает независимую от отдельных поставщиков альтернативу YouTube, Dailymotion и Vimeo, использующую сеть распространения контента на базе P2P-коммуникаций и связывания между собой браузеров посетителей. Наработки проекта распространяются под лицензией AGPLv3.

Основные новшества:

  • Добавлена возможность размещения видео, защищённых паролем. Пароль можно выставить при загрузке, импорте или обновлении, после чего только пользователи знающие пароль смогут получить доступ к контенту. Через REST API можно задавать несколько паролей (например, каждому пользователю можно выдавать отдельный пароль) и отзывать выданные пароли.
  • Обеспечен показ эскизов при перемещении указателя мыши по ползунку, отражающему позицию воспроизведения, что позволяет наглядно перемещаться по потоку. Раскадровка с эскизами формируется во время загрузки или импорта видео, т.е. поддержка эскизов станет доступна только для новых видео, загруженных после обновления узла до PeerTube 6.0. Для создания эскизов к старым видео администратору следует выполнить команду «npm run create-generate-storyboard-job».
  • Добавлена возможность загрузки новой версии видео, которую можно использовать для обновления видео, например, после исправления ошибки или добавления недостающей информации. После обновления старый вариант видео безвозвратно теряется и по старой ссылке становится доступен обновлённый вариант (сохраняются также комментарии и статистика). Так как возможность может использоваться для злоупотреблений, например, для подстановки рекламы после проверки, администратор должен явно включить поддержку загрузки обновлений на своей платформе.
  • Добавлена возможность прикрепления оглавления к видео, позволяющего посмотреть список эпизодов и быстро переключаться между ними. Для определения эпизодов на страницу с настройками добавлена вкладка «chapters», на которой можео определить время начала и описание основных моментов в видео. Эпизоды также автоматически переносятся при импорте видео с YouTube.
  • Продолжено внесение изменений и оптимизаций, подготовленных на основе стресс-тестирования live-вещания и классического стриминга видео с несколькими тысячами одновременных участников. Например, проведена оптимизация обработки unicast HTTP в рабочих потоках, заверения запросов ActivityPub, обработки рекомендаций, SQL-запросов с фильтрацией по тегам, массовых запросов /videos/{id}/views. Добавлена возможность отключения HTTP-лога.
  • Удалена поддержка протокола WebTorrent, а разработка сфокусирована на использовании протокола HLS (HTTP Live Streaming) с WebRTC для P2P.
  • Повышена эффективность видеопроигрывателя, в котором обеспечен автоматический выбор размера окна с учётом соотношения сторон видео, реализовано запоминание настроек и убрано перестраивание при смене видео.
  • Улучшена поддержка возможностей для поисковых оптимизаторов (SEO).
  • Расширены средства для людей с ограниченными возможностями.

Платформа PeerTube изначально была основана на применении BitTorrent-клиента WebTorrent, запускаемого в браузере и использующего технологию WebRTC для организации прямого P2P-канала связи между браузерами. Позднее вместо WebTorrent был задействован протокол HLS (HTTP Live Streaming) в связке с WebRTC, позволяющий адаптивно управлять потоком в зависимости от полосы пропускания. Для объединения разрозненных серверов с видео в общую федеративную сеть, в которой посетители участвуют в доставке контента и имеют возможность подписки на каналы и получения уведомлений о новых видео, задействован протокол ActivityPub. Предоставляемый проектом web-интерфейс построен с использованием фреймворка Angular.

Федеративная сеть PeerTube образуется как содружество связанных между собой небольших серверов хостинга видео, на каждом из которых имеется свой администратор и могут быть приняты свои правила. Каждый сервер с видео выполняет роль BitTorrent-трекера, на котором размещены учётные записи пользователей данного сервера и их видео. Идентификатор пользователя формируются в форме «@имя_пользователя@домен_сервера». Передача данных при просмотре осуществляется непосредственно из браузеров других посетителей, просматривающих контент.

Если видео никто не просматривает, отдача организуется сервером, на который изначально загружено видео (используется протокол WebSeed). Помимо распределения трафика между пользователями, просматривающими видео, PeerTube также позволяет узлам, запущенным авторами для первичного размещения видео, кэшировать видео других авторов, формируя распределённую сеть не только из клиентов, но и из серверов, а также обеспечивая отказоустойчивость. Имеется поддержка потокового вещания (live streaming) с доставкой контента в режиме P2P (для управления стримингом могут использоваться типовые программы, такие как OBS).

Для начала вещания через PeerTube пользователю достаточно загрузить на один из серверов видеоролик, описание и набор тегов. После этого ролик станет доступен во всей федеративной сети, а не только с сервера первичной загрузки. Для работы с PeerTube и участия в распространении контента достаточно обычного браузера и не требуется установка дополнительного ПО. Пользователи могут отслеживать активности в выбранных видеоканалах, подписавшись на интересующие каналы в федеративных социальных сетях (например, в Mastodon и Pleroma) или через RSS. Для распространения видео с использованием P2P-коммуникаций пользователь также может добавить на свой сайт специальный виджет со встроенным web-плеером.

В настоящее время для размещения контента функционирует 1122 сервера, поддерживаемых разными добровольцами и организациями. Если пользователя не устраивают правила размещения видео на определённом сервере PeerTube, он может подключиться к другому серверу или запустить свой собственный сервер. Для быстрого развёртывания сервера предоставляется преднастроенный образ в формате Docker (chocobozzz/peertube).

Источник: opennet.ru

Добавить комментарий