Как установить субтитры на «нет» по умолчанию для тотема?

Ubuntu 17.10

При открытии видео по умолчанию английские субтитры (встроенные) всегда включены, мне приходится отключать их каждый раз, когда я открываю новый файл.

Как установить значение none по умолчанию?

Есть флажок для внешних субтитров, которые я отключил. Этот параметр не имеет никакого смысла. Это должно быть применимо и к встроенным субтитрам.

И нет, ужасный хак из другого вопроса, чтобы установить размер шрифта в 1px или что-то в этом роде, не является решением.

Это происходит с .mkv контаминированными файлами с subt потоками субтитров в них.

7
задан 22 November 2017 в 21:28

3 ответа

Установка по умолчанию невозможна с Totem

Я просмотрел исходный код Totem и на сегодняшний день кажется невозможным установить какой-либо язык субтитров по умолчанию или "Никто". Тотем, кажется, просто всегда использует поток субтитров по умолчанию, который базовый проигрыватель GStreamer выбирает для воспроизводимого в данный момент видео - и это значение по умолчанию описано здесь : «По умолчанию первый субтитр поток с данными воспроизводится ».

Другими словами, ответ , о котором сообщает WinEunuuchs2Unix, вероятно, является вашим лучшим вариантом на данный момент. Здесь снова добавлена ​​немного оригинальности для моего собственного ответа:

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
ответ дан 22 November 2017 в 21:28

Кажется невозможным банкомат.

Но есть хакерский способ полностью отключить их в тотеме.

gsettings set org.gnome.totem subtitle-font '[whatever your font is here], 0'
1
ответ дан 22 November 2017 в 21:28

Сделать наложение субтитров невидимым

После того, как многие из поисковиков нашли один и тот же Q & A здесь, в AU: тотем (видео) - выключить вещи? . Как и ваш вопрос, OP не хочет устанавливать размер шрифта в 1 пиксель как обходной путь.

Ответ, опубликованный в вопросе, показал, что размер шрифта `` 0 с помощью gsettings работал отлично:


Окончательно удаляйте субтитры из ваших видео

Другой вариант - навсегда удалите субтитры из ваших .mkv файлов. Автор в ссылке объясняет, как это сделать как для мягких заголовков, так и для жестких заголовков (обрезая нижнюю часть изображения). Статья разделена на три части:

  • Часть первая: Проверьте, является ли субтитр мягким субтитром или нет
  • Часть вторая: Как удалить мягкие субтитры из MKV, AVI и MP4?
  • Часть третья: Как удалить жестко запрограммированные субтитры из MKV, MP4 и AVI?

Отправьте электронное письмо разработчику с новым запросом функции

Разработчиком GNOME Totem является Bastien Nocera. Вы можете отправить ему электронное письмо по адресу hadess@hadess.net и попросить новую функцию настройки языка по умолчанию для вновь открытого видео. В вашем случае это будет «Нет». Однако для других пользователей есть преимущество, если, например, язык их системы установлен на «русский», но они хотят, чтобы все видео были открыты с субтитрами на «английском».


Измените исходный код и перекомпилируйте

Исходный код тотема можно найти на github . Если разработчики не учли новый запрос функции, вы можете изменить исходный код:

  1. Найти модуль, которому назначен формат субтитров
  2. Найти строку, где субтитры установить на ваш язык
  3. Добавить новую строку кода, переопределяющую язык на none

Добавление одной строки в исходный код может занять много часов, но вы можете найти процесс поучительным и приятным

Я потратил около 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);
}

Тотем использует GStreamer для поднятия тяжестей

Благодаря ответу Чрики , мы узнаем много нового о внутренностях Totem и о том, как он призывает GStreamer выполнять тяжелую работу по воспроизведению видео. Существует опция интерфейса GStreamer , в которой субтитры могут быть отключены вообще:

  • Поддерживает выбор и отключение потока. Если на вашем носителе несколько звуковых дорожек или дорожек с субтитрами, вы можете динамически выбирать, какую из них воспроизводить, или полностью отключить ее (что особенно полезно для отключения субтитров). Для каждого из них используйте «текущий текст» и другие связанные свойства.

Часть, в которой говорится «что особенно полезно для отключения субтитров» , вероятно, является целью обновленной версии Totem.

Как указывает Chriki, GStreamer выбирает язык субтитров по умолчанию и предоставляет список всех субтитров, которые Totem использует для заполнения своего меню настроек. Тотем предоставляет другую опцию «Нет», которая при выборе инструктирует GStreamer отключать субтитры.

Я думаю, что изменение дизайна будет заключаться в удалении опции «none» из меню выбора субтитров. Затем создайте глобальную опцию меню для «включения / выключения субтитров», которая сохраняется в течение сеансов Totem. Возможно, при запуске каждого нового видео на 5-секундном пузыре может отображаться «Доступные субтитры отключены». чтобы напомнить пользователю, что при желании его можно включить для текущего видео.

Тем не менее, я начинающий создатель bash-скриптов и программирую на C, чтобы изменить интерфейс Totem на GStreamer выше моей зарплаты.

5
ответ дан 22 November 2017 в 21:28

Другие вопросы по тегам:

Похожие вопросы: