Bem, eu fiz isso. Não é o melhor caminho, mas eu estava com pressa. Abaixo está como resolvi meu problema.
(Além disso, não se esqueça de instalar o mkvtoolnix . Os usuários do Linux podem simplesmente pegar o pacote do seu repositório, enquanto os usuários do Windows podem tentar baixar o mkvtoolnix de site oficial .
- Execute
mkvinfo <mkv filename>
e obtenha o índice de legendas. - Executar
mkvextract tracks <mkv filename> <subtitle track index>:<mkv filename>.ass
- Substitua os tamanhos das fontes do
<mkv filename>.ass
enviado por saída por um editor de texto. - Executar
mkvmerge -o <new mkv filename> <mkv filename> --language 0:eng <mkv filename>.ass
- Transcode
<new mkv filename>
com HandBrake e assista ao arquivo transcodificado na TV.
Um exemplo com o arquivo dn-01.mkv
:
-
Execute
mkvinfo dn-01.mkv
e o programa irá imprimir algumas informações sobre o arquivo mkv. Procure a faixa de legendas e seu número correspondente. Certifique-se de usar o número entre parênteses , pois é o usado paramkvextract
. No meu caso, as informações da faixa de legendas eram:| + A track | + Track number: 3 (track ID for mkvmerge & mkvextract: 2) | + Track UID: 476285904 | + Track type: subtitles | + Enabled: 1 | + Default flag: 1 | + Forced flag: 0 | + Lacing flag: 0 | + MinCache: 0 | + Timecode scale: 1 | + Max BlockAddition ID: 0 | + Codec ID: S_TEXT/ASS | + Codec decode all: 1 | + CodecPrivate, length 2057 | + Language: eng
-
Execute
mkvextract tracks dn-01.mkv 2:dn-01.ass
e aguarde. -
Abra
dn-01.ass
com algum editor de texto e altere os tamanhos de fonte abaixo do cabeçalhoV4+ Styles
no início do arquivo. (Lembre-se de alterar o tamanho dos estilos all , não apenas oDefault
.) Exemplo:Style: Default,Marker Felt,27,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,0,2,10,10,10,0 Style: SIGN,Sand,36,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,0 (more)
... torna-se ...
Style: Default,Marker Felt,42,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,0,2,10,10,10,0 Style: SIGN,Sand,54,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,0 (more)
Salve o arquivo depois que as alterações forem feitas.
-
Execute
mkvmerge -o dn-01-modified.mkv dn-01.mkv --language 0:eng dn-01.ass
e aguarde. Depois que o processo for concluído, o recém-criadodn-01-modified.mkv
terá uma faixa de legenda extra, que deve ser maior em tamanho de renderização do que a faixa de legenda original.
Agora você terminou! Eu queria assistir ao vídeo na TV. Se você quiser fazer isso também ou reproduzi-lo em outro dispositivo, então:
-
Transcode
dn-01-modified.mkv
com algum programa de transcodificação de vídeo, usando as configurações apropriadas para seu dispositivo de destino. ( Não se esqueça de dizer ao programa para gravar a faixa de legendas recém-adicionada no próprio vídeo, se o seu dispositivo alvo não puder reproduzir legendas do ASS!) No meu caso, usei HandBrakeCLI com as configurações abaixo para usar em uma TV Samsung de 60 ". Note que estou gravando na legenda, já que a minha TV não gosta de legendas da ASS.HandBrakeCLI -e x264 -q 20.0 -a 1 -E ffac3 -B 160 -6 dpl2 -R Auto -D 0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mkv --loose-anamorphic --modulus 2 -m --x264-preset veryfast --h264-profile main --h264-level 4.0 --subtitle "2" --subtitle-burned 2 -i dn-01-modified.mkv -o dn-01-modified-burned.mkv
-
Reproduza o arquivo transcodificado
dn-01-modified-burned.mkv
no dispositivo de destino.
Como eu disse no começo: este não é um processo ótimo . As coisas podem ser feitas melhor, mas não tenho tempo para refinar esse processo a partir de agora. Também não seria tão divertido fazer isso para um grande número de vídeos; ficaria muito repetitivo. Felizmente para mim, eu só tive que fazer isso por alguns vídeos, mas no futuro, com certeza vou ter mais vídeos cujo subtítulo tem que ser ampliado, e então, eu vou escrever um script bash ou python para fazer tudo automaticamente.