All Projects → niqdev → Ipcam View

niqdev / Ipcam View

Licence: mit
MJPEG video streaming on Android

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Ipcam View

py-mjpeg
Python MJPEG streaming utilities
Stars: ✭ 32 (-89.04%)
Mutual labels:  mjpeg, video-streaming
Jpegrtspcamera
Sample RTSP server streaming MJPEG video from PC camera
Stars: ✭ 25 (-91.44%)
Mutual labels:  video-streaming, mjpeg
foxrtc
media sdk based on webrtc
Stars: ✭ 36 (-87.67%)
Mutual labels:  video-streaming
api.video-go-client
The official Go client library for api.video
Stars: ✭ 16 (-94.52%)
Mutual labels:  video-streaming
reducer-tester
Utilities for testing redux reducers
Stars: ✭ 19 (-93.49%)
Mutual labels:  snapshot
godot-engine.code-snapshot
A plugin for Godot Engine which will let you take beautified snapshots of your code within the Editor. Configure the frame as you like, with GDScript syntax already highlighted.
Stars: ✭ 32 (-89.04%)
Mutual labels:  snapshot
uTextureSendReceive
Unity network texture sender and receiver for video and frame streaming
Stars: ✭ 111 (-61.99%)
Mutual labels:  video-streaming
mux-go
Official Mux API wrapper for golang projects, supporting both Mux Data and Mux Video.
Stars: ✭ 69 (-76.37%)
Mutual labels:  video-streaming
Google Drive Player Script
Grab google drive streaming links (redirector.googlevideo.com/videoplayback?..)
Stars: ✭ 283 (-3.08%)
Mutual labels:  video-streaming
RokuKast
A Chrome extension to stream web videos to Roku devices.
Stars: ✭ 63 (-78.42%)
Mutual labels:  video-streaming
karma-snapshot
🅰️🆚🅱️ Karma plugin for snapshot testing
Stars: ✭ 29 (-90.07%)
Mutual labels:  snapshot
Camera-Doorbell-IOT
Stream video on a local network. Uses Flask and Opencv
Stars: ✭ 20 (-93.15%)
Mutual labels:  video-streaming
VidStreamComp
Components for video streaming in Unity.
Stars: ✭ 25 (-91.44%)
Mutual labels:  video-streaming
tssi2
tssi2 is a header-only library for parsing MPEG-2 and DVB Transport Streams in the domain of multimedia processing applications.
Stars: ✭ 18 (-93.84%)
Mutual labels:  video-streaming
SingleFile-Lite
Feel the power of the Manifest V3. The future, right now!
Stars: ✭ 55 (-81.16%)
Mutual labels:  snapshot
Swappy
A Wayland native snapshot editing tool, inspired by Snappy on macOS
Stars: ✭ 264 (-9.59%)
Mutual labels:  snapshot
schema-shot
Framework-agnostic snapshot testing using "schema by example" for highly dynamic data
Stars: ✭ 34 (-88.36%)
Mutual labels:  snapshot
terraform-aws-ec2-ami-backup
Terraform module for automatic & scheduled AMI creation
Stars: ✭ 19 (-93.49%)
Mutual labels:  snapshot
freeshooter
This is old-school tool for taking screenshots without bloatware features, simple as life, light as air.
Stars: ✭ 102 (-65.07%)
Mutual labels:  snapshot
Glusterfs
Gluster Filesystem : Build your distributed storage in minutes
Stars: ✭ 3,437 (+1077.05%)
Mutual labels:  snapshot

ipcam-view ipcam-view

Android Arsenal Download

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
  • [ ] Video recording
  • [x] Custom appearance

Gradle dependency

repositories {
    jcenter()
}
dependencies {
    compile 'com.github.niqdev:mjpeg-view:1.7.0'
}

Demo app

main default

two-camera snapshot

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].