Repolode
Vanilagy

Vanilagy/mediabunny

Biblioteca TypeScript sem dependências para ler, gravar e converter arquivos de vídeo e áudio (MP4, WebM, MP3 etc.) no navegador.

Estrelas
7,441
Forks
339
Issues abertas
53
Último commit
ontem

O que é?

Mediabunny é uma biblioteca JavaScript para ler, gravar e converter arquivos de mídia como MP4, WebM, MP3 e HLS diretamente no navegador. Escrita do zero em TypeScript e sem dependências, ela foi projetada como uma alternativa nativa para a web à abordagem do FFmpeg para processamento de mídia pela linha de comando.

A biblioteca oferece demultiplexação e multiplexação de contêineres em formatos como MOV, MKV, WAV, Ogg, FLAC e MPEG-TS, além de compatibilidade com mais de 25 codecs de vídeo, áudio e legendas. A codificação e a decodificação usam a API WebCodecs para aceleração por hardware quando disponível. A API de conversão oferece transmuxing, transcodificação, redimensionamento, rotação, corte, reamostragem e aparo.

O processamento de arquivos é baseado em streaming, então arquivos grandes podem ser processados sem carregar tudo na memória. O pacote permite tree-shaking, com bundles mínimos de cerca de 5 kB compactados com gzip, e o mesmo código pode ser executado no Node, Bun e Deno usando o pacote separado @mediabunny/server.

Recursos principais

  • 01Lê e grava MP4, MOV, WebM, MKV, HLS, WAV, MP3, Ogg, ADTS, FLAC e MPEG-TS.
  • 02Oferece suporte a mais de 25 codecs de vídeo, áudio e legendas, com aceleração por hardware via WebCodecs.
  • 03Oferece uma API de conversão para transmuxing, transcodificação, redimensionamento, corte, rotação e aparo.
  • 04Faz streaming da entrada e da saída para processar arquivos de qualquer tamanho.
  • 05Permite tree-shaking, não tem dependências de runtime e pode ocupar apenas cerca de 5 kB compactados com gzip.
  • 06Funciona em navegadores e, por meio do @mediabunny/server, no Node, Bun e Deno.

Casos de uso

  • Converter um vídeo enviado por um usuário para WebM ou MP4 antes de enviá-lo a um servidor.
  • Ler duração, dimensões, rotação e tags de metadados de arquivos de mídia em um app web.
  • Gerar vídeos MP4 no navegador a partir de quadros do canvas.
  • Aparar ou redimensionar clipes em um editor de vídeo baseado no navegador.

Início rápido

  1. 1

    Instale o pacote pelo npm

    npm install mediabunny
  2. 2

    Importe Input, ALL_FORMATS e BlobSource e leia os metadados de um arquivo

Antes de usar

  • O pacote é voltado para o navegador e usa a API WebCodecs para codecs com aceleração de hardware.
  • É necessário usar TypeScript 5.7 ou posterior para os tipos.

Tópicos

#video#audio#webcodecs#typescript#media-processing#transcoding#browser#mp4#decoding#demuxing

Perguntas frequentes

O que é mediabunny?
Biblioteca TypeScript sem dependências para ler, gravar e converter arquivos de vídeo e áudio (MP4, WebM, MP3 etc.) no navegador. Mediabunny é uma biblioteca JavaScript para ler, gravar e converter arquivos de mídia como MP4, WebM, MP3 e HLS diretamente no navegador. Escrita do zero em TypeScript e sem dependências, ela foi projetada como uma alternativa nativa para a web à abordagem do FFmpeg para processamento de mídia pela linha de comando.
mediabunny é gratuito? Qual é a licença?
mediabunny é open source sob a licença MPL-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
mediabunny ainda é mantido?
Manutenção ativa. O último commit de mediabunny foi em 6 de nov. de 2026.
Para que posso usar mediabunny?
Converter um vídeo enviado por um usuário para WebM ou MP4 antes de enviá-lo a um servidor. Ler duração, dimensões, rotação e tags de metadados de arquivos de mídia em um app web. Gerar vídeos MP4 no navegador a partir de quadros do canvas. Aparar ou redimensionar clipes em um editor de vídeo baseado no navegador.
Como instalar mediabunny?
Instale o pacote pelo npm: npm install mediabunny Importe Input, ALL_FORMATS e BlobSource e leia os metadados de um arquivo
Onde consigo mediabunny?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/Vanilagy/mediabunny

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados