Existem duas maneiras básicas de mostrar legendas. Você pode codificar os pixels no próprio vídeo. Isso é chamado de "hardsubbing". A vantagem aqui é a simplicidade do reprodutor de vídeo, é apenas um fluxo de vídeo. As desvantagens são que você teve que recodificar o vídeo, o que leva tempo e tem alguma perda de fidelidade. Se você obtém uma tradução melhor, bem, são pixels no vídeo. E você pode ter apenas um idioma.
O que é um pouco melhor é o "softsubbing", que consiste em ter um arquivo de texto em algum lugar, separado do fluxo de vídeo. Existem muitos formatos diferentes de arquivos de legenda, mas todos eles têm "texto, começam a que horas, removem a que horas". Alguns possuem recursos adicionais, como cores e orientação na tela. A vantagem disso é que você pode ter vários idiomas (pense em um DVD, você tem vários idiomas disponíveis) e pode corrigir erros de digitação no arquivo. E se você não precisa de legendas, basta desativá-las.
Os Softsubs podem ser arquivos separados - a maioria dos players procura automaticamente legendas com o mesmo nome (extensão diferente) do vídeo principal. Ou determinados formatos de arquivo de contêiner (como MKV) podem incorporá-los. Confira MKVtoolnix (existe uma porta mac) para obter ferramentas de arquivo MKV. Isso deve permitir a incorporação de softsubs sem recodificação.
Observe que nem todos os players podem suportar todos os formatos. Minha experiência é que o XBMC tem problemas com arquivos SSA, mas os arquivos SRT muito mais simples estão bem. O VLC reproduzirá qualquer coisa, se houver suporte na sua plataforma.