Wie setze ich Untertitel als Standard für Totem auf 'keine'?

8

Ubuntu 17.10

Beim Öffnen von Videos sind standardmäßig immer die englischen Untertitel (eingebettet) aktiviert. Ich muss sie jedes Mal deaktivieren, wenn ich eine neue Datei öffne.

Wie wird es nonestandardmäßig aktiviert?

Es gibt ein Kontrollkästchen für externe Untertitel, die ich deaktiviert habe. Diese Einstellung macht überhaupt keinen Sinn. Dies sollte auch für eingebettete Untertitel gelten.

Und nein, ein schrecklicher Hack von einer anderen Frage, um die Schriftgröße auf 1px oder so etwas einzustellen, ist keine Lösung.

Dies geschieht bei .mkventhaltenen Dateien mit subtUntertitel-Streams.

Redanimalwar
quelle
Welche Videos? Ist es möglich, dass die Untertitel in das Video eingebettet sind ? Wie könnte ein Spieler (irgendein Spieler, nicht nur Totem) sie unterdrücken?
Walzer
Ich denke, es ist ziemlich offensichtlich, dass ich nicht über fest codierte Untertitel spreche, sondern über eingebettete (Metadaten in der Datei). Offensichtlich, weil ich sagte, ich muss sie jedes Mal ausschalten, was bedeutet, dass sie sich tatsächlich ausschalten und ich tatsächlich ein Menü habe, das mir die Sprachen und die Option none zeigt. Vielleicht solltest du das nächste Mal lesen und nachdenken.
Redanimalwar
Welche Videos? Welches Format? Werden die Videos in totemoder in einem GStreamerausgewählten Backend-Player abgespielt ?
Walzer
Was ist ein von GStreamer ausgewählter Back-End-Player? Und wie finde ich heraus, ob ich einen verwende? Es ist das Standard-Totem des Ubuntu-Video-Players. Ich glaube nicht, dass es etwas mit all diesen Fragen zu tun hat, die Sie stellen. Ich denke, Totems Option ist einfach dumm, um ehrlich zu sein. Es scheint nur für externe Untertitel zu gelten, die in einer separaten Datei gespeichert sind (nicht getestet). Ich bearbeite die Datei in in.
redanimalwar
Scheint nicht möglich Geldautomat. Aber es gibt eine hackige Möglichkeit, sie insgesamt zu deaktivierengsettings set org.gnome.totem subtitle-font '[whatever your font is here], 0'
Robert Riedl

Antworten:

6

Machen Sie die Untertitelüberlagerung unsichtbar

Nachdem viele Googler hier in AU die gleichen Fragen und Antworten gefunden haben: Totem (Videos) - Dinge ausschalten? . Genau wie bei Ihrer Frage möchte das OP dort die Schriftgröße nicht als Problemumgehung auf 1 Pixel einstellen.

Die Antwort in der Frage ergab, dass eine Schriftgröße von `` 0 using gsettingsperfekt funktioniert:


Entfernen Sie Untertitel dauerhaft aus Ihren Videos

Eine andere Möglichkeit besteht darin , Untertitel dauerhaft aus Ihren .mkvDateien zu entfernen . Der Autor im Link erklärt, wie dies sowohl für weiche als auch für harte Titel gemacht wird (indem der untere Teil des Bildes ausgeschnitten wird). Der Artikel ist in drei Teile gegliedert:

  • Erster Teil: Überprüfen Sie, ob der Untertitel ein weicher Untertitel ist oder nicht
  • Teil 2: Wie entferne ich weiche Untertitel von MKV, AVI und MP4?
  • Dritter Teil: Wie entferne ich den fest codierten Untertitel von MKV, MP4 und AVI?

E-Mail-Entwickler mit neuer Funktionsanforderung

Der Entwickler von GNOME Totem ist Bastien Nocera. Sie können ihm eine E-Mail an [email protected] senden und nach einer neuen Funktion zum Festlegen der neu geöffneten Standardsprache für Videos fragen. In Ihrem Fall wäre es "Keine". Für andere Benutzer ist es jedoch von Vorteil, wenn beispielsweise die Sprache ihres Systems auf "Russisch" eingestellt wurde, sie jedoch wollten, dass alle geöffneten Videos Untertitel mit "Englisch" haben.


Ändern Sie den Quellcode und kompilieren Sie ihn neu

Totem-Quellcode finden Sie auf Github . Wenn die Entwickler die neue Funktionsanforderung nicht berücksichtigen, können Sie den Quellcode ändern:

  1. Suchen Sie das Modul, dem das Untertitelformat zugewiesen ist
  2. Suchen Sie die Zeile, in der der Untertitel auf Ihre Sprache eingestellt ist
  3. Fügen Sie eine neue Codezeile hinzu, die die Sprache überschreibt

Das Hinzufügen der einen Zeile zum Quellcode kann viele Stunden dauern, aber der Vorgang ist möglicherweise aufschlussreich und unterhaltsam

Ich habe ungefähr 10 Minuten damit verbracht, die Funktion zu finden, mit der der Untertitel im Modul festgelegt wird: https://github.com/GNOME/totem/blob/master/src/totem-menu.c in Zeile 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 verwendet GStreamerfür schweres Heben

Dank der Antwort von Chriki lernen wir viel über Totem-Interna und wie es GStreamerdarum geht, die Videowiedergabe zu beschleunigen . Es gibt eine GStreamer-Schnittstellenoption, bei der Untertitel vollständig deaktiviert werden können:

  • Unterstützt die Auswahl und Deaktivierung von Streams. Wenn Ihr Medium über mehrere Audio- oder Untertitelspuren verfügt, können Sie dynamisch auswählen, welche abgespielt werden soll, oder sie ganz deaktivieren (was besonders nützlich ist, um Untertitel zu deaktivieren). Verwenden Sie für jede dieser Eigenschaften den "aktuellen Text" und andere verwandte Eigenschaften.

