Discourse Video Stream añade integración perfecta con Cloudflare Stream para subir e incrustar contenido de video de formato largo de alta calidad y transmisión en vivo en su sitio de Discourse.
Resumen
Este plugin proporciona un flujo de trabajo completo para manejar archivos de video grandes con transmisión de bitrate adaptativo, lo que permite a sus usuarios subir videos directamente desde el compositor y reproducirlos con ajuste automático de calidad basado en sus condiciones de red. También admite la creación de transmisiones en vivo con difusión RTMPS.
Características Clave
Integración con el Compositor: Botón de barra de herramientas opcional para subir videos directamente desde el compositor
Intercepción Automática de Subidas: Los videos que exceden un umbral de tamaño configurable se suben automáticamente a Cloudflare Stream en lugar del almacenamiento local
Subidas Reanudables: Basado en tus-js-clientpara subidas fiables de archivos de más de 200 MB con reanudación automática en caso de problemas de conexión
Proxy Seguro: El endpoint del lado del servidor genera URLs de subida de Cloudflare Stream de corta duración, manteniendo seguras sus credenciales de API
Transmisión en Vivo: Cree transmisiones en vivo con difusión RTMPS directamente desde el compositor
BBCode Personalizado: Sintaxis simple [video-stream id=\"...\"]para incrustar videos
Transmisión Adaptativa: Integración con Shaka Player con manifiestos DASH para una reproducción fluida en velocidades de red variables
Controles de Reproducción: Interfaz de usuario incorporada para selección de resolución y control de velocidad de reproducción
Instalación
Agregue el plugin a su app.yml:
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/xfalcox/discourse-video-stream.git
Luego reconstruya su contenedor:
./launcher rebuild app
Configuración
Navegue a Admin → Configuración → Video streaming y configure:
| Configuración | Descripción | Por defecto |
|---|---|---|
| video_stream_enabled | Habilitar el plugin de transmisión de video | false |
| video_stream_account_id | Su identificador de cuenta de Cloudflare | - |
| video_stream_api_token | Token de API con permisos Stream:Edit | - |
| video_stream_customer_subdomain | Su dominio de Cloudflare Stream (ej. customer-xxxxx.cloudflarestream.com) | - |
| video_stream_allowed_extensions | Lista separada por comas de formatos de video permitidos | mp4,webm,mov |
| video_stream_max_file_size | Tamaño máximo de archivo en MB (1-2000) | 500 |
| video_stream_intercept_native_uploads | Interceptar automáticamente subidas de video grandes | true |
| video_stream_intercept_threshold_mb | Umbral de tamaño en MB para la intercepción automática (1-2000) | 10 |
| video_stream_enable_live_streams | Habilitar la función de transmisión en vivo | false |
Obtener Credenciales de Cloudflare Stream
- Inicie sesión en su panel de Cloudflare
- Navegue a Stream bajo su cuenta
- Copie su ID de Cuenta desde la descripción general de Stream
- Cree un token de API con permisos Stream:Edit
- Anote su subdominio de cliente desde la configuración de Stream
Uso
Una vez configurado, los usuarios tienen dos formas de subir videos:
Intercepción Automática
Cuando un usuario arrastra y suelta o selecciona un archivo de video que excede la configuración video_stream_intercept_threshold_mb, el plugin lo maneja automáticamente a través de Cloudflare Stream en lugar del almacenamiento local. Debe permitir las extensiones de archivo de video en la configuración de extensiones permitidas para que esto funcione.
Subida Manual
Los usuarios pueden hacer clic en el menú emergente (
) de la barra de herramientas del compositor y seleccionar la opción de subir video para subir explícitamente a Cloudflare Stream.
Ambos métodos insertan una etiqueta BBCode [video-stream id=\"video_id\"] que se renderiza como un reproductor de transmisión adaptativa con controles de resolución y velocidad.
Transmisión en Vivo
Cuando video_stream_enable_live_streams está habilitado, los usuarios pueden crear transmisiones en vivo:
- Haga clic en el menú emergente (
) de la barra de herramientas del compositor y seleccione “Crear transmisión en vivo” - Un modal genera credenciales RTMPS a través de la API de Cloudflare Stream
- Copie la URL RTMPS y la clave de transmisión usando los convenientes botones de copia
- Use las credenciales con OBS, Streamlabs o cualquier software de transmisión compatible con RTMPS
- Haga clic en “Insertar incrustación” para agregar la etiqueta BBCode
[video-stream id=\"...\"]a su publicación - Comience a transmitir inmediatamente
Características de la Transmisión en Vivo:
- Grabación automática habilitada por defecto (las transmisiones se guardan para su posterior reproducción)
- El mismo reproductor adaptativo funciona tanto para contenido en vivo como grabado
- Los usuarios ven contenido en vivo mientras se transmite, y luego pueden ver la grabación después
- Manejo seguro de credenciales con mensajes de advertencia
¿Por qué Cloudflare Stream?
Tenemos soporte para hacer lo mismo usando AWS en el código, y con Mux en GitHub - discourse/discourse-video, por lo que una alternativa más económica parecía una buena idea.
Requisitos
- Cuenta activa de Cloudflare con Stream habilitado
Fuente y Soporte
- Repositorio: GitHub - xfalcox/discourse-video-stream
Capturas de Pantalla
Demo
Visite mi sitio de prueba y suba algunos videos
https://discourse-on-a-pi5.falco.dev/t/test-video-upload-plugin/20?u=falco
Nota: Este no es un plugin official.


