I am not 100% sure, but I think that you cannot transfer most of the video because of the way the format stores the video metadata. That is why you should convert your video files and not display them in any format. There are protocols that encapsulate this metadata and allow you to stream any video (which is what the YouTube mobile phone does). You should take a look at RTSP: http://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol
If you use the rtsp link in a video, it should seamlessly transmit the video. The fact is that your problem is with the server, not with the client.
As an exercise, you can grab the rtsp link from m.youtube.com and just go to the video video using setVideoPath and it should work.
If you cannot change the server implementation, you probably believe that your solutions are:
1) Download and decode the video yourself, you have to process all the metadata and ensure that the video really works. Theoretically, you could compile ffmpeg for android to help you with this, but I could not compile it for Android with the network option. This is a lot of work.
2) Write your own implementation of RTSP or another streaming protocol. Download the video in the stream and create a local server on the device to transfer this video file to the videoView instance. I'm actually working on an application. Android does not support the specific protocol that client servers use, and I had to make it work. It took me a whole month to do this. I cannot post any sample code because it is all client-side, but I could give you more information about this if you are interested.
In any case, if you cannot change the server / video format, you should prepare for a lot of work.
source share