A powerful and funny android app. that streams the camera and microphone of your phone to your browser or to VLC

Overview

Spydroid-ipcamera

  • Spydroid is a little app. that streams the camera and microphone of your phone to your browser or to VLC !

  • It is a fun app for pulling off pranks: you can remotly trigger funny sounds on your phone or toggle its flash.

  • Developers, start by reading this to find out how streaming is achieved in Spydroid.

  • Check out the feature list to see what Spydroid is capable of :) And If you have questions, check out the FAQ.

  • If you enjoyed Spydroid, or its source code, please rate the app on Google Play, I would really appreciate :) And if you go and like the facebook page, you will be rewarded with all my gratitude :p

Features

  • The stream can be directly read by VLC which is great because VLC is a very powerful tool, for example you can really easily record the stream in a file. [FAQ See the FAQ to find out how].
  • You can enable/disable sound or video streaming
  • The resolution, the bitrate and the framerate of the stream can be configured... Two video encoders are available for the video streaming: H.263 and H.264. For sound streaming AMR and AAC are available.
  • The flash can be controlled remotly !
  • You can choose between the back facing camera and the front facing camera (if your phone has one)
  • Funny sounds can be played on the phone from the HTTP interface ! Awesome isn't it ? :p
  • You can make the phone vibrate remotely
  • You can see the battery level of the phone
  • Some more advanced features are shown here

Requirements

  • Ice Cream Sandwich or better (API level >=14)
  • H.263: should work on phones that supports h263
  • H.264: should work on phones that supports h264
  • AMR: should work everywhere!
  • AAC: should work everywhere!

There may be some glitches on some phones. Some resolution, frame rate, bit rate may be supported on some phones and not on other.

  • The VLC plugin for firefox or chrome need to work properly if you want to use the http interface.

Dear developers

The streaming stack used in Spydroid is available as a standalone library here with its Javadoc and explanations about how it works and how to use it. It is available under the Apache 2.0 license and I no longer maintain it.

Folks, please note that i'm a french dude, so if you see something that doesn't make any sense do not hesitate to correct me :) (fyhertz at gmail dot com).

Enjoy

By Simon Guigui aka fyhertz

