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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.