I can not talk about ffmpeg, but for GStreamer:
1) Yes, you can get delays well below 500 ms using GStreamer as an RTSP client. See The latency property on rtspsrc (which, for example, can be accessed through the signal from the configuration source if you use playbin ... and you need to). By default, it is set to 2000 milliseconds (which is safe by default), but if you connect fast enough, you can set it much lower.
2) It depends on your experience with both APIs. For me, the GStreamer application would be much simpler, and you could find several samples on the Internet: https://coaxion.net/blog/2014/08/gstreamer-playback-api/ http://cgit.freedesktop.org/~ slomo / gst-sdk-tutorials / tree / gst-sdk / tutorials (android tutorials )
3) You can use any standard compatible RTSP server, both should work. GStreamer has a very simple but powerful API and is part of the GStreamer binaries for Android, which you can get here: http://gstreamer.freedesktop.org/data/pkg/android/1.4.3/
source share