Discurso de transmisión de video 🎥

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

  • :clapper_board: Integración con el Compositor: Botón de barra de herramientas opcional para subir videos directamente desde el compositor
  • :outbox_tray: 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
  • :high_voltage: Subidas Reanudables: Basado en tus-js-client para subidas fiables de archivos de más de 200 MB con reanudación automática en caso de problemas de conexión
  • :locked: 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
  • :satellite_antenna: Transmisión en Vivo: Cree transmisiones en vivo con difusión RTMPS directamente desde el compositor
  • :movie_camera: BBCode Personalizado: Sintaxis simple [video-stream id=\"...\"] para incrustar videos
  • :television: Transmisión Adaptativa: Integración con Shaka Player con manifiestos DASH para una reproducción fluida en velocidades de red variables
  • :gear: 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

  1. Inicie sesión en su panel de Cloudflare
  2. Navegue a Stream bajo su cuenta
  3. Copie su ID de Cuenta desde la descripción general de Stream
  4. Cree un token de API con permisos Stream:Edit
  5. 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 (:plus:) 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:

  1. Haga clic en el menú emergente (:plus:) de la barra de herramientas del compositor y seleccione “Crear transmisión en vivo”
  2. Un modal genera credenciales RTMPS a través de la API de Cloudflare Stream
  3. Copie la URL RTMPS y la clave de transmisión usando los convenientes botones de copia
  4. Use las credenciales con OBS, Streamlabs o cualquier software de transmisión compatible con RTMPS
  5. Haga clic en “Insertar incrustación” para agregar la etiqueta BBCode [video-stream id=\"...\"] a su publicación
  6. 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

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.

16 Me gusta

Actualización: ¡Soporte para transmisión en vivo ya disponible! :satellite_antenna:

El plugin ahora soporta transmisión en vivo con difusión RTMPS!

Novedades:

  • Crea transmisiones en vivo directamente desde el menú de la barra de herramientas del compositor
  • Obtén credenciales RTMPS instantáneamente a través de la API de Cloudflare Stream
  • Transmite con OBS, Streamlabs o cualquier software compatible con RTMPS
  • Grabación automática habilitada: las transmisiones se guardan para su reproducción después de que finaliza la difusión
  • El mismo BBCode [video-stream id="..."] y reproductor adaptativo para contenido en vivo y grabado

Cómo habilitar:
Establece video_stream_enable_live_streams como true en Administrador → Configuración → Transmisión de video

Consulta el OP actualizado para obtener todos los detalles sobre el flujo de trabajo de transmisión en vivo.

11 Me gusta

Hola, muy bien. Trabajo en Cine y Televisión y estamos construyendo una experiencia centrada en los medios.

Usamos Bunny. ¿Qué tan fácil sería para nosotros modificar los endpoints en el plugin para permitir diferentes CDN/plataformas de streaming?

3 Me gusta

Parece que la oferta de Bunny es muy similar a la de Cloudflare, debería ser fácil añadir soporte para ella.

3 Me gusta

Gracias Falco. Lo investigaré.

1 me gusta