Aumentar o tamanho da legenda que é “suavemente” incorporada no mkv

0

Eu tenho alguns arquivos MKV que possuem legendas do Advanced SubStation Alpha (ASS) neles. As legendas são "toggleable", então elas provavelmente não são "gravadas" então.

Meu objetivo é aumentar o tamanho da fonte dessas legendas. O melhor seria modificar diretamente as propriedades do fluxo de legendas (se isso fizer sentido?) Dentro do arquivo MKV. (As configurações do reprodutor multimídia em relação ao tamanho da fonte não ajudam; reproduzirei esses arquivos MKV na minha TV.) Isso tornaria mais fácil a transcodificação do meu HandBrake, pois esse programa não pode importar nenhum outro formato de legenda, exceto SRT. Pode, no entanto, usar legendas ASS se estiverem embutidas no arquivo a ser transcodificado. É por isso que a maneira mais fácil seria preservar - modificar diretamente - as legendas dentro do MKV.

Mas eu nem sei por onde começar tudo isso ...

    
por Laxask 10.06.2014 / 13:49

1 resposta

1

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 .

  1. Execute mkvinfo <mkv filename> e obtenha o índice de legendas.
  2. Executar mkvextract tracks <mkv filename> <subtitle track index>:<mkv filename>.ass
  3. Substitua os tamanhos das fontes do <mkv filename>.ass enviado por saída por um editor de texto.
  4. Executar mkvmerge -o <new mkv filename> <mkv filename> --language 0:eng <mkv filename>.ass
  5. Transcode <new mkv filename> com HandBrake e assista ao arquivo transcodificado na TV.

Um exemplo com o arquivo dn-01.mkv :

  1. 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 para mkvextract . 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
    
  2. Execute mkvextract tracks dn-01.mkv 2:dn-01.ass e aguarde.

  3. Abra dn-01.ass com algum editor de texto e altere os tamanhos de fonte abaixo do cabeçalho V4+ Styles no início do arquivo. (Lembre-se de alterar o tamanho dos estilos all , não apenas o Default .) 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.

  4. 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-criado dn-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:

  1. 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
    
  2. 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.

    
por 11.06.2014 / 01:05