web-dev-qa-db-ja.com

トーテムのデフォルトとして字幕を「なし」に設定する方法は?

Ubuntu 17.10

ビデオを開くと、デフォルトで常に英語の字幕(埋め込み)がオンになっています。新しいファイルを開くたびに、それらをオフにする必要があります。

デフォルトとしてnoneにするにはどうすればよいですか?

externalオフにした字幕のチェックボックスがあります。この設定はまったく意味がありません。埋め込み字幕にも適用する必要があります。

いいえ、フォントサイズを1pxに設定する別の質問からの恐ろしいハックは解決策ではありません。

これは、.mkvコンテナファイルにsubt字幕ストリームが含まれている場合に発生します。

7
redanimalwar

字幕オーバーレイを非表示にします

多くのグーグルがここAUで同じQ&Aを見つけた後: totem(videos)-物事をオフにしますか? 。 OPの質問と同じように、回避策としてフォントサイズを1ピクセルに設定することは望ましくありません。

質問に投稿された回答は、「gsettingsを使用して0のフォントサイズが完全に機能することを発見しました:


動画から字幕を完全に削除します

別のオプションは、.mkvファイルから 字幕を完全に削除 にすることです。リンクの著者は、ソフトタイトルとハードタイトルの両方でそれを行う方法を説明しています(画像の下部を切り取る)。この記事は3つのパートに分かれています。

  • パート1:字幕がソフト字幕かどうかを確認する
  • パート2:MKV、AVI、MP4からソフト字幕を削除する方法は?
  • パート3:MKV、MP4、AVIからハードコードされた字幕を削除する方法は?

開発者にメールで新しい機能のリクエスト

GNOME Totem開発者はBastien Noceraです。彼に[email protected]にメールを送って、新しく開いたビデオのデフォルト言語を設定する新しい機能を要求できます。あなたの場合、「なし」になります。ただし、他のユーザーにとっては、たとえばシステムの言語が「ロシア語」に設定されていて、開いているすべてのビデオに「英語」の字幕を付けたい場合に利点があります。


ソースコードを変更して再コンパイルする

トーテムのソースコードは github にあります。開発者が新しい機能のリクエストに対応していない場合は、ソースコードを変更できます。

  1. 字幕形式が割り当てられているモジュールを見つける
  2. 字幕があなたの言語に設定されている行を見つけます
  3. 言語をオーバーライドする新しいコード行をnoneに追加します

ソースコードに1行を追加するのに何時間もかかる可能性がありますが、プロセスが啓発的で楽しいと感じるかもしれません

モジュールで字幕を設定する関数を見つけるのに約10分かかりました: https://github.com/GNOME/totem/blob/master/src/totem-menu.c 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はGStreamerを使用して重量物を持ち上げます

Chriki による回答のおかげで、Totemの内部構造と、ビデオ再生の重いリフティングを行うためにGStreamerを呼び出す方法について多くのことを学びます。 GStreamerインターフェイスオプション があり、字幕を完全にオフにできます。

  • ストリームの選択と無効化をサポートします。メディアに複数のオーディオまたは字幕トラックがある場合、再生するものを動的に選択するか、完全にオフにするかを決定できます(字幕をオフにするのに特に便利です)。これらのそれぞれについて、「current-text」およびその他の関連プロパティを使用します。

"字幕をオフにするのに特に便利な部分"は、おそらくトーテムがターゲットになります。

Chrikiが指摘したように、GStreamerはデフォルトの字幕言語を選択し、Totemが設定メニューに入力するために使用するすべての字幕のリストを提供します。 Totemは、「None」の別のオプションを提供しています。これは、選択すると、GStreamerに字幕をオフにするよう指示します。

設計変更は、字幕選択メニューから「なし」オプションを削除することだと思います。次に、「字幕オン/オフ」のグローバルメニューオプションを作成します。これは、Totemセッション全体で持続します。おそらく、新しいビデオが開始されるたびに、5秒のバブルに「使用可能な字幕がオフになっています」と表示される場合があります。必要に応じて、現在の動画で有効にすることができることをユーザーに思い出させます。

つまり、私は最初のbashスクリプトメーカーであり、TotemGStreamerインターフェースは私の給与等級より上です。

5

Totemでデフォルトを設定することはできません

Totem source code を試しましたが、現在のところ、デフォルトの字幕言語または「なし」を設定することはできません。トーテムは、常に 基礎となるGStreamerプレーヤー が現在再生しているビデオに対して選択するデフォルトの字幕ストリームを常に使用しているようです。そのデフォルトは hereByデフォルトでは、データを含む最初の字幕ストリームが再生されます。」

つまり、WinEunuuchs2Unixによって報告された answer が、現時点でおそらく最良の選択肢です。ここでも、私自身の答えに少し独創性が追加されています。

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

(bash)ターミナルウィンドウで直接実行できます。つまり、設定するフォントを手動で考える必要はありません。以前に設定されたもの(gsettings get org.gnome.totem subtitle-fontで表示)を使用します。

私の主張の詳細

何かが利用可能であることを証明するのは簡単ではありませんが、私が出会った関連するいくつかのコードを指摘したいと思います。

totem_subtitles_update関数 は、字幕メニューの更新を処理します。要約すると、次のようになります。

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

つまり、ビデオウィジェットから現在の字幕設定を取得し、メニューでも使用します。

完全を期すために bacon_video_widget_get_subtitle が行うことは次のとおりです。

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

current-text プロパティが照会され、その値がsubtitle変数を介して返されます(上記のcurrent変数を介して使用されるため)。また、前述のように、このプロパティのデフォルトは「データを含む最初の字幕ストリーム」です。

2
Chriki

可能なATMではないようです。

しかし、トーテムでそれらをすべて無効にするハック方法があります

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