Sobre o projeto

# RootEncoder para Android RootEncoder (anteriormente rtmp-rtsp-stream-client-java) é uma biblioteca abrangente de codificação de stream para Android, permitindo que desenvolvedores enviem vídeo e áudio para servidores de mídia usando múltiplos protocolos: RTMP, RTSP, SRT, UDP e WHIP (beta). Todo o código é escrito em Java/Kotlin, tornando-a uma solução nativa para aplicações de streaming Android. ## Principais Recursos - **Protocolos**: Suporta RTMP (incluindo RTMPS, RTMPT, RTMPTS), RTSP (TCP/UDP, RTSPS), SRT (com criptografia e reenvio de pacotes), UDP (unicast, multicast, broadcast, MPEG2-TS) e WHIP (beta com autenticação por bearer token). - **Codecs**: Codificação por hardware/software para AV1, H264, H265, VP8, VP9, G711, AAC, HE-AAC e OPUS. - **Fontes de Vídeo**: APIs Camera1 e Camera2, captura de tela (API 21+) e streaming de arquivos (mp4, webm, mp3, etc.). - **Processamento em Tempo Real**: Filtros OpenGL, sobreposições de imagem/GIF/texto e supressão de ruído/cancelamento de eco de áudio. - **Controle Dinâmico**: Habilitar/desabilitar vídeo/áudio durante o streaming, trocar câmeras, alterar bitrate em tempo real (API 19+) e gravar MP4 enquanto transmite (API 18+). - **Compatibilidade**: API mínima do Android 16; fontes de vídeo extras requerem API 21+. ## Instalação Adicione o repositório JitPack e a dependência no seu build.gradle: ```gradle allprojects { repositories { maven { url 'https://jitpack.io' } } } dependencies { implementation "com.github.pedroSG94.RootEncoder:library:2.8.1" // Opcional para CameraXSource e CameraUvcSource implementation "com.github.pedroSG94.RootEncoder:extra-sources:2.8.1" } ``` Para versões mais antigas (≤2.2.6), use `rtplibrary` em vez disso. ## Permissões Adicione ao AndroidManifest.xml: ```xml <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.CAMERA" /> ``` ## Exemplos de Uso - **Rotação**: Maneira recomendada que suporta rotação de tela, orientação, filtros e mudanças dinâmicas de fonte. - **Streaming de Tela**: Transmite a tela do dispositivo através de um serviço em segundo plano. - **Streaming de Arquivo**: Usa arquivos de vídeo como fontes. - **API Antiga**: Para dispositivos com API baixa (16+). Todos os exemplos estão no diretório `app/src/main/java/com/pedro/streamer/`. ## Documentação e Suporte - [Wiki](https://github.com/pedroSG94/RootEncoder/wiki) para guias detalhados, incluindo filtros em tempo real. - [Documentação](https://pedroSG94.github.io/RootEncoder) para referência da API. - Versão iOS disponível em [RootEncoder-iOS](https://github.com/pedroSG94/RootEncoder-iOS). ## Patrocínio A biblioteca é patrocinada pela Stream (APIs de chat/feeds) e Recall.ai (SDK de gravação móvel). Doações são bem-vindas via GitHub Sponsors ou PayPal para apoiar testes e desenvolvimento. ## Projetos Relacionados - [RTSP-Server](https://github.com/pedroSG94/RTSP-Server) para implementação do lado do servidor. - Extensões de terceiros como [recordcontrollers](https://github.com/FunnyDevs/rtmp-rtsp-stream-client-java-recordcontrollers). RootEncoder é ideal para desenvolvedores que constroem aplicativos de transmissão ao vivo, videoconferência ou broadcasting no Android, oferecendo suporte robusto a protocolos e opções flexíveis de codificação.