Sobre el proyecto

# RootEncoder para Android RootEncoder (anteriormente rtmp-rtsp-stream-client-java) es una librería integral de codificación de transmisión para Android que permite a los desarrolladores enviar video y audio a servidores multimedia usando múltiples protocolos: RTMP, RTSP, SRT, UDP y WHIP (beta). Todo el código está escrito en Java/Kotlin, lo que la convierte en una solución nativa para aplicaciones de transmisión en Android. ## Características principales - **Protocolos**: Soporta RTMP (incluidos RTMPS, RTMPT, RTMPTS), RTSP (TCP/UDP, RTSPS), SRT (con cifrado y reenvío de paquetes), UDP (unicast, multicast, broadcast, MPEG2-TS) y WHIP (beta con autenticación por token de portador). - **Códecs**: Codificación por hardware/software para AV1, H264, H265, VP8, VP9, G711, AAC, HE-AAC y OPUS. - **Fuentes de video**: APIs Camera1 y Camera2, captura de pantalla (API 21+) y transmisión de archivos (mp4, webm, mp3, etc.). - **Procesamiento en tiempo real**: Filtros OpenGL, superposiciones de imágenes/GIF/texto y supresión de ruido/cancelación de eco de audio. - **Control dinámico**: Activar/desactivar video/audio durante la transmisión, cambiar de cámara, cambiar la tasa de bits sobre la marcha (API 19+) y grabar MP4 mientras se transmite (API 18+). - **Compatibilidad**: API mínima de Android 16; las fuentes de video adicionales requieren API 21+. ## Instalación Agrega el repositorio JitPack y la dependencia en tu build.gradle: ```gradle allprojects { repositories { maven { url 'https://jitpack.io' } } } dependencies { implementation "com.github.pedroSG94.RootEncoder:library:2.8.1" // Opcional para CameraXSource y CameraUvcSource implementation "com.github.pedroSG94.RootEncoder:extra-sources:2.8.1" } ``` Para versiones anteriores (≤2.2.6), usa `rtplibrary` en su lugar. ## Permisos Agrega a 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" /> ``` ## Ejemplos de uso - **Rotación**: Forma recomendada que admite rotación de pantalla, orientación, filtros y cambios dinámicos de fuente. - **Transmisión de pantalla**: Transmite la pantalla del dispositivo mediante un servicio en segundo plano. - **Transmisión de archivos**: Usa archivos de video como fuentes. - **API antigua**: Para dispositivos con API baja (16+). Todos los ejemplos están en el directorio `app/src/main/java/com/pedro/streamer/`. ## Documentación y soporte - [Wiki](https://github.com/pedroSG94/RootEncoder/wiki) para guías detalladas, incluidos filtros en tiempo real. - [Documentación](https://pedroSG94.github.io/RootEncoder) para referencia de la API. - Versión para iOS disponible en [RootEncoder-iOS](https://github.com/pedroSG94/RootEncoder-iOS). ## Patrocinio La librería está patrocinada por Stream (APIs de chat/feeds) y Recall.ai (SDK de grabación móvil). Las donaciones son bienvenidas a través de GitHub Sponsors o PayPal para apoyar las pruebas y el desarrollo. ## Proyectos relacionados - [RTSP-Server](https://github.com/pedroSG94/RTSP-Server) para la implementación del lado del servidor. - Extensiones de terceros como [recordcontrollers](https://github.com/FunnyDevs/rtmp-rtsp-stream-client-java-recordcontrollers). RootEncoder es ideal para desarrolladores que crean aplicaciones de transmisión en vivo, videoconferencia o difusión en Android, ofreciendo un sólido soporte de protocolos y opciones de codificación flexibles.