[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-7401":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":16,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":21,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":43,"readmeContent":44,"aiSummary":45,"trendingCount":16,"starSnapshotCount":16,"syncStatus":46,"lastSyncTime":47,"discoverSource":48},7401,"RootEncoder","pedroSG94\u002FRootEncoder","pedroSG94","RootEncoder for Android (rtmp-rtsp-stream-client-java) is a stream encoder to push video\u002Faudio to media servers using protocols RTMP, RTSP, SRT and UDP with all code written in Java\u002FKotlin","",null,"Kotlin",3001,922,79,230,0,60.9,"Apache License 2.0",false,"master",true,[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"aac","amf","android","av1","encoder","filters","g711","h264","h265","java","kotlin","mpeg2-ts","opus","rtmp","rtp","rtsp","srt","stream","streaming","udp","2026-08-25 04:00:20","# RootEncoder for Android\n\n[![Android Arsenal](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAndroid%20Arsenal-rtmp%20rtsp%20stream%20client%20java-green.svg?style=true)](https:\u002F\u002Fandroid-arsenal.com\u002Fdetails\u002F1\u002F5333)\n[![Release](https:\u002F\u002Fjitpack.io\u002Fv\u002FpedroSG94\u002FRootEncoder.svg)](https:\u002F\u002Fjitpack.io\u002F#pedroSG94\u002FRootEncoder)\n[![Documentation](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flibrary-documentation-orange)](https:\u002F\u002FpedroSG94.github.io\u002FRootEncoder)\n\n\u003Cp align=\"center\">\n\u003Cstrong>Sponsored with 💖 &nbsp by\u003C\u002Fstrong>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fgetstream.io\u002F?utm_source=github.com\u002FpedroSG94\u002Frtmp-rtsp-stream-client-java&utm_medium=github&utm_campaign=oss_sponsorship\" target=\"_blank\">\n\u003Cimg src=\"assets\u002Fimages\u002Fstream-logo.png\" alt=\"Stream Chat\" style=\"margin: 8px; width: 350px\" \u002F>\n\u003C\u002Fa>\n\u003Cbr \u002F>\nEnterprise Grade APIs for Feeds & Chat. \u003Ca href=\"https:\u002F\u002Fgetstream.io\u002Ftutorials\u002Fandroid-chat\u002F?utm_source=https:\u002F\u002Fgithub.com\u002FpedroSG94\u002Frtmp-rtsp-stream-client-java&utm_medium=github&utm_content=developer&utm_term=java\" target=\"_blank\">Try the Android Chat tutorial\u003C\u002Fa> 💬\n\u003C\u002Fp>\n\n\u003C\u002Fbr>\n\n\n\n## Recall.ai - Mobile Recording SDK\n\nIf you’re looking for a hosted mobile recording API, consider checking out [Recall.ai](https:\u002F\u002Fwww.recall.ai\u002Fproduct\u002Fmobile-recording-sdk?utm_source=github&utm_medium=sponsorship&utm_campaign=pedrosg94-rootencoder), an API that records phone calls and in-person meetings.\n\n---\n\nRootEncoder (rtmp-rtsp-stream-client-java) is a stream encoder to push video\u002Faudio to media servers using protocols RTMP, RTSP and SRT with all code written in Java\u002FKotlin\n\nNote: The library was renamed from rtmp-rtsp-stream-client-java to RootEncoder after add SRT protocol because the name has no sense anymore\n\n\n## iOS version:\n\nhttps:\u002F\u002Fgithub.com\u002FpedroSG94\u002FRootEncoder-iOS\n\n## Wiki\n\nhttps:\u002F\u002Fgithub.com\u002FpedroSG94\u002FRootEncoder\u002Fwiki\n\n## Permissions:\n\n```xml\n\u003Cuses-permission android:name=\"android.permission.INTERNET\" \u002F>\n\u003Cuses-permission android:name=\"android.permission.RECORD_AUDIO\" \u002F>\n\u003Cuses-permission android:name=\"android.permission.CAMERA\" \u002F>\n```\n\n## Compile\n\nTo use this library in your project with gradle add this to your build.gradle:\n\n\u003Cdetails open>\n\u003Csummary>Last version\u003C\u002Fsummary>\n\n```gradle\nallprojects {\n  repositories {\n    maven { url 'https:\u002F\u002Fjitpack.io' }\n  }\n}\ndependencies {\n  implementation \"com.github.pedroSG94.RootEncoder:library:2.7.2\"\n  \u002F\u002FOptional, allow use CameraXSource and CameraUvcSource \n  implementation \"com.github.pedroSG94.RootEncoder:extra-sources:2.7.2\"\n}\n\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails close>\n\u003Csummary>Old versions (2.2.6 or less)\u003C\u002Fsummary>\n\n```gradle\nallprojects {\n  repositories {\n    maven { url 'https:\u002F\u002Fjitpack.io' }\n  }\n}\ndependencies {\n  implementation 'com.github.pedroSG94.RootEncoder:rtplibrary:2.2.6'\n}\n```\n\n\u003C\u002Fdetails>\n\n## Features:\n\n- [x] Android min API 16.\n- [x] Extra video sources minAPI 21+ (BitmapSource, CameraXSource and CameraUvcSource) \n\n### Encoder:\n\n- [x] Support [camera1](https:\u002F\u002Fdeveloper.android.com\u002Freference\u002Fandroid\u002Fhardware\u002FCamera.html) and [camera2](https:\u002F\u002Fdeveloper.android.com\u002Freference\u002Fandroid\u002Fhardware\u002Fcamera2\u002Fpackage-summary.html) API\n- [x] Encoder type buffer to buffer.\n- [x] Encoder type surface to buffer.\n- [x] Audio noise suppressor.\n- [x] Audio echo cancellation.\n- [x] Disable\u002FEnable video and audio while streaming.\n- [x] Switch camera while streaming.\n- [x] Change video bitrate while streaming (API 19+).\n- [x] AV1, H264, H265, G711, AAC and OPUS hardware\u002Fsoftware encoding.\n- [x] Force video and audio Codec to use hardware\u002Fsoftware encoding (Not recommended).\n- [X] Record MP4 file while streaming (API 18+).\n- [X] Set Image, Gif or Text to stream on real time.\n- [X] OpenGL real time filters. [More info](https:\u002F\u002Fgithub.com\u002FpedroSG94\u002FRootEncoder\u002Fwiki\u002FReal-time-filters)\n- [x] Stream from video and audio files like mp4, webm, mp3, etc (Limited by device decoders). [More info](https:\u002F\u002Fgithub.com\u002FpedroSG94\u002FRootEncoder\u002Fwiki\u002FStream-from-file)\n- [x] Stream device screen (API 21+).\n\n### RTMP:\n\n- [X] Get upload bandwidth used.\n- [x] RTSP auth (adobe and llnw).\n- [x] AV1, H265 ([Using RTMP enhanced](https:\u002F\u002Fgithub.com\u002Fveovera\u002Fenhanced-rtmp\u002Ftree\u002Fmain)), H264, AAC and G711 support.\n- [x] RTMPS (under TLS)\n- [x] RTMPT and RTMPTS (tunneled and tunneled under TLS)\n- [x] AMF0\n- [ ] AMF3\n\n### RTSP:\n\n- [X] Get upload bandwidth used.\n- [x] RTMP auth (basic and digest).\n- [x] AV1, H264, H265, AAC, G711 and OPUS support.\n- [x] TCP\u002FUDP.\n- [x] RTSPS.\n\n### SRT (beta):\n\n- [X] Get upload bandwidth used.\n- [X] H264, H265, AAC and OPUS support.\n- [X] Resend lost packets\n- [X] Encrypt (AES128, AES192 and AES256)\n- [ ] SRT auth.\n\nhttps:\u002F\u002Fhaivision.github.io\u002Fsrt-rfc\u002Fdraft-sharabayko-srt.html\n\n### UDP (beta):\n\n- [X] Get upload bandwidth used.\n- [X] H264, H265, AAC and OPUS support.\n- [X] Unicast, Multicast and Broadcast support.\n- [X] MPEG2-TS support.\n\n\n## Other related projects:\n\nhttps:\u002F\u002Fgithub.com\u002FpedroSG94\u002FRTSP-Server\n\n### 3rd party projects:\n\nProjects related with the library developed by other users.\nContact with user owner if you have any problem or question.\n\nhttps:\u002F\u002Fgithub.com\u002FFunnyDevs\u002Frtmp-rtsp-stream-client-java-recordcontrollers\n\n## Real time filters:\n\n### NOTE:\nIn library version 2.0.9, the filters was refactored. Check the wiki link to migrate your implementation.\n\nhttps:\u002F\u002Fgithub.com\u002FpedroSG94\u002FRootEncoder\u002Fwiki\u002FReal-time-filters\n\n## Looking for sponsors\n\nThis library need sponsors to get new devices or pay platforms to test and debug errors. Any donation or sponsor is welcome!\nIf you are interested. You can contact me by email or donate directly on [Github](https:\u002F\u002Fgithub.com\u002Fsponsors\u002FpedroSG94) or [Paypal](https:\u002F\u002Fwww.paypal.com\u002Fpaypalme\u002FpedroSG94)\nThank you!\n\n## Use examples:\n\n### Rotation example\n\nThis is the recommend way to use the library. \nThis example support screen rotation, stream orientation (vertical, horizontal) filters and change video\u002Faudio sources on fly:\nhttps:\u002F\u002Fgithub.com\u002FpedroSG94\u002FRootEncoder\u002Ftree\u002Fmaster\u002Fapp\u002Fsrc\u002Fmain\u002Fjava\u002Fcom\u002Fpedro\u002Fstreamer\u002Frotation\n\n### Screen example\n\nExample to stream using Screen as video source using a service to stream in background:\nhttps:\u002F\u002Fgithub.com\u002FpedroSG94\u002FRootEncoder\u002Ftree\u002Fmaster\u002Fapp\u002Fsrc\u002Fmain\u002Fjava\u002Fcom\u002Fpedro\u002Fstreamer\u002Fscreen\n\n### From file example\n\nCode example to stream using a video file as video\u002Faudio source:\nhttps:\u002F\u002Fgithub.com\u002FpedroSG94\u002FRootEncoder\u002Ftree\u002Fmaster\u002Fapp\u002Fsrc\u002Fmain\u002Fjava\u002Fcom\u002Fpedro\u002Fstreamer\u002Ffile\n\n### Old Api example\n\nCode example for low API devices (Android API 16+):\nhttps:\u002F\u002Fgithub.com\u002FpedroSG94\u002FRootEncoder\u002Ftree\u002Fmaster\u002Fapp\u002Fsrc\u002Fmain\u002Fjava\u002Fcom\u002Fpedro\u002Fstreamer\u002Foldapi\n","RootEncoder 是一个专为 Android 平台设计的纯 Java\u002FKotlin 视频音频流编码推流库，支持将采集的音视频实时编码并推送至媒体服务器。核心功能包括 H.264\u002FH.265\u002FAV1 视频编码与 AAC\u002FG.711\u002FOpus 音频编码，兼容 RTMP、RTSP、SRT 和 UDP 四种主流流媒体传输协议，并提供 CameraX、UVC 等扩展视频源支持。项目轻量、无 native 依赖，适用于移动直播、远程监控、IoT 设备推流等对跨 API 兼容性与协议灵活性要求较高的嵌入式流媒体场景。",2,"2026-07-08 03:13:55","top_language"]