Yes, a browser behaves completely different than a media player, because it usually doesn't have memory constraints.
The problem is the rendering (and buffering) is handled inside MediaLogic and we can't easily increase the buffer size.
Possible workarounds for this problem would be:
* copying the file locally before playback
* downloading the file's content inside the proxy and use a proxy-buffer - haven't tried it, but it would probably be slow and might run into php timeout issues... The idea is to "fgets" 10M of data in advance of what MediaLogic requests. However, this might introduce additional stuttering, because you would have to pass the available data back to medialogic as soon as possible - and if medialogic isn't ready to receive the data it will block your request and prevent you from getting more data in the meantime...
Hmm... one possible approach would be to buffer a known amount of data before starting playback (say you buffer 10M), and once you have 10M you fpassthru it to the renderer (provided it doesn't time out waiting). The problem is - your proxy will not make any additional requests for the extra data until those 10M have been consumed. So stuttering will re-appear after those 10M...
You would have to implement a software buffer and have the proxy run the whole time (it currently ends execution when running fpassthru) for this to work... And I doubt it will work without some threaded implementation (one thread to get the data and add it to the buffer and the other thread to pass the data to MediaLogic). Does anyone have experience with threaded php implementations?