Видеопоток Discourse 🎥

Discourse Video Stream обеспечивает бесшовную интеграцию с Cloudflare Stream для загрузки и встраивания высококачественного длинного видеоконтента и прямой трансляции на вашем сайте Discourse.

Обзор

Этот плагин предоставляет полный рабочий процесс для обработки больших видеофайлов с адаптивной потоковой передачей с изменением битрейта, позволяя пользователям загружать видео непосредственно из редактора и воспроизводить их с автоматической настройкой качества в зависимости от условий сети. Он также поддерживает создание прямых трансляций с вещанием через RTMPS.

Ключевые возможности

  • :clapper_board: Интеграция с редактором: Опциональная кнопка на панели инструментов для прямой загрузки видео из редактора
  • :outbox_tray: Автоматическое перехватывание загрузки: Видеофайлы, превышающие настраиваемый порог размера, автоматически загружаются в Cloudflare Stream вместо локального хранилища
  • :high_voltage: Возобновляемая загрузка: Основано на tus-js-client для надежной загрузки файлов размером более 200 МБ с автоматическим возобновлением при проблемах с подключением
  • :locked: Безопасный прокси: Серверная точка генерирует короткие URL-адреса загрузки Cloudflare Stream, сохраняя ваши учетные данные API в безопасности
  • :satellite_antenna: Прямая трансляция: Создание прямых трансляций с вещанием через RTMPS непосредственно из редактора
  • :movie_camera: Пользовательский BBCode: Простой синтаксис [video-stream id="..."] для встраивания видео
  • :television: Адаптивная потоковая передача: Интеграция Shaka Player с манифестами DASH для плавного воспроизведения при разной скорости сети
  • :gear: Элементы управления воспроизведением: Встроенный интерфейс для выбора разрешения и управления скоростью воспроизведения

Установка

Добавьте плагин в ваш файл app.yml:

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/xfalcox/discourse-video-stream.git

Затем пересоберите контейнер:

./launcher rebuild app

Конфигурация

Перейдите в Администрирование → Настройки → Потоковая передача видео и настройте:

Настройка Описание Значение по умолчанию
video_stream_enabled Включить плагин потоковой передачи видео false
video_stream_account_id Идентификатор вашей учетной записи Cloudflare -
video_stream_api_token Токен API с разрешениями Stream:Edit -
video_stream_customer_subdomain Ваш домен Cloudflare Stream (например, customer-xxxxx.cloudflarestream.com) -
video_stream_allowed_extensions Список разрешенных видеоформатов через запятую mp4,webm,mov
video_stream_max_file_size Максимальный размер файла в МБ (1–2000) 500
video_stream_intercept_native_uploads Автоматически перехватывать загрузку больших видеофайлов true
video_stream_intercept_threshold_mb Порог размера в МБ для автоматического перехвата (1–2000) 10
video_stream_enable_live_streams Включить функцию прямой трансляции false

Получение учетных данных Cloudflare Stream

  1. Войдите в панель управления Cloudflare
  2. Перейдите в раздел Stream в вашей учетной записи
  3. Скопируйте идентификатор учетной записи из обзора Stream
  4. Создайте токен API с разрешениями Stream:Edit
  5. Запишите ваш поддомен клиента из настроек Stream

Использование

После настройки у пользователей есть два способа загрузки видео:

Автоматическое перехватывание

Когда пользователь перетаскивает или выбирает видеофайл, превышающий значение параметра video_stream_intercept_threshold_mb, плагин автоматически обрабатывает его через Cloudflare Stream вместо локального хранилища. Для этого необходимо разрешить расширения видеофайлов в настройках разрешенных расширений.

Ручная загрузка

Пользователи могут нажать на всплывающее меню панели инструментов редактора (:plus:) и выбрать опцию загрузки видео, чтобы явно загрузить файл в Cloudflare Stream.

Оба метода вставляют тег BBCode [video-stream id="video_id"], который отображается как адаптивный плеер с элементами управления разрешением и скоростью.

Прямая трансляция

Когда включен параметр video_stream_enable_live_streams, пользователи могут создавать прямые трансляции:

  1. Нажмите на всплывающее меню панели инструментов редактора (:plus:) и выберите «Создать прямую трансляцию»
  2. Модальное окно генерирует учетные данные RTMPS через API Cloudflare Stream
  3. Скопируйте URL-адрес RTMPS и ключ потока с помощью удобных кнопок копирования
  4. Используйте учетные данные в OBS, Streamlabs или любом программном обеспечении для вещания, совместимом с RTMPS
  5. Нажмите «Вставить код встраивания», чтобы добавить тег BBCode [video-stream id="..."] в ваш пост
  6. Начните вещание немедленно

Возможности прямой трансляции:

  • Автоматическая запись включена по умолчанию (трансляции сохраняются для последующего воспроизведения)
  • Тот же адаптивный плеер работает как для прямых, так и для записанных материалов
  • Пользователи видят прямой контент во время трансляции, а затем могут посмотреть запись
  • Безопасная обработка учетных данных с предупреждающими сообщениями

Почему Cloudflare Stream?

У нас есть поддержка аналогичного функционала с использованием AWS в коде и Mux в GitHub - discourse/discourse-video · GitHub, поэтому более дешевая альтернатива казалась хорошей идеей.

Требования

  • Активная учетная запись Cloudflare с включенным сервисом Stream

Источник и поддержка

Скриншоты

Демонстрация

Посетите мой тестовый сайт и загрузите несколько видео

https://discourse-on-a-pi5.falco.dev/t/test-video-upload-plugin/20?u=falco


Примечание: Это не #официальный плагин.

17 лайков

Обновление: Поддержка прямой трансляции теперь доступна! :satellite_antenna:

Плагин теперь поддерживает прямые трансляции с вещанием по протоколу RTMPS!

Что нового:

  • Создание прямых трансляций прямо из меню панели инструментов редактора
  • Мгновенное получение учётных данных RTMPS через API Cloudflare Stream
  • Трансляция с помощью OBS, Streamlabs или любого совместимого с RTMPS ПО
  • Автоматическая запись включена — трансляции сохраняются для воспроизведения после окончания вещания
  • Тот же BBCode [video-stream id="..."] и адаптивный плеер для прямых и записанных материалов

Как включить:
Установите video_stream_enable_live_streams в значение true в разделе Администрирование → Настройки → Видеотрансляция

Полные детали рабочего процесса прямой трансляции см. в обновлённом первом сообщении темы.

12 лайков

Привет, очень здорово. Я работаю в сфере кино и телевидения, и мы создаём медиаконцентрированный опыт.

Мы используем Bunny. Насколько сложно будет изменить конечные точки в плагине, чтобы поддержать разные CDN и стриминговые платформы?

4 лайка

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

3 лайка

Спасибо, Фалько. Разберёмся.

1 лайк