Apache License 2.0

项目介绍

pedroSG94/RootEncoder 是一个托管在 GitHub 上的开源项目,主要使用 Kotlin 编写,采用 Apache License 2.0 许可证,目前获得 3.1k 个 Star、953 次 Fork。

仓库全名
pedroSG94/RootEncoder
开源许可证
Apache License 2.0
Star 数
3.1k
Fork 数
953
未关闭 Issue
78

README 摘要

RootEncoder for Android Sponsored with 💖 &nbsp by Enterprise Grade APIs for Feeds & Chat. Try the Android Chat tutorial 💬 Recall.ai - Mobile Recording SDK If you’re looking for a hosted mobile recording API, consider checking out Recall.ai, an API that records phone calls and in-person meetings. RootEncoder (rtmp-rtsp-stream-client-java) is a stream encoder to push video/audio to media servers using protocols…

完整内容见 GitHub 原始 README 或本页 。

常见问题

RootEncoder 用什么语言开发?

主要使用 Kotlin 编写,采用 Apache License 2.0 许可证,目前有 3.1k 个 Star。

RootEncoder 可以免费商用吗?

仓库采用 Apache License 2.0 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 RootEncoder 的源码?

可以直接克隆仓库:git clone https://github.com/pedroSG94/RootEncoder.git,默认分支为 master;安装与运行步骤见仓库 README。

RootEncoder 最近还在维护吗?

仓库最近一次更新为 2 周前,当前有 78 个未关闭 Issue;Star 数为 3.1k,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

RootEncoder for Android (rtmp-rtsp-stream-client-java) is a stream encoder to push video/audio to media servers using protocols RTMP, RTSP, SRT and UDP with all code written in Java/Kotlin

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
5050
价值分
2128
活跃状态
活跃

语言占比

GLSL
Java
Kotlin

Release

README

RootEncoder for Android

Android Arsenal Release Documentation

Sponsored with 💖   by
Stream Chat
Enterprise Grade APIs for Feeds & Chat. Try the Android Chat tutorial 💬


Recall.ai - Mobile Recording SDK

If you’re looking for a hosted mobile recording API, consider checking out Recall.ai, an API that records phone calls and in-person meetings.


RootEncoder (rtmp-rtsp-stream-client-java) is a stream encoder to push video/audio to media servers using protocols RTMP, RTSP and SRT with all code written in Java/Kotlin

Note: The library was renamed from rtmp-rtsp-stream-client-java to RootEncoder after add SRT protocol because the name has no sense anymore

iOS version:

https://github.com/pedroSG94/RootEncoder-iOS

Wiki

https://github.com/pedroSG94/RootEncoder/wiki

Permissions:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />

Compile

To use this library in your project with gradle add this to your build.gradle:

Last version
allprojects {
  repositories {
    maven { url 'https://jitpack.io' }
  }
}
dependencies {
  implementation "com.github.pedroSG94.RootEncoder:library:2.8.1"
  //Optional, allow use CameraXSource and CameraUvcSource 
  implementation "com.github.pedroSG94.RootEncoder:extra-sources:2.8.1"
}

Old versions (2.2.6 or less)
allprojects {
  repositories {
    maven { url 'https://jitpack.io' }
  }
}
dependencies {
  implementation 'com.github.pedroSG94.RootEncoder:rtplibrary:2.2.6'
}

Features:

  • Android min API 16.
  • Extra video sources minAPI 21+ (BitmapSource, CameraXSource and CameraUvcSource)

Encoder:

  • Support camera1 and camera2 API
  • Encoder type buffer to buffer.
  • Encoder type surface to buffer.
  • Audio noise suppressor.
  • Audio echo cancellation.
  • Disable/Enable video and audio while streaming.
  • Switch camera while streaming.
  • Change video bitrate while streaming (API 19+).
  • AV1, H264, H265, VP8, VP9, G711, AAC, HE-AAC and OPUS hardware/software encoding.
  • Force video and audio Codec to use hardware/software encoding (Not recommended).
  • Record MP4 file while streaming (API 18+).
  • Set Image, Gif or Text to stream on real time.
  • OpenGL real time filters. More info
  • Stream from video and audio files like mp4, webm, mp3, etc (Limited by device decoders). More info
  • Stream device screen (API 21+).

RTMP:

  • Get upload bandwidth used.
  • RTSP auth (adobe and llnw).
  • AV1, H265 (Using RTMP enhanced), H264, VP8, VP9, AAC, HE-AAC and G711 support.
  • RTMPS (under TLS)
  • RTMPT and RTMPTS (tunneled and tunneled under TLS)
  • AMF0

RTSP:

  • Get upload bandwidth used.
  • RTMP auth (basic and digest).
  • AV1, H264, H265, VP8, VP9, AAC, HE-AAC G711 and OPUS support.
  • TCP/UDP.
  • RTSPS.

SRT:

  • Get upload bandwidth used.
  • H264, H265, AAC, HE-AAC and OPUS support.
  • Resend lost packets
  • Encrypt (AES128, AES192 and AES256)
  • SRT auth.

https://haivision.github.io/srt-rfc/draft-sharabayko-srt.html

UDP:

  • Get upload bandwidth used.
  • H264, H265, AAC, HE-AAC and OPUS support.
  • Unicast, Multicast and Broadcast support.
  • MPEG2-TS support.

WHIP (beta):

  • Get upload bandwidth used.
  • H264, H265, AV1, VP8, VP9, G711 and OPUS support.
  • WHIP auth (bearer token).

https://github.com/pedroSG94/RTSP-Server

3rd party projects:

Projects related with the library developed by other users. Contact with user owner if you have any problem or question.

https://github.com/FunnyDevs/rtmp-rtsp-stream-client-java-recordcontrollers

Real time filters:

NOTE:

In library version 2.0.9, the filters was refactored. Check the wiki link to migrate your implementation.

https://github.com/pedroSG94/RootEncoder/wiki/Real-time-filters

Looking for sponsors

This library need sponsors to get new devices or pay platforms to test and debug errors. Any donation or sponsor is welcome! If you are interested. You can contact me by email or donate directly on Github or Paypal Thank you!

Use examples:

Rotation example

This is the recommend way to use the library. This example support screen rotation, stream orientation (vertical, horizontal) filters and change video/audio sources on fly: https://github.com/pedroSG94/RootEncoder/tree/master/app/src/main/java/com/pedro/streamer/rotation

Screen example

Example to stream using Screen as video source using a service to stream in background: https://github.com/pedroSG94/RootEncoder/tree/master/app/src/main/java/com/pedro/streamer/screen

From file example

Code example to stream using a video file as video/audio source: https://github.com/pedroSG94/RootEncoder/tree/master/app/src/main/java/com/pedro/streamer/file

Old Api example

Code example for low API devices (Android API 16+): https://github.com/pedroSG94/RootEncoder/tree/master/app/src/main/java/com/pedro/streamer/oldapi

评论

暂无评论