Tem o famoso VLC que toca tudo. Ótima opção.
O que tenho usado é o Infuse. Antes usava o GoodPlayer.
O Infuse aceita legendas tanto no padrão iTunes quanto em arquivo srt.
Ou seja, nada de ter que inserir legendas em apps como o HandBrake que insere a legenda dentro do container. Ou o MKVtools.
O que é um container?
MKV é um container. Dentro dele tem áudio, vídeo e legendas. Não raro áudio em diversos idiomas. Geralmente, tem um vídeo compactado em H.264 e um áudio AC3 ou AAC.
O que não pode escapar é decodificar esses esses vídeos depende do iTreco. Por exemplo, iPhone 3G, qualquer app, não consegue gravar em mp3. O hardware não suporta. A partir do 3GS um chip cuida dessa tarefa.
O Apple TV 2ª geração não consegue reproduzir H.264 codificados com High Profile 4.0. A 3ª geração, iPhone 4S e iPad 2, por exemplo, conseguem.
A capacidade de tocar depende do iTreco.
Lembra no Windows quando você precisava instalar codecs? K-Lite Codec Pack? Então, é isso.