Discourse Video Stream adiciona integração perfeita com o Cloudflare Stream para upload e incorporação de conteúdo de vídeo longo e de alta qualidade em seu site Discourse.
Visão Geral
Este plugin fornece um fluxo de trabalho completo para lidar com arquivos de vídeo grandes com streaming de taxa de bits adaptável, permitindo que seus usuários enviem vídeos diretamente do composer e os reproduzam com ajuste automático de qualidade com base em suas condições de rede.
Principais Recursos
Integração com Composer: Botão de barra de ferramentas opcional para uploads diretos de vídeo do composer
Interceptação Automática de Upload: Vídeos que excedem um limite de tamanho configurável são enviados automaticamente para o Cloudflare Stream em vez de armazenamento local
Uploads Resumíveis: Construído sobre tus-js-clientpara uploads confiáveis de arquivos bem acima de 200 MB com retomada automática em caso de problemas de conexão
Proxy Seguro: Endpoint do lado do servidor gera URLs de upload do Cloudflare Stream de curta duração, mantendo suas credenciais de API seguras
BBCode Personalizado: Sintaxe simples [video-stream id=\"...\"]para incorporar vídeos
Streaming Adaptável: Integração com Shaka Player com manifestos DASH para reprodução suave em velocidades de rede variáveis
Controles de Reprodução: Interface de usuário integrada para seleção de resolução e controle de velocidade de reprodução
Instalação
Adicione o plugin ao seu app.yml:
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/xfalcox/discourse-video-stream.git
Em seguida, reconstrua seu contêiner:
./launcher rebuild app
Configuração
Navegue até Admin → Configurações → Streaming de vídeo e configure:
| Configuração | Descrição | Padrão |
|---|---|---|
| video_stream_enabled | Habilitar o plugin de streaming de vídeo | false |
| video_stream_account_id | Seu identificador de conta Cloudflare | - |
| video_stream_api_token | Token de API com permissões Stream:Edit | - |
| video_stream_customer_subdomain | Seu domínio Cloudflare Stream (por exemplo, customer-xxxxx.cloudflarestream.com) | - |
| video_stream_allowed_extensions | Lista separada por vírgulas de formatos de vídeo permitidos | mp4,webm,mov |
| video_stream_max_file_size | Tamanho máximo de arquivo em MB (1-2000) | 500 |
| video_stream_intercept_native_uploads | Interceptar automaticamente uploads de vídeo grandes | true |
| video_stream_intercept_threshold_mb | Limite de tamanho em MB para interceptação automática (1-2000) | 10 |
Obtendo Credenciais do Cloudflare Stream
- Faça login no seu painel Cloudflare
- Navegue até Stream em sua conta
- Copie seu ID de Conta da visão geral do Stream
- Crie um token de API com permissões Stream:Edit
- Anote seu subdomínio de Cliente nas configurações do Stream
Uso
Após a configuração, os usuários têm duas maneiras de enviar vídeos:
Interceptação Automática
Quando um usuário arrasta e solta ou seleciona um arquivo de vídeo que excede a configuração video_stream_intercept_threshold_mb, o plugin o gerencia automaticamente via Cloudflare Stream em vez de armazenamento local. Você precisa permitir as extensões de arquivo de vídeo nas configurações de extensão permitidas para que isso funcione.
Upload Manual
Os usuários podem clicar no menu pop-up (
) da barra de ferramentas do composer e selecionar a opção de upload de vídeo para enviar explicitamente para o Cloudflare Stream.
Ambos os métodos inserem uma tag BBCode [video-stream id=\"video_id\"] que é renderizada como um player de streaming adaptável com controles de resolução e velocidade.
Por que Cloudflare Stream?
Temos suporte para fazer o mesmo usando AWS no código, e com Mux em GitHub - discourse/discourse-video, então uma alternativa mais barata parecia uma boa ideia.
Requisitos
- Conta Cloudflare ativa com Stream habilitado
Fonte e Suporte
- Repositório: GitHub - xfalcox/discourse-video-stream
Capturas de Tela
Demonstração
Visite meu site de teste e envie alguns vídeos
Test Video Upload plugin - General - Discourse on a Pi 5
Nota: Este não é um plugin #oficial.

