Como criar servidor Wowza Streaming Engine em VPS Linux

Tutorial técnico para instalar Wowza Streaming Engine em VPS Ubuntu, configurar aplicação live RTMP, transmuxing HLS e abrir as portas corretas no firewall.

Wowza Streaming Engine é um servidor de mídia Java que entrega ingest RTMP, RTSP e SRT, transmuxa pra HLS/DASH e grava streams ao vivo em arquivo — tudo dentro de um único processo. Quem está saindo de um SaaS como Wowza Video, Mux ou Vimeo Livestream costuma chegar nele atrás de previsibilidade de custo: a partir de cem horas de transmissão por mês, manter a infra própria fica drasticamente mais barato do que pagar por minuto consumido.

Este tutorial é pra quem opera plataforma de streaming, OTT, igreja com transmissões regulares ou agência que produz lives pra clientes e quer um origin server próprio rodando em VPS Linux. Você vai sair com Wowza instalado no Ubuntu 24.04, uma aplicação live configurada pra receber publicação RTMP do OBS e entregar HLS pros viewers, com firewall fechado em tudo que não precisa estar aberto.

Tempo estimado de execução: 35 a 50 minutos, contando o download do instalador (~280 MB) e a primeira inicialização da engine.

Pré-requisitos

O que você precisa antes de começar

VPS com Ubuntu Server 24.04 LTS, 4 vCPU, 8 GB de RAM e 60 GB de disco como ponto de partida realista. Conexão SSH com usuário sudo ativo. Conta gratuita registrada em wowza.com com licença trial de 30 dias gerada (formato EDU-... ou ENG-...). Domínio próprio apontando pro IP da VPS é opcional mas recomendado pra HTTPS no playback.

A engine consome RAM proporcional ao número de conexões simultâneas e chunks em buffer. Servidores com menos de 4 GB começam a fazer swap quando a audiência passa de 200 viewers HLS, o que mata latência percebida. Disco SSD não é negociável — HDD trava o transmuxer quando você roda gravação simultânea.

Porta RTMP ingest 1935
Porta HTTP playback 1935 (mesma) ou 80/443
Porta admin manager 8088
Diretório instalação /usr/local/WowzaStreamingEngine

Preparar o sistema

Antes de baixar o instalador, deixe a VPS no estado mínimo pra rodar serviço Java de longa duração — pacotes atualizados, swap configurado e timezone correto pros logs.

01

Atualize o índice de pacotes e aplique upgrades pendentes:

sudo apt update && sudo apt upgrade -y

Imagens base de cloud costumam vir com kernel atrasado. Aplicar o upgrade antes de instalar o Wowza evita que você precise reiniciar a engine logo depois.

02

Instale utilitários básicos que o tutorial vai usar:

sudo apt install -y curl wget unzip ufw htop

htop ajuda a debugar uso de CPU durante transcoding; ufw é o firewall que vamos configurar no final.

03

Confirme que a VPS tem pelo menos 2 GB de swap configurado:

swapon --show
free -h

Se não houver swap (output vazio), crie 4 GB:

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Swap não é substituto de RAM, mas evita OOM kill da JVM em picos de audiência.

Baixar e instalar o Wowza

O instalador oficial é um shell script auto-extraível que detecta a distro e cria o usuário de serviço automaticamente. A versão atual estável é 4.9.x; o link de download é gerado dentro da conta Wowza após você aceitar os termos de licença.

04

Logue em wowza.com, vá em Downloads, copie o link direto do .deb ou do shell installer pra Linux e baixe na VPS:

cd /tmp
wget -O wowza-installer.deb "https://www.wowza.com/downloads/WowzaStreamingEngine-4-9-x/WowzaStreamingEngine-4.9.x-linux-x64-installer.deb"

Substitua a URL pelo link real gerado na sua conta — eles incluem um token de autenticação na query string.

05

Instale o pacote:

sudo dpkg -i wowza-installer.deb

O instalador pede pra você aceitar a EULA, escolher senha de admin do Streaming Manager e colar a chave de licença trial. Use uma senha forte gerada — você vai precisar dela pra abrir o painel web.

Guarde a senha do admin

A senha do usuário admin do Streaming Manager fica registrada em /usr/local/WowzaStreamingEngine/conf/admin.password em hash, mas o instalador NÃO mostra ela depois. Se você perder, precisa rodar sudo /usr/local/WowzaStreamingEngine/bin/setpassword.sh pra resetar.

06

Habilite e inicie os dois serviços (engine + manager):

sudo systemctl enable --now WowzaStreamingEngine
sudo systemctl enable --now WowzaStreamingEngineManager

O serviço principal é a engine que processa streams; o manager é o painel web administrativo na porta 8088.

07

Confirme que ambos subiram sem erro:

sudo systemctl status WowzaStreamingEngine
sudo systemctl status WowzaStreamingEngineManager

Procure por active (running) em verde. Se aparecer failed, leia o log em /usr/local/WowzaStreamingEngine/logs/wowzastreamingengine_access.log — quase sempre é licença inválida ou porta ocupada.

Configurar a aplicação live

O Wowza vem com uma aplicação chamada live pré-configurada pra ingest RTMP e playback HLS. Em produção você cria aplicações separadas pra cada caso (live, vod, gravacao) com configurações próprias. Pra começar, vamos validar a live default.

08

Abra o Streaming Manager no navegador:

http://IP_DA_VPS:8088/enginemanager

Logue com o usuário admin definido na instalação. Você vai cair na home com o status do servidor, uptime e conexões ativas (zero, por enquanto).

09

No menu lateral, clique em Applications e selecione live. Na aba Properties, confirme que:

  • Application Type está em Live
  • Streaming Type está em Live Single Server
  • Playback Types tem HLS, MPEG-DASH e RTMP marcados

Salve com Save (canto superior direito) e clique em Restart Application se solicitado.

10

Na aba Incoming Security, ajuste o modo pra Open (no authentication required) apenas pra teste inicial. Em produção mude pra Username/Password required for all publishing e cadastre publishers em Server > Source Authentication.

Sem autenticação de publishing, qualquer pessoa que descobrir o IP e o nome da aplicação consegue injetar stream — isso é um vetor clássico de abuso em servidor exposto.

Não deixe ingest aberto em produção

Servidor Wowza com publishing aberto na internet pública é convite pra ter o nome da sua aplicação usado por terceiros pra distribuir conteúdo pirata. Sempre ative autenticação antes de publicar o IP fora do seu time.

Liberar as portas no firewall

A engine escuta em várias portas, mas você só precisa abrir as que são acessadas externamente. UFW é o jeito mais limpo de configurar isso no Ubuntu.

11

Defina as regras padrão e libere SSH primeiro (pra não se trancar fora):

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
12

Libere a porta RTMP de ingest e playback:

sudo ufw allow 1935/tcp

A porta 1935 serve tanto pra publicação RTMP quanto pro playback HLS via HTTP-on-RTMP — o Wowza multiplexa os dois no mesmo socket.

13

Libere o Streaming Manager apenas pro seu IP de admin (não deixe aberto pra internet):

sudo ufw allow from SEU.IP.AQUI to any port 8088 proto tcp

Substitua SEU.IP.AQUI pelo IP fixo de onde você administra. Pra IPs dinâmicos, considere usar VPN ou um túnel SSH em vez de abrir a porta.

14

Ative o firewall:

sudo ufw enable
sudo ufw status verbose

A confirmação pede pra digitar y. Verifique que a saída mostra todas as regras esperadas antes de fechar a sessão SSH.

Verificação — publicar um stream de teste

Pra confirmar que tudo funciona, use o OBS Studio no seu desktop pra publicar uma stream de teste e abra o playback HLS num player.

15

No OBS, vá em Settings > Stream e configure:

  • Service: Custom
  • Server: rtmp://IP_DA_VPS:1935/live
  • Stream Key: meuTeste1

Clique em Start Streaming. No Streaming Manager, em Applications > live > Incoming Streams, você deve ver meuTeste1 aparecer com bitrate e FPS reais em poucos segundos.

16

Abra o playback HLS no VLC ou num player web:

http://IP_DA_VPS:1935/live/meuTeste1/playlist.m3u8

Latência típica fica entre 20 e 40 segundos com chunks de 10s. Pra latência menor, configure LL-HLS na aba Stream Files da aplicação — exige chunkDurationTarget=2 e cliente compatível.

Resolução de problemas

Stream aparece no manager mas player não carrega

