Discourse Video Stream fügt eine nahtlose Cloudflare Stream-Integration hinzu, um hochwertige, langformatige Videoinhalte auf Ihrer Discourse-Site hochzuladen und einzubetten.
Übersicht
Dieses Plugin bietet einen vollständigen Workflow für die Verarbeitung großer Videodateien mit adaptiver Bitraten-Streaming, sodass Ihre Benutzer Videos direkt aus dem Composer hochladen und sie mit automatischer Qualitätsanpassung basierend auf ihren Netzwerkbedingungen wiedergeben können.
Hauptmerkmale
Composer-Integration: Optionaler Toolbar-Button für direkte Video-Uploads aus dem Composer
Automatische Upload-Abfangen: Videos, die eine konfigurierbare Größenbeschränkung überschreiten, werden automatisch an Cloudflare Stream statt an den lokalen Speicher hochgeladen
Wiederaufnehmbare Uploads: Basiert auf tus-js-clientfür zuverlässige Uploads von Dateien weit über 200 MB hinaus mit automatischem Wiederaufnehmen bei Verbindungsproblemen
Sicheres Proxy: Serverseitiger Endpunkt generiert kurzlebige Cloudflare Stream-Upload-URLs, wodurch Ihre API-Anmeldeinformationen sicher bleiben
Benutzerdefiniertes BBCode: Einfache [video-stream id="..."]-Syntax zum Einbetten von Videos
Adaptives Streaming: Shaka Player-Integration mit DASH-Manifesten für reibungslose Wiedergabe bei unterschiedlichen Netzwerkgeschwindigkeiten
Wiedergabesteuerung: Integrierte Benutzeroberfläche zur Auswahl der Auflösung und Steuerung der Wiedergabegeschwindigkeit
Installation
Fügen Sie das Plugin zu Ihrer app.yml hinzu:
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/xfalcox/discourse-video-stream.git
Bauen Sie dann Ihren Container neu:
./launcher rebuild app
Konfiguration
Navigieren Sie zu Admin → Einstellungen → Video-Streaming und konfigurieren Sie:
| Einstellung | Beschreibung | Standard |
|---|---|---|
| video_stream_enabled | Aktiviert das Video-Streaming-Plugin | false |
| video_stream_account_id | Ihre Cloudflare-Konto-ID | - |
| video_stream_api_token | API-Token mit Stream:Edit-Berechtigungen | - |
| video_stream_customer_subdomain | Ihre Cloudflare Stream-Domain (z. B. customer-xxxxx.cloudflarestream.com) | - |
| video_stream_allowed_extensions | Komma-getrennte Liste erlaubter Videoformate | mp4,webm,mov |
| video_stream_max_file_size | Maximale Dateigröße in MB (1-2000) | 500 |
| video_stream_intercept_native_uploads | Automatische Abfangen großer Video-Uploads | true |
| video_stream_intercept_threshold_mb | Schwellenwertgröße in MB für automatisches Abfangen (1-2000) | 10 |
Cloudflare Stream-Anmeldeinformationen erhalten
- Melden Sie sich in Ihrem Cloudflare-Dashboard an
- Navigieren Sie zu Stream unter Ihrem Konto
- Kopieren Sie Ihre Account ID aus der Stream-Übersicht
- Erstellen Sie ein API-Token mit Stream:Edit-Berechtigungen
- Notieren Sie Ihre Kunden-Subdomain aus den Stream-Einstellungen
Verwendung
Nach der Konfiguration haben Benutzer zwei Möglichkeiten, Videos hochzuladen:
Automatische Abfangen
Wenn ein Benutzer eine Videodatei per Drag & Drop zieht oder auswählt, die die Einstellung video_stream_intercept_threshold_mb überschreitet, behandelt das Plugin diese automatisch über Cloudflare Stream anstelle des lokalen Speichers. Sie müssen Video-Dateierweiterungen in den Einstellungen für erlaubte Erweiterungen zulassen, damit dies funktioniert.
Manueller Upload
Benutzer können auf das Pop-up-Menü (
) der Composer-Toolbar klicken und die Option zum Hochladen von Videos auswählen, um explizit zu Cloudflare Stream hochzuladen.
Beide Methoden fügen ein [video-stream id="video_id"]-BBCode-Tag ein, das als adaptiver Streaming-Player mit Auflösungs- und Geschwindigkeitssteuerungen gerendert wird.
Warum Cloudflare Stream?
Wir haben Unterstützung dafür, dasselbe mit AWS im Code und mit Mux in GitHub - discourse/discourse-video zu tun. Eine günstigere Alternative schien daher eine gute Idee zu sein.
Anforderungen
- Aktives Cloudflare-Konto mit aktiviertem Stream
Quelle & Support
- Repository: GitHub - xfalcox/discourse-video-stream
Screenshots
Demo
Besuchen Sie meine Testseite und laden Sie einige Videos hoch
Test Video Upload plugin - General - Discourse on a Pi 5
Hinweis: Dies ist kein #offizielles Plugin.

