这个项目能做什么

# Android版RootEncoder 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(单播、组播、广播、MPEG2-TS)以及WHIP(测试版,支持Bearer令牌认证)。 - **编解码器**:支持AV1、H264、H265、VP8、VP9、G711、AAC、HE-AAC和OPUS的硬件/软件编码。 - **视频源**:Camera1和Camera2 API、屏幕捕获(API 21+)以及文件流(mp4、webm、mp3等)。 - **实时处理**:OpenGL滤镜、图像/GIF/文本叠加以及音频降噪/回声消除。 - **动态控制**:在流媒体过程中启用/禁用视频/音频、切换摄像头、实时更改比特率(API 19+)以及在流媒体时录制MP4(API 18+)。 - **兼容性**:最低支持Android API 16;额外视频源需要API 21+。 ## 安装 在build.gradle中添加JitPack仓库和依赖: ```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" /> ``` ## 使用示例 - **旋转**:推荐方式,支持屏幕旋转、方向、滤镜和动态源更改。 - **屏幕流**:通过后台服务流式传输设备屏幕。 - **文件流**:使用视频文件作为源。 - **旧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上的直播、视频会议或广播应用的开发者,提供强大的协议支持和灵活的编码选项。