I am developing a video chat app that will stream Audio and Video from an Android device to a remote player (over the internet). I am using MediaCodec on the android device to encode a 1024x576 30fps stream with 1 I frame every second. I am publishing that stream to wowza via RTSP. With Flash Player (netstream buffer of .10) I'm still at ~1-1.5sec second latency. I would like to be < 500ms. I am somewhat locked into the Android being the video source, but I am flexible on the player side.

1) is there a lower latency alternative to MediaCodec on Android (maybe ffmpeg or openCV)?
2) What's the lowest latency decoding method? Flash Player/FFPlay/VLC or some custom SDK?
3) Can you achieve something like the GameStream from NVIDIA (or AWS AppStream) using wowza (probably only a few frames latency)?
4) Does Wowza support transcoding using the low latency presets on NVIDIA? I am hosting on EC2 and can use the GPU instances.
5) what is the lowest latency that people are getting using wowa?

Sorry for the long list, I've been using wowza for a while and love the overall product, but needed some direction on how to optimize my solution.