Como posso alterar a codificação de um arquivo de legenda?

13

Eu baixei uma legenda em grego para um filme, e é isso que eu vejo quando abro com o Gedit.

As legendas funcionam muito bem no VLC, todas perfeitas. Mas e se eu quiser editar este subtítulo com algumas palavras gregas? Eu recebo instantaneamente um erro sobre a codificação de caracteres.

Eu tentei novamente e o VLC não reconheceu as legendas ...

    
por Leon Vitanos 03.04.2013 / 19:51

8 respostas

16

Para edição / tradução de legendas (legendas baseadas em texto), sugiro Gaupol .

sudo apt-get install gaupol

Além de gaupol , você também pode tentar o Editor de legendas e Gnome Legendas .

No entanto, nas capturas de tela, fica claro que o arquivo .srt não é não codificado em Unicode.

Acontece que iconv altera a codificação do arquivo para UTF-8, mas o arquivo convertido ainda terá os mesmos caracteres que você vê ao abrir no Gedit.

A solução que encontrei é esta:

  1. Abra o Gaupol e vá para o menu Arquivo Abrir ou clique no botão Abrir .
  2. Existe um menu de seleção na parte inferior da janela aberta, intitulado Codificação de caracteres . Clique em Outro ... (última opção).

  3. Selecione uma codificação apropriada para o seu arquivo, por exemplo Grego ISO-8859-7 , e clique no botão Aceitar .

  4. Agora abra seu arquivo .srt e verifique se todos os caracteres foram renderizados corretamente. Caso contrário, repita o procedimento acima com outra codificação. Você pode executar o comando file -bi yourfile.srt para determinar a codificação correta do seu arquivo (embora eu tenha lido os resultados não são necessariamente exatos).

  5. Com o arquivo de legenda aberto na codificação de caracteres correta, vá para o menu Arquivo Salvar como ... e altere a opção de codificação de caracteres (novamente, em na parte inferior da janela) para UTF-8 e salve o arquivo (possivelmente com um novo nome, por segurança).

Este mesmo procedimento de adicionar a página de códigos funcionará para o Gedit . No entanto, deixo as instruções para o Gaupol, já que essa questão é sobre arquivos de legenda.

Boa sorte.

    
por carnendil 03.04.2013 / 20:18
3
iconv -f ISO-8859-7 -t UTF-8  Input_file.srt   > Output_file.srt  

Abra-os no editor Kate, você pode ver o texto apropriado, se ainda precisar abri-los no Gedit, em outras palavras, altere permanentemente a codificação do comando do terminal acima.

    
por billybadass 22.08.2013 / 01:54
3

Eu recomendaria enca . Ao contrário do gaupol, você pode lidar não apenas com arquivos de legendas, mas com qualquer arquivo de texto.

  1. Instale o encaixe:

    sudo apt-get install enca
    
  2. Para descobrir a codificação do arquivo, veja se a plac pode adivinhar:

    enca <file>
    

    ou, se falhar e você souber o idioma do arquivo de texto, do que executar, por exemplo

    enca -L ru <file>
    

    e veja o que isso te dá. Obtenha a lista de idiomas suportados em man enca .

  3. Eu recomendaria converter para UTF-8, você pode fazê-lo executando

    enconv -x utf8 <file>
    

    ou, novamente, se enca não conseguir adivinhar o idioma por

    enconv -L ru -x utf8 <file>
    

    isso deve funcionar.

por Stan 29.08.2014 / 13:46
1

O problema é que o Gedit (e muitos outros aplicativos linux) não reconhecem corretamente a codificação do texto. O VLC, por outro lado, provavelmente está configurado para reconhecê-lo corretamente (através da aba "Preferências de legendas"), e é por isso que você não tem nenhum problema lá. A solução é simples:

Você não abre o arquivo clicando duas vezes nele, mas através da caixa de diálogo "Abrir" do Gedit . Lá, você pode encontrar no lado inferior esquerdo um drop-down for Encoding , no qual "Automaticamente Detectado" é selecionado por padrão. Defina-o como "Windows-1253" ou "ISO-8859-7" e pronto, o arquivo abre corretamente (e você pode salvá-lo em UTF-8 para evitar problemas futuros)

    
por Giorgos_tph 15.04.2017 / 02:20
0

Outro editor de legendas que permite a conversão em diferentes formatos (e vem com muitos recursos) é Aegisub . Seu formato nativo (.ass) é suportado pelo VLC Media Player, bem como pelo MPlayer, e a conversão para ele deve corrigir problemas de codificação.

    
por LiveWireBT 19.02.2014 / 07:56
0

Para traduzir arquivos SRT, você também pode usar o DualSub . É open-source (GPLv3) e multiplataforma. Usa o Google Translator.

    
por Boni García 01.09.2014 / 16:55
0

Para suas informações gerais, agora há subtitle-index.org , ele concentra muitas legendas, classifica-as em múltiplos critérios ( duração, verificação ortográfica, lisibility, codificação), e oferece o melhor em download direto como UTF-8.

Funcionando muito bem, evita problemas de codificação que são bastante comuns e irritantes.

    
por Lulu 15.05.2015 / 16:19
0

Esta é uma função do Python3 para converter qualquer arquivo de texto, incluindo legendas, para aqueles com codificação UTF-8.

def correctSubtitleEncoding(filename, newFilename, encoding_from='ISO-8859-7', encoding_to='UTF-8'):
    with open(filename, 'r', encoding=encoding_from) as fr:
        with open(newFilename, 'w', encoding=encoding_to) as fw:
            for line in fr:
                fw.write(line[:-1]+'\r\n')
    
por Mojtaba Khodadadi 08.01.2017 / 02:32