← Voltar para Home
#Engenharia de Software#Video Encoding#Go#Arquitetura Limpa#Performance

Como Reduzimos o Tempo de Conversão de Vídeos de 25 para 2 Minutos na Nossa Área de Membros

0
0

O Desafio da Escala

Na empresa onde trabalho, a área de membros é um dos componentes vitais do nosso produto. Com o crescimento da base de usuários e o aumento exponencial do upload de conteúdos, nos deparamos com um gargalo crítico: o tempo de processamento de vídeos.

Antigamente, um vídeo de alta qualidade levava cerca de 25 minutos para estar pronto para consumo após o upload. Isso gerava frustração para os criadores de conteúdo e uma espera inaceitável para os alunos. Nosso objetivo era ambicioso: reduzir esse tempo drasticamente, mantendo ou melhorando a qualidade final.

O resultado? Hoje, conseguimos processar o mesmo vídeo em apenas 2 minutos. Neste post, vou abrir a caixa preta da engenharia que tornou isso possível.

Arquitetura e Engenharia: A Base Sólida

Para atingir esse nível de performance, não bastava apenas "otimizar o código". Precisávamos de uma arquitetura robusta e escalável, capaz de lidar com picos de demanda sem degradar o serviço.

Inspirados profundamente nos conceitos ensinados no curso FullCycle, desenhamos um sistema baseado em microsserviços e processamento assíncrono, garantindo desacoplamento e resiliência.

O Stack Tecnológico

Nossa escolha recaiu sobre tecnologias modernas e eficientes:

Design Pattern: Clean Architecture

Para manter o código manutenível e testável, adotamos a Clean Architecture. Se você olhar nosso repositório, verá uma clara separação de responsabilidades:

Essa estrutura nos permite trocar componentes de infraestrutura (como mudar do MinIO para S3 da AWS) com zero impacto nas regras de negócio.

A Mágica do Encoding: FFmpeg e Bento4

O grande segredo da redução de tempo está na forma como processamos o vídeo. Utilizamos o FFmpeg para a transcodificação bruta e o Bento4 para a fragmentação e empacotamento.

Em vez de gerar um único arquivo pesado (MP4), convertemos o vídeo para o padrão MPEG-DASH. Isso nos permite:

  1. Adaptive Bitrate Streaming: O player do usuário escolhe automaticamente a melhor qualidade com base na internet dele.
  2. Fragmentação: O vídeo é quebrado em pequenos pedaços, permitindo que o player comece a reproduzir quase instantaneamente, sem precisar baixar o arquivo inteiro.

Resultados e Impacto no Negócio

A implementação deste novo sistema trouxe ganhos imediatos e tangíveis:

1. Experiência do Cliente Transformada

A redução de 25 minutos para 2 minutos significa que o conteúdo está disponível quase em tempo real ("near real-time"). A sensação de fluidez e velocidade aumentou a satisfação tanto dos criadores quanto dos consumidores do conteúdo.

2. Redução Drástica de Custos

Além da velocidade, a eficiência do Go combinada com a arquitetura de filas nos permitiu otimizar o uso de recursos de infraestrutura. Conseguimos processar mais vídeos com menos máquinas, resultando em uma economia direta na conta de cloud.

Conclusão

Este projeto foi a prova de que boas práticas de engenharia, como Clean Architecture e escolha correta de ferramentas (Go, RabbitMQ, FFmpeg), não são apenas "hype". Elas trazem resultados reais para o negócio.

Se você enfrenta problemas de performance semelhantes, recomendo fortemente olhar para soluções assíncronas e arquiteturas desacopladas. E claro, uma olhada no conteúdo da FullCycle pode ser o ponto de partida que você precisa, assim como foi para nós.

Comentarios (0)

Carregando comentarios...