Discourse Video Stream ajoute une intégration transparente avec Cloudflare Stream pour télécharger et intégrer du contenu vidéo de haute qualité et de longue durée et le streaming en direct sur votre site Discourse.
Aperçu
Ce plugin fournit un flux de travail complet pour la gestion de fichiers vidéo volumineux avec streaming adaptatif à débit binaire, permettant à vos utilisateurs de télécharger des vidéos directement depuis le compositeur et de les lire avec un ajustement automatique de la qualité en fonction de leurs conditions réseau. Il prend également en charge la création de flux en direct avec diffusion RTMPS.
Fonctionnalités Clés
Intégration au Compositeur: Bouton de barre d’outils optionnel pour les téléchargements vidéo directs depuis le compositeur
Interception Automatique des Téléchargements: Les vidéos dépassant un seuil de taille configurable sont automatiquement téléchargées sur Cloudflare Stream au lieu du stockage local
Téléchargements Reprenables: Basé sur tus-js-clientpour des téléchargements fiables de fichiers bien au-delà de 200 Mo avec reprise automatique en cas de problèmes de connexion
Proxy Sécurisé: Un point de terminaison côté serveur génère des URL de téléchargement Cloudflare Stream de courte durée, gardant vos informations d’identification API en sécurité
Streaming en Direct: Créez des flux en direct avec diffusion RTMPS directement depuis le compositeur
BBCode Personnalisé: Syntaxe simple [video-stream id=\"...\"]pour intégrer des vidéos
Streaming Adaptatif: Intégration de Shaka Player avec des manifestes DASH pour une lecture fluide sur différentes vitesses de réseau
Commandes de Lecture: Interface utilisateur intégrée pour la sélection de la résolution et le contrôle de la vitesse de lecture
Installation
Ajoutez le plugin Ă votre app.yml:
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/xfalcox/discourse-video-stream.git
Puis reconstruisez votre conteneur :
./launcher rebuild app
Configuration
Naviguez vers Admin → Paramètres → Video streaming et configurez :
| Paramètre | Description | Défaut |
|---|---|---|
| video_stream_enabled | Activer le plugin de streaming vidéo | false |
| video_stream_account_id | Votre identifiant de compte Cloudflare | - |
| video_stream_api_token | Jeton API avec les permissions Stream:Edit | - |
| video_stream_customer_subdomain | Votre domaine Cloudflare Stream (ex: customer-xxxxx.cloudflarestream.com) | - |
| video_stream_allowed_extensions | Liste des formats vidéo autorisés, séparés par des virgules | mp4,webm,mov |
| video_stream_max_file_size | Taille maximale du fichier en Mo (1-2000) | 500 |
| video_stream_intercept_native_uploads | Intercepter automatiquement les téléchargements vidéo volumineux | true |
| video_stream_intercept_threshold_mb | Seuil de taille en Mo pour l’interception automatique (1-2000) | 10 |
| video_stream_enable_live_streams | Activer la fonctionnalité de streaming en direct | false |
Obtention des Informations d’Identification Cloudflare Stream
- Connectez-vous Ă votre tableau de bord Cloudflare
- Naviguez vers Stream sous votre compte
- Copiez votre ID de compte depuis l’aperçu de Stream
- Créez un jeton API avec les permissions Stream:Edit
- Notez votre sous-domaine client depuis les paramètres de Stream
Utilisation
Une fois configuré, les utilisateurs ont deux façons de télécharger des vidéos :
Interception Automatique
Lorsqu’un utilisateur fait glisser et dépose ou sélectionne un fichier vidéo qui dépasse le paramètre video_stream_intercept_threshold_mb, le plugin le gère automatiquement via Cloudflare Stream au lieu du stockage local. Vous devez autoriser les extensions de fichiers vidéo dans les paramètres d’extension autorisées pour que cela fonctionne.
Téléchargement Manuel
Les utilisateurs peuvent cliquer sur le menu contextuel de la barre d’outils du compositeur (
) et sélectionner l’option de téléchargement vidéo pour télécharger explicitement vers Cloudflare Stream.
Les deux méthodes insèrent une balise BBCode [video-stream id="video_id"] qui se rend comme un lecteur de streaming adaptatif avec des commandes de résolution et de vitesse.
Streaming en Direct
Lorsque video_stream_enable_live_streams est activé, les utilisateurs peuvent créer des flux en direct :
- Cliquez sur le menu contextuel de la barre d’outils du compositeur (
) et sélectionnez “Create live stream” (Créer un flux en direct) - Une modale génère des informations d’identification RTMPS via l’API Cloudflare Stream
- Copiez l’URL RTMPS et la clé de flux en utilisant les boutons de copie pratiques
- Utilisez les informations d’identification avec OBS, Streamlabs ou tout logiciel de diffusion compatible RTMPS
- Cliquez sur “Insert embed” (Insérer l’intégration) pour ajouter la balise BBCode [video-stream id="…"] à votre publication
- Commencez la diffusion immédiatement
Fonctionnalités du Flux en Direct :
- Enregistrement automatique activé par défaut (les flux sont sauvegardés pour une lecture ultérieure)
- Le même lecteur adaptatif fonctionne pour le contenu en direct et enregistré
- Les utilisateurs voient le contenu en direct pendant le streaming, puis peuvent regarder l’enregistrement par la suite
- Gestion sécurisée des informations d’identification avec messages d’avertissement
Pourquoi Cloudflare Stream ?
Nous avons un support pour faire la même chose en utilisant AWS dans le code, et avec Mux dans GitHub - discourse/discourse-video, donc une alternative moins chère semblait être une bonne idée.
Prérequis
- Compte Cloudflare actif avec Stream activé
Source & Support
- Dépôt : GitHub - xfalcox/discourse-video-stream
Captures d’Écran
Démo
Visitez mon site de test et téléchargez quelques vidéos
https://discourse-on-a-pi5.falco.dev/t/test-video-upload-plugin/20?u=falco
Note : Ceci n’est pas un plugin #officiel.


