Ipcam View

MJPEG video streaming on Android
Alternatives To Ipcam View
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Srs22,714
6 days ago97June 05, 2023172mitC++
SRS is a simple, high-efficiency, real-time video server supporting RTMP, WebRTC, HLS, HTTP-FLV, SRT, MPEG-DASH, and GB28181.
Hls.js13,36938162917 hours ago2,162August 03, 2023177otherTypeScript
HLS.js is a JavaScript library that plays HLS in browsers with support for MSE.
Rabbitmq Server11,0411111413 hours ago190July 17, 2023289otherStarlark
Open source RabbitMQ: core server and tier 1 (built-in) plugins
Nuclear10,650
12 days ago165agpl-3.0TypeScript
Streaming music player that finds free music for you
Streamlink9,011302313 hours ago64August 02, 202358bsd-2-clausePython
Streamlink is a CLI utility which pipes video streams from various services into a video player
Owncast8,243
20 hours ago77July 28, 2023173mitTypeScript
Take control over your live stream video by running it yourself. Streaming + chat out of the box.
Ksql5,645
a day ago1,279otherJava
The database purpose-built for stream processing applications.
Peerflix5,534347403 years ago143June 09, 2018130mitJavaScript
Streaming torrent client for node.js
Examples4,294
2 years ago14JavaScript
Example Koa apps
Twit4,1135,6893913 years ago64June 30, 2018161JavaScript
Twitter API Client for node (REST & Streaming API)
Alternatives To Ipcam View
Select To Compare


Alternative Project Comparisons
Readme

ipcam-view ipcam-view

Android Arsenal JitPack

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

main default

two-camera snapshot

video custom-appearance

settings

Get it on F-Droid Get it on Google Play

Usage

Add to your layout: example


<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

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
Popular Streaming Projects
Popular Stream Projects
Popular Networking Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
C
Stream
Streaming
Ndk
Video Streaming
Mjpeg