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 de alta qualidade e transmissão ao vivo no 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 compositor e os reproduzam com ajuste automático de qualidade com base nas condições de sua rede. Ele também suporta a criação de transmissões ao vivo com transmissão RTMPS.

Principais Recursos

  • :clapper_board: Integração com o Compositor: Botão de barra de ferramentas opcional para uploads diretos de vídeo a partir do compositor
  • :outbox_tray: Interceptação Automática de Upload: Vídeos que excedem um limite de tamanho configurável são automaticamente enviados para o Cloudflare Stream em vez do armazenamento local
  • :high_voltage: Uploads Retomáveis: Baseado no 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: O endpoint do lado do servidor gera URLs de upload do Cloudflare Stream de curta duração, mantendo suas credenciais de API seguras
  • :satellite_antenna: Transmissão ao Vivo: Crie transmissões ao vivo com transmissão RTMPS diretamente do compositor
  • :movie_camera: BBCode Personalizado: Sintaxe simples [video-stream id=\"...\"] para incorporar vídeos
  • :television: Streaming Adaptativo: 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 → Video streaming 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 (ex: 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 do 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
video_stream_enable_live_streams Habilitar o recurso de transmissão ao vivo false

Obtendo Credenciais do Cloudflare Stream

  1. Faça login no seu painel Cloudflare
  2. Navegue até Stream sob sua conta
  3. Copie seu ID de Conta na 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

Uma vez configurado, 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 do armazenamento local. Você precisa permitir 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 compositor (:plus:) 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 adaptativo com controles de resolução e velocidade.

Transmissão ao Vivo

Quando video_stream_enable_live_streams está habilitado, os usuários podem criar transmissões ao vivo:

  1. Clique no menu pop-up da barra de ferramentas do compositor (:plus:) e selecione “Criar transmissão ao vivo”
  2. Um modal gera credenciais RTMPS via API do Cloudflare Stream
  3. Copie a URL RTMPS e a chave de transmissão usando os botões de cópia convenientes
  4. Use as credenciais com OBS, Streamlabs ou qualquer software de transmissão compatível com RTMPS
  5. Clique em “Inserir incorporação” para adicionar o BBCode [video-stream id=\"...\"] à sua postagem
  6. Comece a transmitir imediatamente

Recursos de Transmissão ao Vivo:

  • Gravação automática ativada por padrão (as transmissões são salvas para reprodução posterior)
  • O mesmo player adaptativo funciona para conteúdo ao vivo e gravado
  • Os usuários veem o conteúdo ao vivo durante a transmissão e podem assistir à gravação depois
  • Manuseio seguro de credenciais com mensagens de aviso

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 pareceu 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

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


Nota: Este não é um plugin #oficial.

16 curtidas

Atualização: Suporte a Transmissão ao Vivo Agora Disponível! :satellite_antenna:

O plugin agora suporta transmissão ao vivo com broadcasting RTMPS!

Novidades:

  • Crie transmissões ao vivo diretamente no menu da barra de ferramentas do compositor
  • Obtenha credenciais RTMPS instantaneamente via Cloudflare Stream API
  • Transmita com OBS, Streamlabs ou qualquer software compatível com RTMPS
  • Gravação automática ativada - as transmissões são salvas para reprodução após o término da transmissão
  • O mesmo BBCode [video-stream id=\"...\"] e reprodutor adaptativo para conteúdo ao vivo e gravado

Como habilitar:
Defina video_stream_enable_live_streams como true em Admin → Configurações → Transmissão de vídeo

Consulte o OP atualizado para obter detalhes completos sobre o fluxo de trabalho de transmissão ao vivo.

11 curtidas

Ei, muito legal. Eu trabalho com Cinema e TV e estamos construindo uma experiência centrada em mídia.

Nós usamos o Bunny. Quão fácil seria para nós modificarmos os endpoints no plugin para permitir diferentes CDNs/plataformas de streaming?

3 curtidas

Parece que a oferta da Bunny é muito semelhante à da Cloudflare, deve ser fácil adicionar suporte para ela.

3 curtidas

Obrigado, Falco. Vou verificar isso.

1 curtida