Der Teil, der angibt, "was besonders nützlich ist, um Untertitel auszuschalten", ist wahrscheinlich der Ziel einer aktualisierten Version von Totem.

Wie von Chriki hervorgehoben, wählt GStreamer die Standard-Untertitelsprache aus und bietet eine Liste aller Untertitel, die Totem zum Auffüllen des Einstellungsmenüs verwendet. Totem bietet eine weitere Option "Keine", die GStreamer bei Auswahl anweist, Untertitel zu deaktivieren.

Ich denke, die Designänderung würde darin bestehen, die Option "Keine" aus dem Untertitelauswahlmenü zu entfernen. Erstellen Sie dann eine globale Menüoption für "Untertitel ein / aus", die über Totem-Sitzungen hinweg erhalten bleibt. Möglicherweise wird beim Starten jedes neuen Videos in einer 5-Sekunden-Blase "Verfügbare Untertitel deaktiviert" angezeigt. um den Benutzer daran zu erinnern, dass sie bei Bedarf für das aktuelle Video aktiviert werden können.

Das heißt, ich bin ein Anfänger im Bash-Skript und die C-Programmierung zum Ändern der Totem- zu- GStreamer- Oberfläche liegt über meiner Gehaltsstufe.

WinEunuuchs2Unix
quelle
1
das ist genau das, was mein Kommentar sagt ;-)
Robert Riedl
@RobertRiedl Bitte poste eine Antwort und ich werde meine löschen. Ich hatte stundenlang gegoogelt und mich daran erinnert, Ihren Kommentar gelesen zu haben.
WinEunuuchs2Unix
Dadurch wird die Untertiteleinstellung nicht auf "Keine" umgeschaltet. Ich möchte lernen, wie man die Standardeinstellung ändert oder wie man die Änderung beibehält, nachdem ich sie manuell umgeschaltet habe.
Tom Brossman
@ TomBrossman Ich habe lange gesucht, bevor ich das gefunden habe, gsettingindem ich das direkt gegoogelt habe , was mich zu den Fragen und Antworten zu Ask Ubuntu in meinem Link geführt hat. Das einzige, was die Leute getan haben, ist einfach, Untertitel zu entfernen, die in alle .mkv-Dateien eingebettet sind. Was je nach Nutzung eine schlechtere Option für Sie sein könnte.
WinEunuuchs2Unix
@ TomBrossman Ich habe der Antwort zwei weitere Optionen hinzugefügt. Eine neue Feature-Anfrage würde mehr Anklang finden, wenn alle Fragen und Antworten zu dieser Funktion in der Anfrage mit den Entwicklern verknüpft würden.
WinEunuuchs2Unix
2

Das Festlegen einer Standardeinstellung ist mit Totem nicht möglich

Ich habe den Totem-Quellcode durchgesehen und bis heute scheint es nicht möglich zu sein, entweder eine Standard-Untertitelsprache oder "Keine" festzulegen. Totem scheint einfach immer den Standard-Untertitel-Stream zu verwenden, den der zugrunde liegende GStreamer-Player für das aktuell abgespielte Video auswählt - und dieser Standard wird hier beschrieben : "Standardmäßig wird der erste Untertitel-Stream mit Daten abgespielt."

Mit anderen Worten, die Antwort ist von WinEunuuchs2Unix berichtete wahrscheinlich die beste Wahl im Moment. Hier ist es wieder mit etwas Originalität für meine eigene Antwort hinzugefügt:

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

Sie können dies direkt in einem (Bash-) Terminal-Fenster ausführen, dh Sie müssen nicht manuell an eine zu setzende Schriftart denken. Es wird die zuvor festgelegte verwendet (sichtbar mit gsettings get org.gnome.totem subtitle-font).

Weitere Details zu meinem Anspruch

Es ist zwar nicht einfach zu beweisen, dass etwas nicht verfügbar ist, aber ich möchte dennoch auf einige relevante Codeteile verweisen, auf die ich gestoßen bin und die meine Behauptung zu stützen scheinen.

Die totem_subtitles_updateFunktion kümmert sich um die Aktualisierung des Untertitelmenüs. Was es tut, läuft auf Folgendes hinaus:

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));

Mit anderen Worten, es übernimmt die aktuelle Untertiteleinstellung aus dem Video-Widget und verwendet sie auch im Menü.

Der bacon_video_widget_get_subtitleVollständigkeit halber ist Folgendes zu tun:

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

Die current-textEigenschaft wird abgefragt und ihr Wert wird über die subtitleVariable zurückgegeben (zur Verwendung über die currentVariable wie oben gezeigt). Und wie oben erwähnt, ist diese Eigenschaft standardmäßig "der erste Untertitelstrom mit Daten".

Chriki
quelle
Ihre Antwort hier ist beeindruckend. Ich habe einen neuen Abschnitt am Ende meiner Antwort hinzugefügt, der auf Ihrer harten Arbeit aufbaut. Ich bin ein bisschen überfordert, also hoffe ich, dass ich es richtig gemacht habe. Vielen Dank.
WinEunuuchs2Unix
1

Scheint nicht möglich Geldautomat.

Aber es gibt eine hackige Möglichkeit, sie insgesamt im Totem zu deaktivieren

gsettings set org.gnome.totem subtitle-font '[whatever your font is here], 0'
Robert Riedl
quelle