Discourse Video Stream обеспечивает бесшовную интеграцию с Cloudflare Stream для загрузки и встраивания высококачественного длинного видеоконтента и прямой трансляции на вашем сайте Discourse.
Обзор
Этот плагин предоставляет полный рабочий процесс для обработки больших видеофайлов с адаптивной потоковой передачей с изменением битрейта, позволяя пользователям загружать видео непосредственно из редактора и воспроизводить их с автоматической настройкой качества в зависимости от условий сети. Он также поддерживает создание прямых трансляций с вещанием через RTMPS.
Ключевые возможности
Интеграция с редактором: Опциональная кнопка на панели инструментов для прямой загрузки видео из редактора
Автоматическое перехватывание загрузки: Видеофайлы, превышающие настраиваемый порог размера, автоматически загружаются в Cloudflare Stream вместо локального хранилища
Возобновляемая загрузка: Основано на tus-js-clientдля надежной загрузки файлов размером более 200 МБ с автоматическим возобновлением при проблемах с подключением
Безопасный прокси: Серверная точка генерирует короткие URL-адреса загрузки Cloudflare Stream, сохраняя ваши учетные данные API в безопасности
Прямая трансляция: Создание прямых трансляций с вещанием через RTMPS непосредственно из редактора
Пользовательский BBCode: Простой синтаксис [video-stream id="..."]для встраивания видео
Адаптивная потоковая передача: Интеграция Shaka Player с манифестами DASH для плавного воспроизведения при разной скорости сети
Элементы управления воспроизведением: Встроенный интерфейс для выбора разрешения и управления скоростью воспроизведения
Установка
Добавьте плагин в ваш файл 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
- Войдите в панель управления Cloudflare
- Перейдите в раздел Stream в вашей учетной записи
- Скопируйте идентификатор учетной записи из обзора Stream
- Создайте токен API с разрешениями Stream:Edit
- Запишите ваш поддомен клиента из настроек Stream
Использование
После настройки у пользователей есть два способа загрузки видео:
Автоматическое перехватывание
Когда пользователь перетаскивает или выбирает видеофайл, превышающий значение параметра video_stream_intercept_threshold_mb, плагин автоматически обрабатывает его через Cloudflare Stream вместо локального хранилища. Для этого необходимо разрешить расширения видеофайлов в настройках разрешенных расширений.
Ручная загрузка
Пользователи могут нажать на всплывающее меню панели инструментов редактора (
) и выбрать опцию загрузки видео, чтобы явно загрузить файл в Cloudflare Stream.
Оба метода вставляют тег BBCode [video-stream id="video_id"], который отображается как адаптивный плеер с элементами управления разрешением и скоростью.
Прямая трансляция
Когда включен параметр video_stream_enable_live_streams, пользователи могут создавать прямые трансляции:
- Нажмите на всплывающее меню панели инструментов редактора (
) и выберите «Создать прямую трансляцию» - Модальное окно генерирует учетные данные RTMPS через API Cloudflare Stream
- Скопируйте URL-адрес RTMPS и ключ потока с помощью удобных кнопок копирования
- Используйте учетные данные в OBS, Streamlabs или любом программном обеспечении для вещания, совместимом с RTMPS
- Нажмите «Вставить код встраивания», чтобы добавить тег BBCode
[video-stream id="..."]в ваш пост - Начните вещание немедленно
Возможности прямой трансляции:
- Автоматическая запись включена по умолчанию (трансляции сохраняются для последующего воспроизведения)
- Тот же адаптивный плеер работает как для прямых, так и для записанных материалов
- Пользователи видят прямой контент во время трансляции, а затем могут посмотреть запись
- Безопасная обработка учетных данных с предупреждающими сообщениями
Почему Cloudflare Stream?
У нас есть поддержка аналогичного функционала с использованием AWS в коде и Mux в GitHub - discourse/discourse-video · GitHub, поэтому более дешевая альтернатива казалась хорошей идеей.
Требования
- Активная учетная запись Cloudflare с включенным сервисом Stream
Источник и поддержка
- Репозиторий: GitHub - xfalcox/discourse-video-stream · GitHub
Скриншоты
Демонстрация
Посетите мой тестовый сайт и загрузите несколько видео
https://discourse-on-a-pi5.falco.dev/t/test-video-upload-plugin/20?u=falco
Примечание: Это не #официальный плагин.


