Transmissão de Vídeo do Discourse 🎥

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

  • :clapper_board: Integração com Composer: Botão de barra de ferramentas opcional para uploads diretos de vídeo do composer
  • :outbox_tray: 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
  • :high_voltage: Uploads Resumíveis: Construído sobre tus-js-client para uploads confiáveis de arquivos bem acima de 200 MB com retomada automática em caso de problemas de conexão
  • :locked: Proxy Seguro: Endpoint do lado do servidor gera URLs de upload do Cloudflare Stream de curta duração, mantendo suas credenciais de API seguras
  • :movie_camera: BBCode Personalizado: Sintaxe simples [video-stream id=\"...\"] para incorporar vídeos
  • :television: Streaming Adaptável: Integração com Shaka Player com manifestos DASH para reprodução suave em velocidades de rede variáveis
  • :gear: 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

  1. Faça login no seu painel Cloudflare
  2. Navegue até Stream em sua conta
  3. Copie seu ID de Conta da visão geral do Stream
  4. Crie um token de API com permissões Stream:Edit
  5. 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 (:plus:) 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

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.

11 curtidas