rtmp-rtsp-stream-client-java
Library for stream in rtmp and rtsp. All code in java.
If you need a player see this project:
https://github.com/pedroSG94/vlc-example-streamplayer
Wiki (Becoming)
https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/wiki
Permissions:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!--some devices need it--> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera2.full" /> <uses-feature android:name="android.hardware.camera2.autofocus" />
Compile
To use this library in your project with gradle add this to your build.gradle:
allprojects {
repositories {
maven {
url 'https://jitpack.io'
}
}
}
dependencies {
compile 'com.github.pedroSG94.rtmp-rtsp-stream-client-java:rtplibrary:1.2.2'
}
Features:
- Android min API 16.
- Support camera1 and camera2 API
- Encoder type buffer to buffer.
- Encoder type surface to buffer.
- RTMP/RTSP auth wowza.
- Audio noise suppressor.
- Audio echo cancellation.
- Disable/Enable video and audio while streaming.
- Switch camera while streaming.
- Change video bitrate while streaming (API 19+).
- Record MP4 file while streaming (API 18+).
- H264 and AAC hardware encoding.
- RTSP TCP/UDP.
- Stream from MP4 file (only video, no sound, API 18+).
- Stream device display(API 21+).
- Set Image, Gif or Text to stream on real time.
- RTMPS and RTSPS
Backlog
- H265 support
Use example:
This code is a basic example. I recommend you go to Activities in app module and see all examples.
RTMP:
//default //create builder RtmpCamera1 rtmpCamera1 = new RtmpCamera1(surfaceView, connectCheckerRtmp);
//start stream if (rtmpCamera1.prepareAudio() && rtmpCamera1.prepareVideo()) {
rtmpCamera1.startStream("rtmp://yourEndPoint");
}
else {
/**This device cant init encoders, this could be for 2 reasons: The encoder selected doesnt support any configuration setted or your device hasnt a H264 or AAC encoder (in this case you can see log error valid encoder not found)*/
}
//stop stream rtmpCamera1.stopStream();
//with params //create builder RtmpCamera1 rtmpCamera1 = new RtmpCamera1(surfaceView, connectCheckerRtmp);
//start stream if (rtmpCamera1.prepareAudio(int bitrate, int sampleRate, boolean isStereo, boolean echoCanceler,
boolean noiseSuppressor) && rtmpCamera1.prepareVideo(int width, int height, int fps, int bitrate, boolean hardwareRotation, int rotation)) {
rtmpCamera1.startStream("rtmp://yourEndPoint");
}
else {
/**This device cant init encoders, this could be for 2 reasons: The encoder selected doesnt support any configuration setted or your device hasnt a H264 or AAC encoder (in this case you can see log error valid encoder not found)*/
}
//stop stream rtmpCamera1.stopStream();
RTSP:
//default //create builder //by default TCP protocol. RtspCamera1 rtspCamera1 = new RtspCamera1(surfaceView, connectCheckerRtsp);
//start stream if (rtspCamera1.prepareAudio() && rtspCamera1.prepareVideo()) {
rtspCamera1.startStream("rtsp://yourEndPoint");
}
else {
/**This device cant init encoders, this could be for 2 reasons: The encoder selected doesnt support any configuration setted or your device hasnt a H264 or AAC encoder (in this case you can see log error valid encoder not found)*/
}
//stop stream rtspCamera1.stopStream();
//with params //create builder RtspCamera1 rtspCamera1 = new RtspCamera1(surfaceView, connectCheckerRtsp);
rtspCamera1.setProtocol(protocol);
//start stream if (rtspCamera1.prepareAudio(int bitrate, int sampleRate, boolean isStereo, boolean echoCanceler,
boolean noiseSuppressor) && rtspCamera1.prepareVideo(int width, int height, int fps, int bitrate, boolean hardwareRotation, int rotation)) {
rtspCamera1.startStream("rtsp://yourEndPoint");
}
else {
/**This device cant init encoders, this could be for 2 reasons: The encoder selected doesnt support any configuration setted or your device hasnt a H264 or AAC encoder (in this case you can see log error valid encoder not found)*/
}
//stop stream rtspCamera1.stopStream();