We spent some time digging into this today.
Different Android devices behave quite differently with regards to m2ts video streaming. We think certain features of the Stagefright media platform built into Android may get disabled by certain carriers or manufacturers.
For devices that don't work, the device wants a content length and to read valid data from the end of the video file. However, this sort of defeats the purpose of m2ts streaming.
The unlocked Google developer phones (we have every generation) work fine, including the old phones. We say "I don't know the length yet" and they happily start decoding and playing from the beginning.
We might be able to trick the phones by reporting the video is huge (1 TB) and provide fake data when it reads the last 128KB. However, the fake data must align to m2ts frame sizes, so it's a pretty gross hack.
Does anyone having this problem have an unlocked phone? If so, it would be interesting to try editing build.props Stagefright settings like:
http://androidforums.com/sony-ericsson-xperia-mini/538098-tips-tricks-tweaks-power-boosting-your-android-phone.html