[Android Q&A, Help & Troubleshooting] br0adband:
This can be a complicated subject so, please read the post before deciding to commit to an answer or response since it's so easy to just say "Well, install this app and you're golden" which - at least at this moment as I'm typing this - is an impossible situation since no such app exists (and I swear, if I could code one up I would but I have effectively nil coding/programming skills).

And this is a long post too so, please, don't crap it with the tl;dr style responses. I'm not the only person this info or a potential app could benefit, there are many many people looking for exactly what I'm asking about. Could even be some money in the project if anyone cares to potentially create such an app, given the constraints and requirements. That's all covered in the main post below, so thanks for taking the time to read even these first two paragraphs.

------------------------------

Ok, the question basically is this: what is the difficulty in creating an Android-based video player - one that works obviously on Android-powered devices - that can read embedded subs of some kind, be it ASS/SUB/SRT, or even VobSub (hey, I'm just tossing it out there) streams in video files, most notably MP4 containers and yes MKV as well?

I've always been curious as to why it seems - that's it seems to be an extraordinarily difficult thing to accomplish. And just for the record, here's why I ask:

My Wife is deaf, has been since birth, and she does love watching her movies and TV shows (from our rather-too-damned-large DVD collection) but because she's deaf the process of getting videos encoded in a portable format (easy to do with HandBrake, like point-click-encode-done) but also being able to include/encode the subs (or even the CC/closed captions) into the files instead of having to go through all the trouble of locating an ASS/SUB/SRT file to accompany that video.

Now, I understand subs, captions, ASS/SUB/SRT/etc formats quite well. I've been using HandBrake and many many other video encoding tools for the better part of 2 decades now (seriously, but that means video compression and encoding of many different kinds over the years, not just HandBrake, etc - I know it hasn't been around that long, or most other tools we commonly use - I mean my experience with digital video formats), but to this day there's just nothing for Android that can read embedded subtitle streams of any kind and if anyone can say why I'd sure love to know.

I'm not asking from the perspective of "GOD DAMMIT WHY CAN'T SOMEONE DO THIS?!?!?!" so please, don't take it offensively - I'm asking because I seriously want to know what the difficulty is. I've got several "How to" types of books about Android, several beginner's books for learning how to create Android apps, etc (hit up a B&N recently with a few hundred bucks in gift certificates I had and grabbed a handful of various Android development/programming books because I believe it's a damned good OS only getting better).

I'm not saying I'll ever be the one that cracks this particular problem, of course, but if anyone can point out or give me some nugget to start with on why it seems (again with the seems thing) to be so damned tough to do. If there was just one video player out there - and right now my hands down favorite is MX Video Player, free on the Market, and pretty awesome overall - that could read subs embedded in MP4/MKV containers I swear, I'd physically stand up from this chair and jump for joy, I kid you not. :)

But anyway... I've been doing the typical (and only method I'm aware of) process of ripping a DVD to the hard drive, encoding to a format my devices can handle (I chose a somewhat future proof resolution of 800 pixels wide (I own an HTC HD2 so that's native, and the vertical resolution is dependent on the video aspect ratio, with AAC audio, using h.264 encoding for the video stream) and embed the subs inside the container (my container of choice for the HD2 is MP4), but of course nothing can ever read the subs.

Which means that another step is required: the long somewhat tedious task of using a tool like DVDSubEdit to "rip" the sub images and then do OCR on them which is pretty much never ever even close to being accurate, which means more time spent fixing up all the booboos in the OCR text, then saving THAT file as an SRT and then being able to have MX Video Player or most any other Android video player be able to play the video file and read the SRT to display those subs.

*phew* It's a chore just typing the process out too.

So... does anyone have an answer, or a specific reason as to why Android video players can't do this? Is there a limitation in Android itself that stops any video players from reading additional streams inside video containers other than the audio and video streams only? That's my guess, that there's some kind of limitation on what the video player is allowed to access, but I am 100% guesstimating on that one - I'm quite positive I'm wrong so, you're free to point out that yes, I'm wrong if you like.

But, it sure would be nice considering I can create near-perfect files for portable devices including the HD2, any Android tablet, the Nook Color, etc etc with fantastic image quality, great audio quality, and embedded subs taken directly from the source material itself... it just seems - yes, I said it again, sorry - like there's no hope.

"Help me, XDA... you're my only hope..."

Ok, it's corny, sue me. :D

But if anyone cares to chime in, or has some advice that is useful and constructive and not just tell me go install yet another Android video player that doesn't actually do what I'm attempting to do, I'm liste--- errr... reading.

Thanks for your time, and if you read this far, I salute you. Have fun, always...