这个项目能做什么
# 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上的直播、视频会议或广播应用的开发者,提供强大的协议支持和灵活的编码选项。
评论
0 评分人数达到10人后显示
登录后参与讨论。