Quase sempre é firewall ou ordem de iniciação. Confirme que a porta 1935 está aberta tanto pra TCP entrada quanto saída no host do player. Em redes corporativas, RTMP/HLS sobre porta 1935 às vezes é bloqueado — teste com 3G/4G do celular pra descartar.

CPU em 100% durante transmissão

Você provavelmente ligou transcoding adaptativo sem perceber. Vá em Applications > live > Transcoder e desabilite se não precisar. Pra precisar mesmo, separe ingest de transcoding em servidores diferentes.

Erro “license expired” depois de 30 dias

A trial acabou. Compre uma licença Perpetual ou Subscription em wowza.com, vá em Server > Licenses no manager, cole a nova chave e reinicie a engine com sudo systemctl restart WowzaStreamingEngine.

Próximos passos

Com a engine no ar, há vários caminhos pra evoluir a operação:

  • Configure HTTPS no playback usando Let’s Encrypt em frente ao Wowza com um proxy reverso, pra eliminar warning de mixed content em sites HTTPS.
  • Habilite gravação automática das publicações em Applications > live > Stream Recorders, gerando MP4s pra arquivo de VOD.
  • Implemente autenticação de publishing com módulo customizado ou via SecureToken pra impedir uso indevido do seu ingest.
  • Se a audiência cresce além do que uma VPS comporta, separe origin (Wowza) de delivery em CDN — Cloudflare Stream, Bunny.net ou AWS CloudFront aceitam HLS como origem.

Se você está colocando isso em produção e precisa de servidor com IP brasileiro, baixa latência pra viewers no país e banda dimensionada pra streaming sustentado, VPS Hostini entrega tráfego sem cobrança por GB e snapshots diários, que ajudam muito quando uma configuração nova quebra um stream ao vivo.

Perguntas frequentes

A licença trial do Wowza serve pra colocar em produção?

A trial é válida por 30 dias e mostra marca d'água nos streams, além de limitar conexões simultâneas. Pra produção real você precisa de licença Perpetual ou Subscription emitida pela Wowza e registrada no console em Server > Licenses. Depois do prazo, a engine continua subindo mas recusa publicações e playback.

Qual a diferença entre Wowza Streaming Engine e Wowza Video (Cloud)?

Wowza Video é o SaaS gerenciado — você paga por minuto e não toca em servidor. Streaming Engine é o software auto-hospedado que você instala numa VPS ou baremetal. Engine dá controle total (módulos Java custom, transmuxing fino, DVR, gravação automática) com custo previsível por servidor; Video tira o trabalho de operação mas escala caro.

Quantos espectadores simultâneos uma VPS média aguenta?

Pra transmuxing puro RTMP → HLS sem transcoding, uma VPS com 4 vCPU e 8 GB RAM atende 800-1500 viewers HLS conforme o bitrate. Se você ligar transcoding adaptativo (uma entrada 1080p virando 3 renditions), o gargalo passa pra CPU e cada rendition consome 1-2 vCPU sustentados. Pra transcoding em escala, baremetal compensa.

Por que a live aparece travando mesmo com banda sobrando?

Três causas comuns: chunkDurationTarget do HLS muito baixo (use 6-10s, não 2s), bitrate do encoder maior que o upload real da fonte e ausência de keyframe a cada N segundos. HLS exige keyframe no início de cada segmento — no OBS configure keyframe interval igual à duração do chunk.

Posso colocar o Wowza atrás de Cloudflare?

RTMP na porta 1935 não passa por Cloudflare HTTP — você publica direto no IP do servidor ou via subdomínio com proxy desligado (DNS only). Já o playback HLS via HTTPS (porta 443) pode passar por CDN normalmente. Em produção séria, separe o servidor de ingest (origin) do delivery (edges CDN) pra escalar viewers sem castigar a engine.

Wowza precisa de Java instalado separadamente no Ubuntu?

Não. O instalador oficial empacota um JRE em /usr/local/WowzaStreamingEngine/java e ignora qualquer Java do sistema. Se você já tem OpenJDK por outro motivo, deixa quieto — apontar o Wowza pra outro Java sem testar costuma quebrar módulos nativos.

Tópicos:
Próximos passos Infraestrutura otimizada pra transmissão ao vivo, gravação e VOD.Monte seu servidor de streaming na Hostini →
Esse tutorial foi útil?
Falar no WhatsApp