Discourse Video Stream 🎥

Discourse Video Stream aggiunge l’integrazione perfetta con Cloudflare Stream per caricare e incorporare contenuti video di alta qualità e di lunga durata e lo streaming live nel tuo sito Discourse.

Panoramica

Questo plugin fornisce un flusso di lavoro completo per la gestione di file video di grandi dimensioni con streaming a bitrate adattivo, consentendo agli utenti di caricare video direttamente dal compositore e riprodurli con regolazione automatica della qualità in base alle loro condizioni di rete. Supporta anche la creazione di streaming live con trasmissione RTMPS.

Caratteristiche Principali

  • :clapper_board: Integrazione con il Compositore: Pulsante opzionale della barra degli strumenti per il caricamento diretto di video dal compositore
  • :outbox_tray: Intercettazione Automatica dei Caricamenti: I video che superano una soglia di dimensione configurabile vengono caricati automaticamente su Cloudflare Stream anziché sulla memoria locale
  • :high_voltage: Caricamenti Riprendibili: Basato su tus-js-client per caricamenti affidabili di file ben oltre i 200 MB con ripresa automatica in caso di problemi di connessione
  • :locked: Proxy Sicuro: L’endpoint lato server genera URL di caricamento di Cloudflare Stream di breve durata, mantenendo al sicuro le tue credenziali API
  • :satellite_antenna: Streaming Live: Crea streaming live con trasmissione RTMPS direttamente dal compositore
  • :movie_camera: BBCode Personalizzato: Semplice sintassi [video-stream id=\"...\"] per incorporare video
  • :television: Streaming Adattivo: Integrazione con Shaka Player con manifest DASH per una riproduzione fluida su diverse velocità di rete
  • :gear: Controlli di Riproduzione: Interfaccia utente integrata per la selezione della risoluzione e il controllo della velocità di riproduzione

Installazione

Aggiungi il plugin al tuo app.yml:

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

Quindi ricostruisci il tuo container:

./launcher rebuild app

Configurazione

Naviga su Amministrazione → Impostazioni → Video streaming e configura:

Impostazione Descrizione Predefinito
video_stream_enabled Abilita il plugin di streaming video false
video_stream_account_id Il tuo identificatore di account Cloudflare -
video_stream_api_token Token API con permessi Stream:Edit -
video_stream_customer_subdomain Il tuo dominio Cloudflare Stream (es. customer-xxxxx.cloudflarestream.com) -
video_stream_allowed_extensions Elenco separato da virgole dei formati video consentiti mp4,webm,mov
video_stream_max_file_size Dimensione massima del file in MB (1-2000) 500
video_stream_intercept_native_uploads Intercetta automaticamente i caricamenti video di grandi dimensioni true
video_stream_intercept_threshold_mb Soglia di dimensione in MB per l’intercettazione automatica (1-2000) 10
video_stream_enable_live_streams Abilita la funzione di streaming live false

Ottenere le Credenziali di Cloudflare Stream

  1. Accedi alla tua dashboard Cloudflare
  2. Naviga su Stream sotto il tuo account
  3. Copia il tuo Account ID dalla panoramica di Stream
  4. Crea un token API con i permessi Stream:Edit
  5. Prendi nota del tuo sottodominio Cliente dalle impostazioni di Stream

Utilizzo

Una volta configurato, gli utenti hanno due modi per caricare video:

Intercettazione Automatica

Quando un utente trascina e rilascia o seleziona un file video che supera l’impostazione video_stream_intercept_threshold_mb, il plugin lo gestisce automaticamente tramite Cloudflare Stream anziché tramite la memoria locale. È necessario consentire le estensioni dei file video nelle impostazioni delle estensioni consentite affinché ciò funzioni.

Caricamento Manuale

Gli utenti possono fare clic sul menu a comparsa della barra degli strumenti del compositore (:plus:) e selezionare l’opzione di caricamento video per caricare esplicitamente su Cloudflare Stream.

Entrambi i metodi inseriscono un tag BBCode [video-stream id=\"video_id\"] che viene renderizzato come un lettore di streaming adattivo con controlli di risoluzione e velocità.

Streaming Live

Quando video_stream_enable_live_streams è abilitato, gli utenti possono creare streaming live:

  1. Fai clic sul menu a comparsa della barra degli strumenti del compositore (:plus:) e seleziona “Crea streaming live”
  2. Una finestra modale genera credenziali RTMPS tramite l’API di Cloudflare Stream
  3. Copia l’URL RTMPS e la chiave di streaming utilizzando i comodi pulsanti di copia
  4. Utilizza le credenziali con OBS, Streamlabs o qualsiasi software di trasmissione compatibile con RTMPS
  5. Fai clic su “Inserisci incorporamento” per aggiungere il BBCode [video-stream id=\"...\"] al tuo post
  6. Inizia la trasmissione immediatamente

Caratteristiche dello Streaming Live:

  • Registrazione automatica abilitata per impostazione predefinita (gli stream vengono salvati per la riproduzione successiva)
  • Lo stesso lettore adattivo funziona sia per i contenuti live che per quelli registrati
  • Gli utenti vedono i contenuti live durante lo streaming, quindi possono guardare la registrazione in seguito
  • Gestione sicura delle credenziali con messaggi di avviso

Perché Cloudflare Stream?

Abbiamo il supporto per fare lo stesso utilizzando AWS nel codice, e con Mux in GitHub - discourse/discourse-video, quindi un’alternativa più economica sembrava una buona idea.

Requisiti

  • Account Cloudflare attivo con Stream abilitato

Sorgente e Supporto

Screenshot

Demo

Visita il mio sito di prova e carica alcuni video

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


Nota: Questo non è un plugin #ufficiale.

16 Mi Piace

Aggiornamento: Supporto per lo streaming live ora disponibile! :satellite_antenna:

Il plugin ora supporta lo streaming live con trasmissione RTMPS!

Novità:

  • Crea flussi live direttamente dal menu della barra degli strumenti del compositore
  • Ottieni le credenziali RTMPS istantaneamente tramite Cloudflare Stream API
  • Trasmetti con OBS, Streamlabs o qualsiasi software compatibile con RTMPS
  • Registrazione automatica abilitata: i flussi vengono salvati per la riproduzione al termine della trasmissione
  • Stesso BBCode [video-stream id="..."] e lettore adattivo sia per i contenuti live che registrati

Come abilitare:
Imposta video_stream_enable_live_streams su true in Amministrazione → Impostazioni → Streaming video

Consulta l’OP aggiornato per tutti i dettagli sul flusso di lavoro dello streaming live.

11 Mi Piace

Ehi, Molto bello. Lavoro nel cinema e nella TV e stiamo costruendo un’esperienza incentrata sui media.

Usiamo Bunny. Quanto sarebbe facile per noi modificare gli endpoint nel plugin per consentire diversi CDN/piattaforme di streaming?

3 Mi Piace

Sembra che l’offerta di Bunny sia assurdamente simile a quella di Cloudflare, dovrebbe essere facile aggiungervi il supporto.

3 Mi Piace

Grazie Falco. Ci darò un’occhiata.

1 Mi Piace