Wie kann ich die Kodierung einer Untertiteldatei ändern?

14

Ich habe einen griechischen Untertitel für einen Film heruntergeladen. Dies wird angezeigt, wenn ich ihn mit Gedit öffne.

Bildbeschreibung hier eingeben

Untertitel funktionieren auf VLC hervorragend, alles perfekt. Aber was ist, wenn ich diesen Untertitel mit einigen griechischen Wörtern bearbeiten möchte? Ich erhalte sofort eine Fehlermeldung bezüglich der Zeichenkodierung.

Bildbeschreibung hier eingeben

Ich drücke auf "Wiederholen" und VLC erkennt die Untertitel nicht ...

Leon Vitanos
quelle

Antworten:

16

Für die Ausgabe / Übersetzung von Untertiteln ( dh auf Text basierende Untertitel) empfehle ich Gaupol .

sudo apt-get install gaupol

Außerdem gaupolkönnen Sie auch den Untertitel-Editor und ausprobieren Gnome-Untertitel .

Aus den Screenshots geht jedoch hervor, dass dies bei Ihrer .srtDatei nicht der Fall ist in Unicode codiert ist.

Wie sich herausstellt, iconv ändert sich die Codierung der Datei in UTF-8, aber die konvertierte Datei enthält weiterhin dieselben Zeichen, die Sie beim Öffnen in Gedit sehen.

Die Lösung, die ich gefunden habe, ist folgende:

  1. Öffnen Sie Gaupol und gehen Sie in das Menü DateiÖffnen oder klicken Sie auf die Schaltfläche Öffnen .
  2. Im unteren Teil des geöffneten Fensters befindet sich ein Auswahlmenü mit dem Titel Zeichenkodierung . Klicken Sie auf Andere ... (letzte Option).

    Zeichenkodierungsoption in Gaupols geöffnetem Fenster

  3. Wählen Sie eine geeignete Kodierung für Ihre Datei aus, z. B. Griechisch ISO-8859-7 , und klicken Sie auf die Schaltfläche Akzeptieren .

    Dialogfeld Zeichenkodierung anzeigen

  4. Öffnen Sie nun Ihre .srtDatei und stellen Sie sicher, dass alle Zeichen korrekt gerendert wurden. Andernfalls wiederholen Sie den obigen Vorgang mit einer anderen Codierung. Sie können den Befehl ausführenfile -bi yourfile.srt , um die korrekte Codierung Ihrer Datei zu ermitteln (obwohl ich die Ergebnisse nicht unbedingt genau gelesen habe).

  5. Öffnen Sie Ihre Untertiteldatei in der richtigen Zeichenkodierung und wechseln Sie zum Menü DateiSpeichern unter .... Ändern Sie die Zeichenkodierungsoption (wieder unten im Fenster) in UTF-8 und speichern Sie die Datei (möglicherweise mit ein neuer Name, aus Sicherheitsgründen).

Das gleiche Verfahren zum Hinzufügen der Codepage funktioniert auch für Gedit . Dennoch lasse ich die Anleitung für Gaupol, da es sich bei dieser Frage um Untertiteldateien handelt.

Viel Glück.

Carnendil
quelle
Ich habe bereits Gaupol, und es zeigt die Wörter wie meine Screenshots vor (in unlesbaren Buchstaben). Und wie ich bereits sagte, wenn ich UTF-8 als neue Codierung festgelegt habe, erkennt VLC die Untertitel nicht.
Leon Vitanos
Sie müssen die Codierung ändern, bevor Sie utf-8
carnendil
Könnten Sie etwas genauer sein? Ja, meine Codierung über Speichern unter ändern? U meine Änderung über Terminal mit "iconv" verschlüsseln? Beide versuchten, VLC wird den Untertitel danach nicht erkennen
Leon Vitanos
Es tut mir leid, ich musste mir einige griechische Untertitel besorgen, um das zu überprüfen. Tatsächlich iconvändert sich die Zeichencodierung, aber das Programm ersetzt nicht die Zeichen, die beim Öffnen als UTF-8 angezeigt werden. Bitte überprüfen Sie meine aktualisierte Antwort. Prost.
Carnendil
4
iconv -f ISO-8859-7 -t UTF-8  Input_file.srt   > Output_file.srt  

Öffnen Sie sie aus Kate-Editor können Sie den richtigen Text sehen, wenn Sie sie aus Gedit noch öffnen müssen, mit anderen Worten, dauerhaft ändern Sie die Codierung führen Sie den obigen Terminal-Befehl.

