Sobre o projeto
polyemesis é um servidor de restreaming auto-hospedado cujo diferencial declarado é o roteamento de áudio multicanal por destino. Um único upload é distribuído para tantos destinos quanto o operador configurar, e cada destino recebe sua própria mixagem estéreo somada a partir das trilhas de áudio enviadas pelo encoder. O vídeo é copiado sem alterações, em vez de ser re-encodado.
O caso de uso visado: uma sessão de OBS com trilhas de áudio divididas, onde a trilha um é a mixagem completa incluindo música com direitos autorais, a trilha dois é um feed limpo e a trilha três é o microfone. Plataformas ao vivo normalmente aceitam apenas um par estéreo, portanto, uma única mixagem deve servir a todos ou são necessários vários encoders e uploads. O polyemesis permite que o usuário escolha, por destino, quais trilhas são somadas ao feed estéreo daquele destino. O roteamento é configurado entweder como um modo simples de caixa de seleção por trilha ou como uma matriz de mixagem de canal para saída com ganho por célula.
A ingestão é SRT multitrack, descrita como até 32 trilhas AAC, endereçada por token em uma única porta, com RTMP como fallback de trilha única em uma porta endereçada por chave de stream. Medidores de áudio ao vivo são fornecidos para cada canal de cada trilha, destinados a verificar uma trilha limpa antes de entrar ao vivo. Rendições de vídeo podem ser compartilhadas entre destinos que necessitem de um nível inferior: um encode é contado por referência, de modo que um nível não utilizado não custa nada, e as rendições re-encodam apenas o vídeo, mantendo o roteamento de áudio por destino. Overlays em rendições cobrem uma marca d'água de imagem e uma linha de texto fixo, posicionados e dimensionados como porcentagens do quadro.
Os destinos podem ser RTMP(S), SRT ou arquivo local, cada um iniciável independentemente, com reconexão automática e backoff exponencial. O login em plataformas é oferecido para YouTube, Twitch, Facebook e Kick, com push de chat e metadados onde a API permite, e moderação de chat nas quatro plataformas, incluindo exclusão, banimento, timeout e um cartão de moderador que agrega as mensagens de um usuário em todas as plataformas. Outros recursos operacionais incluem failover com ingestão de standby, uma claquete gerada e um seletor de fonte; métricas Prometheus e regras de alerta no processo com entrega via webhook; webhooks de ciclo de vida assinados em transições de stream e destino; telemetria MQTT retida com descoberta Home Assistant; e TLS autoconfigurável via Let's Encrypt ou CA local. Um grupo de pós-produção cobre gravação multitrack segmentada com retenção, uma fila de jobs, transcrição Whisper com busca de texto completo e um clipper. Muitas configurações são aplicadas sem derrubar o stream, com a ação de salvar indicando quais entraram em vigor.
O software é fornecido como um binário estático único com a UI incorporada, SQLite em Go puro e sem cgo, exigindo FFmpeg 6.0 ou superior compilado com libsrt. Ele se recusa a iniciar com FFmpeg anterior ao 6.0 e avisa quando o SRT está ausente. Uma imagem Docker é publicada. A instalação requer Go 1.27.0+, Node 20.19+/22.12+ e FFmpeg ao compilar a partir de um clone.
O README é explícito sobre as limitações: o projeto está em pré-lançamento com um único mantenedor e sem promessas de compatibilidade; RTMP multitrack não é o caminho operado; não há portas por fonte; há um único usuário sem funções ou permissões por destino; Instagram Live é listado como não suportado; e a adequação do vídeo da fonte é responsabilidade do operador. A maturidade da plataforma difere, com Linux e Docker descritos como primários e Windows como não comprovado, incluindo um defeito conhecido e não resolvido em torno do truncamento de gravação ao parar o serviço. A tabela de comparação o posiciona contra datarhei/Restreamer e restream.io, e o README afirma que o Restreamer é mais maduro onde áudios diferentes por plataforma não são necessários. A licença é MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.