ipcam-view alternatives and similar packages
Based on the "Media" category.
Alternatively, view ipcam-view alternatives based on common mentions on social networks and blogs.
-
CameraView
[DEPRECATED] Easily integrate Camera features into your Android app -
libstreaming
A solution for streaming H.264, H.263, AMR, AAC using RTP on Android -
PhotoFiltersSDK
AndroidPhotoFilters aims to provide fast, powerful and flexible image processing instrument for creating awesome effects on any image media. -
AndroidFFmpeg
[DEPRECATED] FFmpeg build for android random architectures with example jni -
android-ffmpeg
a system for building custom ffmpeg binaries for Android -
android-ffmpeg-java
Android Java wrapper around ffmpeg command line binary -
android-ffmpeg-with-rtmp
script(s) to build ffmpeg for android, including support for RTMP (and OpenSSL) -
FFmpeg-Android
Script and Instructions for building FFmpeg for Android
Appwrite - The Open Source Firebase alternative introduces iOS support
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of ipcam-view or a related project?
README
ipcam-view [ipcam-view](images/logo.png)
Android MJPEG video streaming made simple!
A wrapper library around the well known SimpleMjpegView and android-camera-axis projects.
If you have problem to identify your IpCam url, please follow this link
Features
- [x] Default support by
android-camera-axis
- [ ] Native support by
SimpleMjpegView
- [x] Handle credentials and cookies
- [x] Multiple camera in one activity
- [x] Snapshot
- [x] Flip and rotate image
- [x] Video recording
- [x] Custom appearance
Gradle dependency
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.niqdev:ipcam-view:<LATEST_RELEASE>'
}
Demo app
Usage
Add to your layout: [example](app/src/main/res/layout/activity_ipcam_default.xml)
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
// ADD THIS
xmlns:stream="http://schemas.android.com/apk/res-auto"
...>
<com.github.niqdev.mjpeg.MjpegSurfaceView
android:id="@+id/VIEW_NAME"
android:layout_width="match_parent"
android:layout_height="match_parent"
stream:type="stream_default OR stream_native" />
</RelativeLayout>
Read stream in your activity/fragment: [example](app/src/main/java/com/github/niqdev/ipcam/IpCamDefaultActivity.kt)
int TIMEOUT = 5; //seconds
Mjpeg.newInstance()
.credential("USERNAME", "PASSWORD")
.open("IPCAM_URL.mjpg", TIMEOUT)
.subscribe(inputStream -> {
mjpegView.setSource(inputStream);
mjpegView.setDisplayMode(DisplayMode.BEST_FIT);
mjpegView.showFps(true);
});
Customize appearance
To get a transparent background for the surface itself (while stream is loading) as well as for the stream background
mjpegView.setTransparentBackground();
// OR
stream:transparentBackground="true"
To hide the MjpegView later, you might need to reset the transparency due to internal behaviour of applying transparency
mjpegView.resetTransparentBackground();
To set other colors than transparent, be aware that they will only be applied on a running stream i.e. you can't change the color of the surface itself which you will see while the stream is loading
Note that it only works when transparentBackground
is not set to true
and that you are not able to directly set transparent background color here
mjpegView.setCustomBackgroundColor(Color.DKGRAY);
// OR
stream:backgroundColor="@android:color/darker_gray"
To change the colors of the fps overlay
mjpegView.setFpsOverlayBackgroundColor(Color.DKGRAY);
mjpegView.setFpsOverlayTextColor(Color.WHITE);
To clear the last frame since the canvas keeps the current image even if you stop the stream, e.g. hide/show
mjpegView.clearStream();
To flip the image
mjpegView.flipHorizontal(true);
mjpegView.flipVertical(true);
To rotate the image
mjpegView.setRotate(90); // degrees
Apps that use this library
You are welcome to add your app to the list!
Development
Download Android NDK:
- manually
- in Android Studio: File > Other Settings > Default Project Structure > download NDK
Compile manually (verify your paths)
$ chmod a+x compileJni.sh
$ ./compileJni.sh