We'd need a proof-of-concept Android app with source code, which performs these functions:
* UI consists of one preview (viewfinder) area, one button to start/stop video recording, one button to take a photo, and an option to select front/back-facing camera. There is no camera selection option if the phone only supports one camera.
* When the video button is pressed, real-time streaming is started, and the video feed should be viewable in a web browser (on a desktop, and Android/IOS).
* Streaming continues until the video button is pressed again.
* The video streaming should be also saved on the phone's SD card, in a format supported by Android, so it can be played back with the native player.
* When the photo button is pressed, a photo is taken, and saved to the SD card (interrupting video recording, if needed).
* Some kind of adaptive streaming algorithm, which detects if the bitrate is too high for transport, and adjusts resolution/bitrate/etc. for a lower quality transmission. Uninterrupted transmission is preferrable over video quality.
The app should run on older Android versions (min 2.1, 2.2), not just on the newest Android 4.0.
Please suggest what can be used on the server-side. Ideally, there should be an open-source/free alternative, which can be installed on our server. RTSP is preferred over HTTP.
For a more in-depth understanding of how streaming should work, see these apps: Qik, Ustream, [url removed, login to view] and Bambuser.