billybadass
quelle
iconv, für das, was ich experimentieren konnte, wird die Kodierung der Datei ändern, aber keinen der Inhalte ersetzen, das heißt, nur die Zeichen, die zwischen der Quell- und Zielkodierung übereinstimmen, werden korrekt gerendert, alle anderen werden entsprechend gerendert wie die Zielcodierung sie versteht. Siehe meine Antwort und ihre Kommentare.
Carnendil
thnks @carnendil was ich gesagt habe war, dass es die Kodierung ändert, weil ich auch Griechisch bin (Englisch nicht Muttersprache), offensichtlich meinte ich Kodierung und nur in der Ausgabedatei steht die Eingabe noch im Verzeichnis, aber kannst du nett genug sein es in ein Bash-Skript implementieren? soll ich mich für die Schleife "for do. iconv ... done" entscheiden?
billybadass
diese Art der Antwort ist zu beachten, dass die Kodierung von den Video-Player-Einstellungen noch auf utf-8 geändert werden muss #! / bin / bash für Datei in * .srt do iconv -f ISO-8859-7 -t UTF-8 -o "$ file.new" "$ file" && mv -f "$ file.new" "$ file" getan
billybadass
3

Ich würde empfehlen enca. Im Gegensatz zu Gaupol können Sie nicht nur Untertiteldateien, sondern auch beliebige Textdateien verarbeiten.

  1. Installieren Sie enca:

    sudo apt-get install enca
    
  2. Um die Kodierung der Datei herauszufinden, prüfen Sie, ob enca sie erraten kann:

    enca <file>
    

    oder wenn es fehlschlägt und Sie die Sprache der Textdatei kennen, führen Sie es zum Beispiel aus

    enca -L ru <file>
    

    und sehen, was es dir gibt. Holen Sie sich die Liste der unterstützten Sprachen von man enca.

  3. Ich würde empfehlen, auf UTF-8 zu konvertieren, Sie können es ausführen

    enconv -x utf8 <file>
    

    oder auch hier encakann ich die Sprache nicht erraten

    enconv -L ru -x utf8 <file>
    

    das sollte den Trick machen.

Stan
quelle
1

Das Problem ist, dass Gedit (und viele andere Linux-Apps) die Kodierung des Texts nicht richtig erkennen. Dagegen ist VLC höchstwahrscheinlich so eingestellt, dass es es richtig erkennt (über die Registerkarte "Untertiteleinstellungen"), und deshalb haben Sie dort kein Problem. Die Lösung ist einfach:

Sie öffnen die Datei nicht durch Doppelklicken, sondern über das Dialogfeld "Öffnen" von Gedit . Dort finden Sie links unten ein drop-down for Encoding, in dem standardmäßig "Automatisch erkannt" ausgewählt ist. Stellen Sie "Windows-1253" oder "ISO-8859-7" ein und Sie können loslegen. Die Datei wird korrekt geöffnet. Sie können sie dann in UTF-8 speichern, um zukünftige Probleme zu vermeiden.

Giorgos_tph
quelle
0

Ein weiterer Untertitel-Editor, mit dem Sie in verschiedene Formate konvertieren können (und der jede Menge Funktionen bietet), ist Aegisub . Das native Format (.ass) wird sowohl von VLC Media Player als auch von MPlayer unterstützt, und das Konvertieren in dieses Format sollte Codierungsprobleme beheben.

LiveWireBT
quelle
0

Zum Übersetzen von SRT-Dateien können Sie auch DualSub verwenden . Es ist Open Source (GPLv3) und plattformübergreifend. Es verwendet Google Übersetzer.

Boni García
quelle
0

Zu Ihrer allgemeinen Information, jetzt gibt es subtitle-index.org , es konzentriert viele Untertitel, ordnet sie nach mehreren Kriterien (Dauer, Rechtschreibprüfung, Lesbarkeit, Kodierung) und bietet die beste im direkten Download als UTF-8.

Es funktioniert ziemlich gut und vermeidet Codierungsprobleme, die ziemlich allgemein und ärgerlich sind.

Lulu
quelle
0

Dies ist eine Python3-Funktion zum Konvertieren von Textdateien einschließlich Untertiteln in solche mit UTF-8-Codierung.

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')
Mojtaba Khodadadi
quelle