Como definir legendas para 'none' como padrão para totem?

7

Ubuntu 17.10

Abrir vídeos tem sempre as legendas em inglês (incorporadas) por padrão, eu tenho que desativá-las toda vez que eu abrir um novo arquivo.

Como transformar isso em none como padrão?

Há uma caixa de seleção para as legendas externas que eu desativei. Essa configuração não faz sentido algum. Deve ser aplicado também a legendas incorporadas.

E não, um hack horrível de outra pergunta para definir o tamanho da fonte para 1px ou algo assim não é uma solução.

Isso acontece com .mkv arquivos contidos com subt de legendas neles.

    
por redanimalwar 22.11.2017 / 18:00

3 respostas

5

Tornar a sobreposição de legendas invisível

Depois de muitos googling encontrarmos o mesmo Q & amp; A aqui na AU: totem (videos) - desligar as coisas? . Assim como sua pergunta, o OP não quer definir o tamanho da fonte como 1 pixel como uma solução.

A resposta postada na pergunta descobriu que um tamanho de fonte de '' 0 usando gsettings funcionou perfeitamente:

Remover permanentemente as legendas dos seus vídeos

Outra opção é remover permanentemente as legendas do seu .mkv arquivos. O autor no link explica como fazer isso para os títulos flexíveis e títulos rígidos (recortando a parte inferior da imagem). O artigo está dividido em três partes:

  • Parte Um: Verifique se a Legenda é Subtítulo Suave ou não
  • Parte Dois: Como remover legendas suaves de MKV, AVI e MP4?
  • Parte Três: Como remover legendas codificadas de MKV, MP4 e AVI?

Desenvolvedor de e-mail com nova solicitação de recurso

O desenvolvedor do Totem do GNOME é Bastien Nocera. Você pode enviar um e-mail para ele no e-mail [email protected] e pedir um novo recurso para definir o idioma padrão do vídeo recém-aberto. No seu caso, seria "Nenhum". No entanto, para outros usuários, há um benefício se, por exemplo, o idioma do sistema for definido como "russo", mas eles queriam que todos os vídeos abertos tivessem legendas "em inglês".

Altere o código-fonte e recompile

O código-fonte do totem pode ser encontrado no github . Se os desenvolvedores não acomodarem a nova solicitação de recurso, você poderá modificar o código-fonte:

  1. Encontre o módulo no qual o formato de legenda está atribuído
  2. Encontre a linha onde a legenda está definida para o seu idioma
  3. Adicione uma nova linha de código substituindo o idioma para nenhum

Pode levar muitas horas para adicionar uma linha ao código-fonte, mas você pode achar o processo esclarecedor e agradável

Gastei cerca de 10 minutos para encontrar a função que define a legenda no módulo: link na linha 246:

select_subtitle_action_cb (GSimpleAction *action,
               GVariant      *parameter,
               gpointer       user_data)
{
    totem_playlist_select_subtitle_dialog (TOTEM_OBJECT (user_data)->playlist,
                           TOTEM_PLAYLIST_DIALOG_PLAYING);
}

Totem usa GStreamer para levantamento pesado

Graças à resposta de Chriki , aprendemos muito sobre os internos do Totem e como ele chama GStreamer para fazer o trabalho pesado de reprodução de vídeo. Existe uma opção de interface do GStreamer , onde as legendas podem ser totalmente desativadas:

  • Suporta seleção e desativação de fluxo. Se sua mídia tiver várias faixas de áudio ou legenda, você poderá escolher dinamicamente qual delas será reproduzido ou optar por desativá-la (o que é especialmente útil para desativar as legendas). Para cada um deles, use o "texto atual" e outras propriedades relacionadas.

A parte que diz "que é especialmente útil para desativar legendas" é provavelmente o local onde uma versão atualizada do Totem seria segmentada.

Como apontado por Chriki, o GStreamer seleciona o idioma de legenda padrão e fornece uma lista de todas as legendas que o Totem usa para preencher seu menu de configurações. O Totem está fornecendo outra opção de "Nenhum", que, quando selecionada, instrui o GStreamer a desativar as legendas.

Acho que a alteração do design seria remover a opção "nenhum" do menu de seleção de legendas. Em seguida, crie uma opção de menu global para "legendas ativadas / desativadas", que é persistente nas sessões do Totem. Talvez quando cada novo vídeo for iniciado, uma bolha de 5 segundos possa exibir "Legendas disponíveis desativadas". para lembrar ao usuário que ele pode ser ligado para o vídeo atual, se desejado.

Dito isso, sou um criador de scripts bash de começo e a programação em C para modificar a interface do Totem para GStreamer está acima da minha nota salarial.

    
por WinEunuuchs2Unix 17.02.2018 / 23:39
2

Definir um padrão não é possível com o Totem

Eu passei pelo código-fonte do Totem e, até o momento, parece não ser possível definir nenhum padrão idioma da legenda ou “Nenhum”. O Totem parece simplesmente usar o fluxo de legendas padrão que o player do GStreamer subjacente seleciona o vídeo atualmente reproduzido - e esse padrão é descrito aqui : " Por padrão, o primeiro fluxo de legenda com dados é reproduzido . "

Em outras palavras, a resposta relatada por WinEunuuchs2Unix é provavelmente sua melhor opção no momento. Aqui está novamente com um pouco de originalidade adicionada para minha própria resposta:

gsettings set org.gnome.totem subtitle-font \
    "$(gsettings get org.gnome.totem subtitle-font | sed -r -e 's/ [0-9]+([^0-9])?$/ 0/')"

Você pode executá-lo diretamente em uma janela do Terminal (bash), ou seja, não é necessário pensar manualmente em uma fonte para definir; ele usa o anteriormente definido (visível com gsettings get org.gnome.totem subtitle-font ).

Mais detalhes sobre minha reivindicação

Embora não seja fácil provar que algo não está disponível, ainda gostaria de apontar alguns códigos relevantes que vi que parecem apoiar minha reivindicação.

A função totem_subtitles_update cuida de atualizar as legendas cardápio. O que isso faz se resume ao seguinte:

action = g_action_map_lookup_action (G_ACTION_MAP (totem), "set-subtitle");
// …
current = bacon_video_widget_get_subtitle (totem->bvw);
g_action_change_state (action, g_variant_new_int32 (current));

Em outras palavras, ele usa a configuração de legenda atual do widget de vídeo e a usa no menu também.

Veja o que bacon_video_widget_get_subtitle faz por por causa da perfeição:

g_object_get (G_OBJECT (bvw->priv->play), "current-text", &subtitle, NULL);

O current-text é consultada e seu valor é retornado por meio da variável subtitle (para ser usada por meio da variável current , conforme mostrado acima). E como mencionado acima, essa propriedade usa como padrão “o primeiro fluxo de legendas com dados”.

    
por Chriki 18.02.2018 / 18:45
1

Não parece possível ATM.

Mas há uma maneira hacky de desativá-los no totem alltogether gsettings set org.gnome.totem subtitle-font '[whatever your font is here], 0'

    
por Robert Riedl 19.02.2018 / 10:08