Os arquivos de legendas vêm em vários formatos, de .srt a .sub a .ass e assim por diante. Existe uma maneira de dizer ao mpv para procurar por arquivos de legendas junto com os arquivos de mídia e, se isso acontecer, começar a reproduzir o arquivo automaticamente. Atualmente eu tenho que fazer algo assim, que pode ser muito longo, dependendo do nome do arquivo -
[$] mpv --list-options | grep sub-file
(null) requires an argument
--sub-file String list (default: ) [file]
Aguarde as respostas.
Atualização 1 - Um filme típico que possui .srt (ou subscrito)
[$] mpv Winter.Sleep.\(Kis.Uykusu\).2014.720p.BrRip.2CH.x265.HEVC.Megablast.mkv
(null) requires an argument
Playing: Winter.Sleep.(Kis.Uykusu).2014.720p.BrRip.2CH.x265.HEVC.Megablast.mkv
(+) Video --vid=1 (*) (hevc)
(+) Audio --aid=1 (aac)
(+) Subs --sid=1 'Winter.Sleep.(Kis.Uykusu).2014.720p.BrRip.2CH.x265.HEVC.Megablast.srt' (subrip) (external)
[vo/opengl] Could not create EGL context!
[sub] Using subtitle charset: UTF-8-BROKEN
AO: [alsa] 48000Hz stereo 2ch float
VO: [opengl] 1280x536 yuv420p
AV: 00:02:14 / 03:16:45 (1%) A-V: 0.000
A linha mais interessante é esta: -
(+) Subs --sid=1 'Winter.Sleep.(Kis.Uykusu).2014.720p.BrRip.2CH.x265.HEVC.Megablast.srt' (subrip) (external)
Agora, se o arquivo fosse como .ass ou .sub com o mesmo nome de arquivo, não funcionaria. Eu tentei isso em muitos arquivos de mídia que possuem essas extensões e cada vez que o mpv carrega o vídeo e o áudio e os protocolos, mas não os arquivos de legenda externos.
Atualização 2 - A parte do script .ass é listada como um bug no bts do mpv - link
Atualização 3 - Tente depurar com ajuda do upstream, arquivado link para isso.
Parece, entretanto, que não é o mpv que é responsável, mas o ffmpeg (e o libavformat), que supostamente decodifica as legendas. Daí ter adicionado ffmpeg para isso também.