[gst-devel] How to stream video from a desktop to an Android device?
yuanqing.cai at tieto.com
Thu Dec 30 03:42:53 CET 2010
On 12/29/2010 11:42 PM, Suneet Shah wrote:
> My name is Suneet and I'm working on a proof of concept project to get
> back up to speed with development (I haven't done any serious
> development in 3 years ;) ). I have some questions about what
> gstreamer plugins I should look at to accomplish this.
> My project is this:
> * Stream a Linux desktop to an Android device as video
> * Add simple control layer --> A click on the android device
> should result in a click on the Linux desktop
> I've done a bunch of research on gstreamer and I think it is perfect
> for what I want to do. So far, I've figured out how to capture the
> desktop and record it to a video file (thanks to looking at the
> Istanbul application).
> Now I need to figure out:
> * How to encode the video as h.264
> * How to stream the video to an android device
> I've chosen h.264 because Android has native capabilities for playing
> H.264 streams, so this should keep the Android part of it fairly
> simple. I'm planning on using simple socket programming to pass
> messages between Android and the desktop for the control layer. I'm
> using Python and pygst to write the Linux server app.
> My questions are:
> * Does my approach seem sound and should it work?
> * What gstreamer plugins should I look at to stream the video?
> * What plugins should I look at to encode H.264?
> * Will I need to use another tool, like a streaming media server
> (Darwin or otherwise) to stream the video, or can I accomplish
> it completely through a gstreamer pipeline?
> * Are there any relevant examples I should look at?
> Thanks in advance for your time.
Sounds so great :-)
In my opinion:
1.It should work.
2.Maybe you can try a gstreamer plugin named "rfbsrc" for streaming video.
3.You can gst-inspect-0.10 | grep enc to find any codec you want,and in
this case,rfbsrc can fetch video stream from VNC server as RGB format,so
you can just encode the stream to any format Android supported.
4.Maybe you can setup your Linux Desktop as a VNC server,you can just
implement a gstreamer pipeline on the Android side(like rfbsrc ->
capfilter -> videorate -> videoencoder -> surfaceflingersink).
More information about the gstreamer-devel