Об этом проекте

# 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, предлагая надёжную поддержку протоколов и гибкие возможности кодирования.