Comments
  • VLC not receiving any audio packets

    VLC not receiving any audio packets

    hey hi, i was trying the example 2 application that uses this library with VLC on the other end as client playing using the sdp file. VLC recognises the audio track but its not receiving any audio blocks to decode. i guess something is not right with the audio streaming package. the spydroid app also had the same problem. i tried with both AAC and AMR. no use.

    opened by ghost 2
  • SetPreviewDisplay Failed

    SetPreviewDisplay Failed

    This error shows up on the web interface when I click on Disconnect and Connect again. On the phone: preview video freezes. Web interface: "An error occured :( SetPreviewDisplay Failed"

    Simple workaround is to close and start Spydroid and to click on Connect again. But it should refresh or simply off preview video after disconnecting or something.

    SpyDroid 9.1

    opened by AreYouLoco 1
  • Is this project still alive?

    Is this project still alive?

    This project seems to be not correctly working on modern android versions. The last commit is by seven years ago. Is this project still alive? Do you need help? @fyhertz

    opened by amreo 5
  • How to updated the project with dependencies?

    How to updated the project with dependencies?

    Hi I cloned the project with Android Studio and the following imports give a compiler error: import org.apache.http.ConnectionClosedException; import org.apache.http.HttpException; import org.apache.http.HttpServerConnection; import org.apache.http.impl.DefaultConnectionReuseStrategy; import org.apache.http.impl.DefaultHttpResponseFactory; import org.apache.http.impl.DefaultHttpServerConnection; import org.apache.http.params.BasicHttpParams; import org.apache.http.params.CoreConnectionPNames; import org.apache.http.params.CoreProtocolPNames; import org.apache.http.params.HttpParams; import org.apache.http.protocol.BasicHttpContext; import org.apache.http.protocol.BasicHttpProcessor; import org.apache.http.protocol.HttpContext; import org.apache.http.protocol.HttpRequestHandler; import org.apache.http.protocol.HttpRequestHandlerRegistry; import org.apache.http.protocol.ResponseConnControl; import org.apache.http.protocol.ResponseContent; import org.apache.http.protocol.ResponseDate; import org.apache.http.protocol.ResponseServer; import org.apache.http.protocol.UriPatternMatcher;

    import android.app.Service; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Binder; import android.os.IBinder; import android.preference.PreferenceManager; import android.util.Log; What is the best way to get them please? Did you use Maven or something?

    opened by bitflame 2
  • How to enable Switching between front and Rare  camera in this application

    How to enable Switching between front and Rare camera in this application

    I tried replacing public VideoStream() { this(CameraInfo.CAMERA_FACING_FRONT); but it didn't work , even tried to utilize public void switchCamera() API , was not able to switch to front ,camera any suggestions on this

    opened by karthik098 0
  • "You need to install or update VLC and the VLC mozilla plugin!" with latest firefox under Linux

    First thanks a lot for the nice app! It must be really helpful for many people under the siege we are in right now :)

    Not sure if this is the same issue that I'm experiencing with a previous reporter (https://github.com/fyhertz/spydroid-ipcamera/issues/11), but I guess it will be best to open a separate bug report (let me know if there's an open issue about he same thing, I might have missed it..)

    OS is Mint 19.3 Firefox 76.0 (64-bit) VLC is 3.0.8-0ubuntu18.04.1

    The device is a OnePlus One with its default setup.

    spydroid is the latest present version from F-Droid.

    On an initial connection to the phone's portal address (i.e. 192.168.xx.xx:8080) the page greets me with a "You need to install or update VLC and the VLC mozilla plugin !".

    I have all available plugins for vlc installed in Mint, but I'm really unsure if the reported missing plugin is not something not provided in Mint/Ubuntu repositories.

    Let me know if I should share any other info in order to investigate this further.

    opened by tanev 1
  • Caused by: java.lang.ClassNotFoundException: Didn't find class

    Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.ads.AdView"

    2020-05-07 11:30:04.809 1684-1684/net.majorkernelpanic.spydroid E/AndroidRuntime: FATAL EXCEPTION: main Process: net.majorkernelpanic.spydroid, PID: 1684 java.lang.RuntimeException: Unable to start activity ComponentInfo{net.majorkernelpanic.spydroid/net.majorkernelpanic.spydroid.ui.SpydroidActivity}: android.view.InflateException: Binary XML file line #52: Binary XML file line #52: Error inflating class com.google.ads.AdView at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2856) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2931) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1620) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:173) at android.app.ActivityThread.main(ActivityThread.java:6698) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782) Caused by: android.view.InflateException: Binary XML file line #52: Binary XML file line #52: Error inflating class com.google.ads.AdView Caused by: android.view.InflateException: Binary XML file line #52: Error inflating class com.google.ads.AdView Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.ads.AdView" on path: DexPathList[[zip file "/data/app/net.majorkernelpanic.spydroid-JdFKPgwwjViQUFOkk3zFhA==/base.apk"],nativeLibraryDirectories=[/data/app/net.majorkernelpanic.spydroid-JdFKPgwwjViQUFOkk3zFhA==/lib/arm64, /system/lib64, /system/vendor/lib64]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at android.view.LayoutInflater.createView(LayoutInflater.java:610) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:794) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:734) at android.view.LayoutInflater.rInflate(LayoutInflater.java:867) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828) at android.view.LayoutInflater.rInflate(LayoutInflater.java:870) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828) at android.view.LayoutInflater.rInflate(LayoutInflater.java:870) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828) at android.view.LayoutInflater.inflate(LayoutInflater.java:519) at android.view.LayoutInflater.inflate(LayoutInflater.java:427) at android.view.LayoutInflater.inflate(LayoutInflater.java:374) at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:418) at android.app.Activity.setContentView(Activity.java:2708) at net.majorkernelpanic.spydroid.ui.SpydroidActivity.onCreate(SpydroidActivity.java:86) at android.app.Activity.performCreate(Activity.java:7040) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2809) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2931) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1620) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:173) at android.app.ActivityThread.main(ActivityThread.java:6698) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)

    opened by WestbrookZero 1
Owner
Simon
Simon
This repository contains event driven redis app uses redis streams

Spring Boot Redis Streams This repository contains event driven redis app uses redis streams Run redis in docker docker run --rm --name redis -itp6379

