VLC で mkv ビデオに埋め込まれた両方の字幕を表示するにはどうすればよいですか?

VLC で mkv ビデオに埋め込まれた両方の字幕を表示するにはどうすればよいですか?

英語とドイツ語の字幕が埋め込まれた mkv ビデオがあります。VLC プレーヤーで mkv ビデオを視聴しています。一度に選択できる字幕は 1 つだけです。ドイツ語を学びたいのですが、英語とドイツ語の字幕が同時に表示されるビデオを視聴できれば便利です。

両方の字幕を表示して VLC でビデオを視聴するにはどうすればよいですか?

VLC がこの機能をサポートできない場合は、他のビデオ プレーヤーを歓迎します。

答え1

VLC

ベータ 4.0.0 の時点で、VLC はデュアル/セカンダリ字幕をサポートしています。これを動作させるのは、現在のところ少し面倒なようです。

まず、全体的にオンにする必要があります。[ツール] > [設定] > [字幕/OSD] > [デュアル字幕] (一番下) > [配置] の順に進み、未設定以外の値に変更します。オフセット (隣接する設定) の調整も必要になる場合があります。

ビデオを再生するときに、デフォルトのショートカットCtrl+ Shift+を使用して「セカンダリ字幕コントロールを切り替える」必要がありますV。(つまり、字幕を前後に切り替えるための通常の字幕コントロール ショートカット (vまたはAlt+など) が、メインの字幕ではなくセカンダリ字幕に適用されるようになります。 + +をもう一度押すと、これらがメインの字幕に適用されるようになります。) 次に、適切な回数押して、必要な (セカンダリ) 字幕に切り替えます。vCtrlShiftVv

代替案 — mpv

mpv2 セットの字幕を表示するためのより便利なアプローチが (私見ですが) あります。

すべての字幕は埋め込まれている(質問で指定されているとおり)か、別の適切な名前の外部ファイルにある(たとえば、映画の名前が の場合、file1.mkv字幕ファイルは である)ものと想定します。そうでない場合は、オプション などを追加するか、(たとえば)を操作して、file1.srt字幕ファイルを明示的に指定できます。--sub-file=subtitle_file_lang_xx.src--sub-file=subtitle_file_lang_yy.src--sub-auto--sub-auto=fuzzy

字幕の選択方法 (組み込みまたは外部ファイルから) に関係なく、ビデオ ファイルを再生すると、各字幕セットが独自の「ストリーム」に含まれます。ストリームには、連続した整数インデックス (1、2、3...) が割り当てられます。一般に、組み込みの字幕には (論理的に) 前のインデックスが付きます。ストリーム インデックス、その言語 (字幕に指定された言語がある場合)、および字幕が外部ファイルからのものであるかどうかは、 でファイルを再生するときにターミナルに表示されますmpv。たとえば、 を実行した後mpv file1.mkv:

(+) Subs  --sid=1 --slang=eng (*) (subrip)
    Subs  --sid=2 --slang=deu (subrip)
    Subs  --sid=3 'file1.srt' (subrip) (external)

engここで、最初の 2 つの字幕は、それぞれ英語 ( ) とドイツ語 ( )の言語で組み込まれていますdeuが、3 つ目は外部ファイルからのものです。インデックス ( sid) は 1、2、3 です。デフォルトの字幕ストリームは最初のもの ( でマークされています(*)) であり、選択されているもの ( ) でもあります(+)

これらのインデックスがわかれば、オプションとを使用して「メイン」字幕とセカンダリ字幕を指定できます--sid--secondary-sidたとえば、前の例の英語の字幕をメイン字幕として表示し、ドイツ語の字幕をセカンダリ字幕として表示するには、次のコマンドを実行します (ターミナルで):

mpv --sid=1 --secondary-sid=2 file1.mkv

キーボードショートカットでサブタイトルを切り替える

デフォルトでは、副字幕を切り替えるキーボード ショートカットはありません (「メイン」字幕を切り替えるには、( + )jと( ) を使用します)。ただし、ショートカットを簡単に追加できます。JShiftj

たとえば、次のコードを~/.config/mpv/input.conf(またはより一般的には、${XDG_CONFIG_HOME}/mpv/input.conf) に追加するとします。

Ctrl+j cycle secondary-sid
Ctrl+J cycle secondary-sid down

Ctrl+ は、メインのj字幕と同じ方向にサブ字幕を循環させ(字幕ストリーム インデックスを増加させ)、 + + は、メインの字幕と同じ方向にサブ字幕を循環させます(字幕ストリーム インデックスを減少させます)。+ + は、サブ字幕を反対方向に循環させます(字幕ストリーム インデックスを減少させます)。jCtrlShiftjJ

(に基づくAskubuntuでの私自身の回答

答え2

VLC についてはわかりませんが、SMPlayer では可能です。字幕を 1 つずつドラッグし、字幕メニューから主字幕と副字幕を選択するだけです。

関連情報