Об этом проекте
# RootEncoder для Android
RootEncoder (ранее rtmp-rtsp-stream-client-java) — это комплексная библиотека потокового кодирования для Android, позволяющая разработчикам передавать видео и аудио на медиасерверы с использованием нескольких протоколов: RTMP, RTSP, SRT, UDP и WHIP (бета). Весь код написан на Java/Kotlin, что делает её нативным решением для приложений потокового вещания на Android.
## Ключевые особенности
- **Протоколы**: Поддерживает RTMP (включая RTMPS, RTMPT, RTMPTS), RTSP (TCP/UDP, RTSPS), SRT (с шифрованием и повторной отправкой пакетов), UDP (unicast, multicast, broadcast, MPEG2-TS) и WHIP (бета с аутентификацией по bearer-токену).
- **Кодеки**: Аппаратное/программное кодирование для AV1, H264, H265, VP8, VP9, G711, AAC, HE-AAC и OPUS.
- **Источники видео**: API Camera1 и Camera2, захват экрана (API 21+) и потоковая передача файлов (mp4, webm, mp3 и т.д.).
- **Обработка в реальном времени**: OpenGL-фильтры, наложение изображений/GIF/текста, а также шумоподавление и эхоподавление аудио.
- **Динамическое управление**: Включение/отключение видео/аудио во время потоковой передачи, переключение камер, изменение битрейта на лету (API 19+) и запись MP4 во время потоковой передачи (API 18+).
- **Совместимость**: Минимальный Android API 16; дополнительные источники видео требуют API 21+.
## Установка
Добавьте репозиторий JitPack и зависимость в ваш build.gradle:
```gradle
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation "com.github.pedroSG94.RootEncoder:library:2.8.1"
// Опционально для CameraXSource и CameraUvcSource
implementation "com.github.pedroSG94.RootEncoder:extra-sources:2.8.1"
}
```
Для более старых версий (≤2.2.6) используйте `rtplibrary`.
## Разрешения
Добавьте в 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" />
```
## Примеры использования
- **Rotation**: Рекомендуемый способ, поддерживающий поворот экрана, ориентацию, фильтры и динамическую смену источников.
- **Screen Streaming**: Потоковая передача экрана устройства через фоновый сервис.
- **File Streaming**: Использование видеофайлов в качестве источников.
- **Old API**: Для устройств с низким API (16+).
Все примеры находятся в директории `app/src/main/java/com/pedro/streamer/`.
## Документация и поддержка
- [Wiki](https://github.com/pedroSG94/RootEncoder/wiki) для подробных руководств, включая фильтры в реальном времени.
- [Документация](https://pedroSG94.github.io/RootEncoder) для справки по API.
- iOS-версия доступна по адресу [RootEncoder-iOS](https://github.com/pedroSG94/RootEncoder-iOS).
## Спонсорство
Библиотека спонсируется Stream (API чатов/лент) и Recall.ai (SDK мобильной записи). Пожертвования приветствуются через GitHub Sponsors или PayPal для поддержки тестирования и разработки.
## Связанные проекты
- [RTSP-Server](https://github.com/pedroSG94/RTSP-Server) для серверной реализации.
- Сторонние расширения, такие как [recordcontrollers](https://github.com/FunnyDevs/rtmp-rtsp-stream-client-java-recordcontrollers).
RootEncoder идеально подходит для разработчиков, создающих приложения для прямых трансляций, видеоконференций или вещания на Android, предлагая надёжную поддержку протоколов и гибкие возможности кодирования.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.