À propos du projet
# RootEncoder pour Android
RootEncoder (anciennement rtmp-rtsp-stream-client-java) est une bibliothèque complète d'encodeur de flux pour Android, permettant aux développeurs de pousser de la vidéo et de l'audio vers des serveurs média en utilisant plusieurs protocoles : RTMP, RTSP, SRT, UDP et WHIP (bêta). Tout le code est écrit en Java/Kotlin, ce qui en fait une solution native pour les applications de streaming Android.
## Fonctionnalités clés
- **Protocoles** : Prend en charge RTMP (y compris RTMPS, RTMPT, RTMPTS), RTSP (TCP/UDP, RTSPS), SRT (avec chiffrement et renvoi de paquets), UDP (unicast, multicast, broadcast, MPEG2-TS) et WHIP (bêta avec authentification par jeton porteur).
- **Codecs** : Encodage matériel/logiciel pour AV1, H264, H265, VP8, VP9, G711, AAC, HE-AAC et OPUS.
- **Sources vidéo** : API Camera1 et Camera2, capture d'écran (API 21+), et diffusion de fichiers (mp4, webm, mp3, etc.).
- **Traitement en temps réel** : Filtres OpenGL, superpositions d'images/GIF/texte, et suppression du bruit audio/annulation d'écho.
- **Contrôle dynamique** : Activer/désactiver la vidéo ou l'audio pendant la diffusion, changer de caméra, modifier le débit binaire à la volée (API 19+), et enregistrer en MP4 pendant la diffusion (API 18+).
- **Compatibilité** : API Android minimale 16 ; les sources vidéo supplémentaires nécessitent l'API 21+.
## Installation
Ajoutez le dépôt JitPack et la dépendance dans votre build.gradle :
```gradle
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation "com.github.pedroSG94.RootEncoder:library:2.8.1"
// Optionnel pour CameraXSource et CameraUvcSource
implementation "com.github.pedroSG94.RootEncoder:extra-sources:2.8.1"
}
```
Pour les versions plus anciennes (≤2.2.6), utilisez `rtplibrary` à la place.
## Permissions
Ajoutez à 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" />
```
## Exemples d'utilisation
- **Rotation** : Méthode recommandée prenant en charge la rotation de l'écran, l'orientation, les filtres et les changements dynamiques de source.
- **Diffusion d'écran** : Diffusez l'écran de l'appareil via un service en arrière-plan.
- **Diffusion de fichiers** : Utilisez des fichiers vidéo comme sources.
- **Ancienne API** : Pour les appareils à API basse (16+).
Tous les exemples sont dans le répertoire `app/src/main/java/com/pedro/streamer/`.
## Documentation et support
- [Wiki](https://github.com/pedroSG94/RootEncoder/wiki) pour des guides détaillés, y compris les filtres en temps réel.
- [Documentation](https://pedroSG94.github.io/RootEncoder) pour la référence de l'API.
- Version iOS disponible sur [RootEncoder-iOS](https://github.com/pedroSG94/RootEncoder-iOS).
## Parrainage
La bibliothèque est sponsorisée par Stream (API de chat/flux) et Recall.ai (SDK d'enregistrement mobile). Les dons sont les bienvenus via GitHub Sponsors ou PayPal pour soutenir les tests et le développement.
## Projets connexes
- [RTSP-Server](https://github.com/pedroSG94/RTSP-Server) pour l'implémentation côté serveur.
- Extensions tierces comme [recordcontrollers](https://github.com/FunnyDevs/rtmp-rtsp-stream-client-java-recordcontrollers).
RootEncoder est idéal pour les développeurs créant des applications de streaming en direct, de visioconférence ou de diffusion sur Android, offrant un support robuste des protocoles et des options d'encodage flexibles.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.