Maksim Kostromin 1 Dec 1, 2021
Kafka Streams Processor to unwrap CØSMOS blocks into CØSMOS transactions

Kafka Processor CØSMOS-Block A Kafka Streams Processor to unwrap CØSMOS blocks into CØSMOS transactions. Purpose The Kafka Processor CØSMOS-Block is b

OKP4 – Open Knowledge Protocol For 4 Dec 15, 2022
Framework for Mobile test automation (Native app and Browser) on Android and IOS devices

Appium Mobile Automation Framework Framework for Mobile test automation (Native app and Browser) on Android and IOS devices ?? ?? Quick Start - Appium

Thangaraj 40 Nov 18, 2022
This repository is a simple humidity and temperature dashboard to present data from sensors on your phone

ChilliBook This repository is a simple humidity and temperature dashboard to present data from sensors on your phone. It uses Bluetooth LE and an ESP3

Alejandro Mera 1 Nov 8, 2021
Accessibility-Service - Filter url from browser by using accessibility service

Accessibility Service example Filter url from browser by using accessibility ser

AmirMohammad Yazdanmanesh 8 Nov 29, 2022
Casio G-Shock Phone Sync

This app integrates the Casio G-shock B5600 series bluetooth watches, with Google services such as Google Calendar events and Google Alarm Clock. It is not meant to replace the official Casio app. Instead it converts your traditional G-shock into a semi-smart watch.

Ivo Zivkov 22 Dec 15, 2022
Quick photo and video camera with a flash, customizable resolution and no ads.

Simple Camera A camera with flash, zoom and no ads. The camera is usable for both photo taking and video recording. You can switch between front and r

Simple Mobile Tools 644 Dec 26, 2022
Restler is a beautiful and powerful Android app for quickly testing REST API anywhere and anytime.

Restler Restler has been built with simplicity and ease of use in mind. It allows you send custom HTTP/HTTPS requests and test your REST API anywhere

Tiago 10 Dec 20, 2022
A simple, lightweight and powerful field validation library for Android.

Convalida Convalida - (Italian for "validation") Convalida is a simple, lightweight and powerful field validation library for Android. Documentation G

Wellington Costa 203 Nov 18, 2022
A stable and very powerful Kotlin bot.

Nabi 나비 Yeah idk what to put here anymore stfu azoo bloo Also chat commands are not being considered so no I don't recommend that you build the entire

myosyn 2 Oct 5, 2022
To help to promote your android app by prompting users to rate your app in a bottom Sheet.

RateBottomSheet This an Android library to help to promote your Android App by prompting users to rate your app in the Google Play Store with a materi

Farham Hosseini 5 Jul 8, 2022
Easy app for managing your files without ads, respecting your privacy & security

Simple File Manager Can also be used for browsing root files and SD card content. You can easily rename, copy, move, delete and share anything you wis

Simple Mobile Tools 1.2k Dec 29, 2022
App with plant list 🌱 , the app reminds you when to water 💦 your best plant at a certain time.

Plant Life App with plant list ?? , the app reminds you when to water ?? your best plant at a certain time.. Table of Contents Introduction Features U

Haya Saud Alrawdhan 0 Jan 6, 2022
Binding your extras more easier, more simpler for your Android project

Ktan Ktan make your intent / arguments more easier and readable. And most important, will help you bind all extras for your activity / fragment. And a

Ade Fruandta 3 Jan 7, 2023
TakeNotes, taking care of your tasks and your health

Take Notes - Para tornar sua rotina mais Saudável TakeNotes, cuidando de suas tarefas e de sua saúde Sobre • Funcionalidades • Layout • Como executar

null 0 Dec 7, 2021
Simple view which allow you to customise your pizza's toppings and size as per your choice.

TwistedPizzaToppingsView Overview Simple view which allows options to customize your pizza toppings and size as per your choice. Features Android 12 s

MindInventory 19 Dec 18, 2022
An Android app that calculates BMI values and results by entering your height and weight

BMICalculator BMI 지수는 소수 한자리까지만 출력됨 BMI 결과의 색상은 하단 이미지뷰의 체형별 결과값의 색상과 같음 참고했던 링크

HYUNJUNEPARK 0 Feb 10, 2022