字幕ファイルのエンコーディングを変更するにはどうすればよいですか?


14

映画のギリシャ語のサブタイトルをダウンロードしましたが、これはGeditで開いたときに表示されるものです。

ここに画像の説明を入力してください

字幕はVLCで最適に機能し、すべて完璧です。しかし、この字幕をギリシャ語の単語で編集したい場合はどうすればいいですか?文字エンコードに関するエラーがすぐに表示されます。

ここに画像の説明を入力してください

再試行すると、VLCが字幕を認識しません...

回答:


16

字幕の編集/翻訳(テキストベースの字幕、つまり)については、Gaupolを強くお勧めします

sudo apt-get install gaupol

のほかにgaupolSubtitle Editor Gnome Subtitles

しかし、スクリーンショットから、あなたのことは明らかである.srtファイルがありません Unicodeでエンコードされて。

結局のところ、iconv 変化する UTF-8へのファイルのエンコーディングを、しかし、変換されたファイルはまだGeditの中で開いたときに表示同じ文字を持っています。

私が見つけた解決策はこれです:

  1. オープンGaupolメニューに移動、ファイル開く]またはボタンをクリックしてください開きます
  2. 開いているウィンドウの下部に、[ 文字エンコーディング]というタイトルの選択メニューがあります。その他...(最後のオプション)をクリックします。

    Gaupolの開いているウィンドウの文字エンコードオプション

  3. ギリシャ語のISO-8859-7など、ファイルに適切なエンコードを選択し、ボタンAcceptをクリックします。

    文字エンコーディングダイアログボックスを表示

  4. .srtファイルを開き、すべての文字が正しくレンダリングされていることを確認してください。それ以外の場合は、別のエンコードで上記の手順を繰り返します。コマンドを実行できますfile -bi yourfile.srtを、ファイルの正しいエンコードを決定ます(ただし、結果は必ずしも正確ではありませんが)。

  5. 字幕ファイルを正しい文字エンコーディングで開いた状態で、メニューの「ファイル」名前を付けて保存...」に移動し、文字エンコーディングオプション(ウィンドウの下部)をUTF-8に変更し、ファイルを保存します(おそらく安全のため、新しい名前)。

コードページを追加するこの同じ手順は、Geditでも機能します。しかし、この質問は字幕ファイルに関するものなので、私はGaupolに指示を残します。

幸運を。


私はすでにgaupolを持っています、そしてそれは私のスクリーンショットのような言葉を(読めない文字で)示しています。私が前に言ったように私は新しいエンコーディングとしてUTF-8を設定した場合と、VLCは字幕..認識されない
レオンVitanos

編集してutf-8として剃る前にエンコードを変更する必要があります
-carnendil

もう少し具体的に教えていただけますか?名前を付けて保存でエンコードを変更するという意味ですか?Uは、「iconv」を使用して端末経由でエンコードを変更することを意味しますか?両方とも試されましたが、VLCはその後サブタイトルを認識しません
レオンヴィタノス

申し訳ありませんが、チェックするにはギリシャ語の字幕を自分で取得する必要がありました。実際、iconv文字エンコードは変更されますが、プログラムはUTF-8として開かれたときに表示される文字を置き換えません。更新された回答を確認してください。乾杯。
カーネンディル

4
iconv -f ISO-8859-7 -t UTF-8  Input_file.srt   > Output_file.srt  

Kateエディターから開くと、適切なテキストが表示されます。Geditから開く必要がある場合は、上記のターミナルコマンドを実行してコードを永続的に変更します。


iconv、私が実験できたのは、ファイルのエンコーディングを変更しますが、コンテンツを置換することはありません。つまり、ソースとターゲットのエンコーディング間で一致する文字のみが正しくレンダリングされ、他のすべてはターゲットエンコーディングがそれらをどのように理解するか。見る私の答えと彼らのコメントを
カーネディル

私はギリシャ語(英語では母国語ではない)であるため、コード化を変更すると言ったのは@carnendilです、明らかに私はエンコードを意味し、出力ファイルでは入力はまだディレクトリにありますが、 bashスクリプトで実装しますか?「for do。iconv ... done」ループに行くべきですか?
ビリーバダス

そのような答えは、ビデオプレイヤーの設定からエンコードをutf-8に変更する必要があることに注意してください#!/ bin / bash in * .srt do iconv -f ISO-8859-7 -t UTF-8 -o "$ file.new" "$ file" && mv -f "$ file.new" "$ file"完了
ビリーバダス

3

お勧めしencaます。gaupolとは異なり、字幕ファイルだけでなく、任意のテキストファイルを処理できます。

  1. encaをインストールします。

    sudo apt-get install enca
    
  2. ファイルのエンコードを把握するには、encaが推測できるかどうかを確認します。

    enca <file>
    

    または、失敗し、テキストファイルの言語がわかっている場合は、たとえば

    enca -L ru <file>
    

    そしてそれがあなたに与えるものを見てください。サポートされている言語のリストをから入手してくださいman enca

  3. UTF-8に変換することをお勧めします。実行すると実行できます

    enconv -x utf8 <file>
    

    または、enca言語を推測できない場合

    enconv -L ru -x utf8 <file>
    

    これでうまくいくはずです。


1

問題は、Gedit(および他の多くのLinuxアプリ)がテキストのエンコードを正しく認識しないことです。一方、VLCはおそらく([字幕設定]タブを使用して)正しく認識されるように設定されているため、そこで問題が発生することはありません。解決策は簡単です。

ファイルをダブルクリックして開くのではなく、Geditの[開く]ダイアログを使用して開きます。そこでは、左下にを見つけることができdrop-down for Encodingます。デフォルトでは、「自動検出」が選択されています。「Windows-1253」または「ISO-8859-7」に設定すると、ファイルを正しく開くことができます(その後、将来の問題を回避するためにUTF-8に保存できます)。


0

Aegisubは、さまざまな形式への変換を可能にする(および多数の機能を備えた)字幕エディターです。ネイティブ形式(.ass)はVLC Media PlayerとMPlayerでサポートされており、それに変換するとエンコードの問題が修正されます。


0

SRTファイルの翻訳には、DualSubを使用することもできます。それはオープンソース(GPLv3)であり、クロスプラットフォームです。Google Translatorを使用します。


0

一般的な情報については、subtitle-index.orgがあります。、多数の字幕を集中させ、複数の基準(期間、スペルチェック、リスビリティ、エンコード)に沿ってランク付けし、UTF-8として直接ダウンロードするのに最適なものを提供します。

かなりうまく機能し、かなり一般的で迷惑なエンコードの問題を回避します。


0

これは、字幕を含むすべてのテキストファイルをUTF-8エンコーディングのテキストファイルに変換するためのPython3関数です。

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')
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.