GStreamer works wonders and combine it with a raspberry pi and you have endless possibilities. This was a hobby project to create a video doorbell which I thought was my million dollar idea until I saw a KickStarter campaign for it (sigh).
Here is a breakdown of what the project required to be done:
1) Video streaming server – on the raspberry pi serving video content, for me this was a live stream from the RPI Camera – I used gstreamer and created a RTSP streaming server in C++.
2) Video streaming client is an android app which receives the stream and display it and processes the push notification from the doorbell press – I used an earlier version gstreamer for android. You can find the full library here: GStreamer for android
3) Basic IO push button hardware – available from sparkfun
4) Python GPIO library to process input from the button – RPI GPIO Library
5) Push notification API (free version) provided by Urban airship – urbanairship
The server starts serving video as soon as the RPI boots up – the button press sends a push notification to the android app – interacting with the notification causes the client to connect to the server and display the video stream.
A video of this in action can be seen at: